CLoaKY233 / siltop
git clone https://github.com/CLoaKY233/siltop.git
v1.2.1 · 4d ago
Terminal system monitor for Apple Silicon Macs: CPU, GPU, power, temperatures, processes.
—
stars, 24h
+34
stars, 7 days · #1,214
+34
stars, 30 days · #8,196
34
★ total · +34% this week
3
forks · 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageRust
LicenseApache-2.0
Created2026-10-16 (4d ago)
Last push3d ago
Watchers0
OwnerUser
GitHub topics
Links
README excerpt
# siltop A terminal system monitor for Apple Silicon Macs (M1 to M5). It shows CPU, GPU, memory, power, temperatures, fans, network, disk and a process table. Power and clock readings come from the SMC and IOReport and do not need root. The screenshots are from `siltop --demo`, which plays a recorded 60-second session. ## What it reads | Reading | Source | | --- | --- | | CPU load per cluster (Efficiency, Performance, Super) | Mach host statistics | | CPU and GPU clocks | IOReport residency | | CPU, GPU, ANE and DRAM power | IOReport energy counters | | System power, temperatures, fans | SMC | | Memory, swap, memory pressure | `sysctl`, Mach VM statistics | | Battery charge, health, cycles, adapter | IOKit power sources | | Processes: CPU, footprint memory, energy, GPU, disk | `proc_pid_rusage`, `sysctl` kinfo | Things a Mac does not have are left out: Airs have no fan readings, desktops have no battery. Values macOS will not give to a normal user, such as other users' process memory, show as `—`. On macOS 27 some IOReport power counters only update every few seconds. siltop shows the last real reading with its age (`≈ 4s`) instead of reporting 0 W in between. ### Compared with similar tools | | siltop | btop | macmon | asitop | | ---------------------------------------- | :----: | :--: | :----: | :----: | | CPU / GPU / ANE / DRAM power | yes | no | yes | yes | | Per-cluster clocks | yes | no | yes | yes | | Temperatures and fans | yes | CPU temp | temps | no | | Per-process energy and GPU | yes | no | no | no | | Process tree, filter, signals | yes | yes | no | no | | Runs without `sudo` | yes | yes | yes | no | | Machine-readable output | JSON, NDJSON, Prometheus, CSV | no | JSON | no | Measured on an M5 Pro at a 1 s interval, siltop uses about 1.3% of one CPU core, btop about 2.5% and macmon about 1.4%. Method and raw numbers: docs/research/12-self-cost.md. ## Install Requires macOS on Apple Silicon. Homebrew: [code] Prebuilt binary, into `~/.local/bin`: [code] `siltop update --yes` updates a copy installed this way. Each release also has a `.zip` and SHA-256 files. The binary is not notarized, so a copy downloaded with a browser is blocked by macOS until you run `xattr -d com.apple.quarantine siltop`. From source (Rust 1.98 or newer): [code] ## Usage [code] In the dashboard, `?` lists the keys, `m` opens the menu and `s` opens settings. The bottom line shows a short verdict such as `All normal` or `Busy: rustc using 9.1 cores`. The user guide covers every panel, the keys, settings, themes, alerts and scripting. ## Configuration Settings are in `~/.config/siltop/config.toml` (or under `$XDG_CONFIG_HOME`). The file is only written when you change a setting, and comments you add are kept. Environment variables: | Variable | Effect | | --- | --- | | `SILTOP_THEME= ` | Theme. `auto` (the default) builds one from the terminal's colours. | | `SILTOP_KEYS=htop\|btop` | htop or btop key layout | | `SILTOP_COLORS=truecolor\|256\|16\|none` | Ove