siltop is een in Rust geschreven systeemmonitor specifiek ontwikkeld voor Apple Silicon (M1 t/m M5). Het programma biedt actuele wattage, kloksnelheden en temperaturen direct in de terminal, waarbij het een balans vindt tussen de eenvoud van macmon en de diepgang van asitop, maar dan zonder de noodzaak voor sudo-rechten.
De belangrijkste voordelen en kenmerken zijn:
- Efficiëntie: Zeer laag CPU-verbruik (ca. 1,3% van één core) en een kleine footprint (3 MB binary).
- Accuraatheid: Haalt data direct uit macOS-API's (SMC, IOReport, Mach) en vermijdt het gissen van waarden.
- Visualisatie: Gebruikt Braille-grafieken voor tijdlijnen en biedt diverse thema's en weergavemodi, zoals de compacte 'Glance'-modus.
- Geavanceerde tools: Ondersteunt JSON-streaming, een Prometheus-endpoint, sessie-opnames en een multi-Mac fleet view.
- Privacy & Veiligheid: Geen telemetrie, geen eigen HTTP-stack en geen sudo-vereisten.
Het programma kan worden geïnstalleerd via Homebrew, als prebuilt binary of via Cargo (Rust).
siltop: Een rustige en eerlijke systeemmonitor voor Apple Silicon
Opmerking: Screenshots in de documentatie zijn afkomstig van siltop --demo, een vooraf ingestelde sessie van 60 seconden (met build-bursts, GPU-inferentie, batterijverbruik en stijgende hitte), zodat deze op elke Mac identiek ogen.
Waarom nog een monitor?
btop is prachtig, maar op een Mac kan het de chip niet volledig zien: geen wattage, geen GPU en geen clusterkloksnelheden. asitop en powermetrics zien de chip wel, maar vereisen sudo-rechten. macmon is lichtgewicht, maar stopt bij de SoC. siltop zit hier tussenin: standaard zo schoon als je wilt, maar zo diepgaand als nodig wanneer er iets mis is.
Vergelijking met andere monitors
| Kenmerk | siltop | btop | macmon | asitop |
| CPU / GPU / ANE / DRAM wattage | ✓ | — | ✓ | ✓ |
| Kloksnelheden per cluster (E / P / Super cores) | ✓ | — | ✓ | ✓ |
| Temperaturen en ventilatoren | ✓ (CPU temp) | — | ✓ (temps) | — |
| Energie en GPU per proces | ✓ | — | — | — |
| Volledige procesbeheerder (boom, signalen, filter) | ✓ | ✓ | — | — |
| Werkt zonder sudo | ✓ | ✓ | ✓ | — |
| Machine-leesbare output (JSON / NDJSON / Prometheus / CSV) | ✓ | — | JSON | — |
De eigen kosten (self-cost) zijn achter elkaar gemeten met btop en macmon op dezelfde machine; de methode en ruwe cijfers staan in docs/research/12-self-cost.md.
Hoogtepunten
Waarheid
- Cijfers komen rechtstreeks uit macOS: de SMC voor ventilatoren, temperaturen en systeemvermogen; IOReport voor CPU- en GPU-kloksnelheden en energie; Mach en sysctl voor CPU, geheugen en processen. Er wordt geen gebruik gemaakt van
ps, powermetrics of scraping.
- Een waarde die de Mac niet verstrekt, wordt getoond als afwezig (
—), nooit als een verzonnen 0. Ventilatorloze Air-modellen tonen geen ventilatoren, desktops tonen geen batterij, en een proces dat de kernel niet beschrijft, wordt getoond als —.
- Er is een eenduidig oordeel in één regel (bijv. "All normal", "Busy: rustc using 9.1 cores", "Hot: fans at 80%") met het bewijs daarvan.
Snelheid
- Verbruikt ongeveer 1,3% van één core bij een interval van 1 seconde. Dit is de helft van wat
btop kost bij hetzelfde tempo (2,5%) en vergelijkbaar met macmon (1,4%), gemeten achter elkaar op een M5 Pro. De interface wordt alleen opnieuw getekend als er iets is veranderd, en het pauzeren (p) stopt het monsteren volledig.
- Bestaat uit één native binary van ongeveer 3 MB, geschreven in Rust. Start direct op.
Schoonheid
- Braille-grafieken op één gedeelde, tijdlineaire klok, zodat elk paneel uitgelijnd is. De
z-toets zoomt in op de tijd.
- Thema's zijn gebouwd op basis van het palet van je eigen terminal, waardoor ze leesbaar zijn in doorschijnende en vervaagde vensters. Er zijn tien ingebouwde thema's, een themapakket, importmogelijkheid voor
btop-thema's en fallbacks voor 256-kleuren, 16-kleuren en NO_COLOR.
- Twee weergavemodi: Work voor diepgaand onderzoek en Glance voor een klein, altijd-aan venster. De lay-out past zich aan vanaf 80×24. Er zijn vijf presets (via toetsen 1–5) en een zen-modus (
Z) die alleen de grafieken overhoudt.
Controle
- Een procestabel met live filter, sorteren op elke kolom, boomweergave, groepering per app en een detailkaart (threads, open bestanden, poorten) met een signal-picker, renice en achtergrond QoS. Een 'kill'-commando wordt geweigerd als de PID is hergebruikt sinds deze is geselecteerd.
- Volledige muisondersteuning, toetsenprofielen van
htop en btop, een doorzoekbare instellingenpagina en een configuratiebestand dat jouw commentaren bewaart.
Verder dan het dashboard
siltop biedt diverse geavanceerde opties:
--json / --json-stream voor scripts en statusbalken.
siltop line voor tmux en SketchyBar.
- Alerts met shell-hooks.
- Een tijdlijn met rapporten.
- Sessie-opname en afspeelmogelijkheid.
- Een Prometheus-endpoint.
- Een sustained-performance benchmark.
- Een multi-Mac fleet view.
Installatie
Vereiste: macOS op Apple Silicon.
Homebrew
brew install cloaky233/tap/siltop
Prebuilt binary
(Curl-downloads worden niet in quarantaine geplaatst, dus het programma werkt direct)
mkdir -p ~/.local/bin && curl -fsSL https://github.com/CLoaKY233/siltop/releases/download/v1.2.1/siltop-v1.2.1-macos-arm64.tar.gz | tar -xz --strip-components 1 -C ~/.local/bin siltop-v1.2.1-macos-arm64/siltop
Zorg ervoor dat ~/.local/bin in je PATH staat. Gebruik siltop update --yes om deze kopie actueel te houden. Elke release bevat ook een .zip en SHA-256 bestanden. Een kopie die met een browser is gedownload, wordt door macOS in quarantaine geplaatst en geblokkeerd bij de eerste start omdat deze niet is genotariseerd. Verwijder dit vóór het uitvoeren: xattr -d com.apple.quarantine siltop.
Vanuit broncode (Rust 1.98 of nieuwer)
cargo install --git https://github.com/CLoaKY233/siltop --tag v1.2.1 siltop --locked
Voer daarna siltop uit. Probeer eerst siltop --demo als je alleen wilt kijken.
Gebruik
| Commando | Beschrijving |
siltop | Start het dashboard |
siltop --demo | Een vooraf ingestelde sessie van 60 s, geen hardware nodig |
siltop -i 1s --theme paper | Monster elke seconde, gebruik het 'Paper' thema |
siltop --surface glance --no-mouse | Gebruik de compacte weergave zonder muisondersteuning |
| `siltop --json \ | jq .cpu.clusters` | Eén JSON-sample (schema 1) |
siltop --json-stream --count 3 -i 500 | NDJSON, één regel per interval |
siltop --diagnose | Toont "All normal" / "Busy: Safari using 3.1 cores" + bewijs |
siltop doctor | Chip-ID's, SMC-sleutels, HID-sensoren, leesbaarheid, eigen kosten |
siltop line --style tmux | Eén statusregel: "cpu 12% gpu 3% 8.4W 51°C" |
siltop report week --json | Energie per app, piektemperaturen, tijd besteed in 'hot' status |
siltop agent install | Alerts op de achtergrond, bij inloggen |
siltop record --duration 10m | Een crash-tolerante sessietrace; siltop replay speelt deze af |
siltop serve | Prometheus-metrics op 127.0.0.1:9101 |
siltop bench --duration 5m | Sustained CPU-test: kloksnelheden, hitte, throttling |
siltop fleet studio.mini.local | Deze Mac naast twee anderen, via eigen ssh |
siltop completions zsh | Ondersteuning voor zsh, bash en fish; siltop man print de handleiding |
De gebruikershandleiding legt elk paneel, de betekenis van de cijfers, toetsen, instellingen, presets, thema's, alerts, scripting en probleemoplossing uit. Toets ? in de app toont alle toetsen; m opent het menu; s opent de instellingen.
Configuratie
Alle instellingen zijn optioneel. Instellingen staan in ~/.config/siltop/config.toml (of onder $XDGCONFIGHOME), worden alleen geschreven bij wijzigingen en behouden jouw commentaren.
Omgevingsvariabelen
| Variabele | Effect |
SILTOP_THEME=<naam> | Gebruik dit thema. auto (standaard) leest de terminal uit. |
| `SILTOP_KEYS=htop\ | btop` | htop of btop toetsenindeling |
| `SILTOP_COLORS=truecolor\ | 256\ | 16\ | none` | Overschrijf de schatting van de kleurdiepte |
SILTOP_ICONS=nerd | Nerd Font-iconen in de panneltitels |
SILTOPNOUPDATE_CHECK=1 | Voer nooit de optionele dagelijkse updatecheck uit |
NO_COLOR=1 | Alleen attributen (bold, dim, reverse) |
Privacy
- Geen eigen netwerk: siltop bevat geen HTTP-stack. Als je kiest voor updatechecks, voert het programma maximaal één keer per dag
/usr/bin/curl uit tegen de GitHub releases API en verzendt alleen de versie in de User-Agent. siltop serve luistert op 127.0.0.1 tenzij anders aangegeven; siltop fleet maakt gebruik van je eigen ssh.
- Geen telemetrie: Er worden geen gegevens over jou of je Mac verzameld of verzonden. Crash-bestanden blijven op je Mac.
- Geen sudo: Elke meting komt uit API's die een normale gebruiker mag aanroepen. Wat de kernel weigert (zoals processen van andere gebruikers) wordt getoond als
—, niet gegist.
Veelgestelde vragen (FAQ)
Waarom tonen sommige processen —? macOS staat alleen toe dat je CPU, geheugen en energie leest voor je eigen processen. Rijden die eigendom zijn van andere gebruikers behouden hun naam en PID, maar de kernel weigert de rest. siltop toont dan — in plaats van een verzonnen 0. Hun CPU-verbruik wordt wel meegeteld in het totaal van de machine.
Waarom wordt een wattage-cijfer soms getoond als ≈ met een leeftijd? Sommige stroomrails publiceren gegevens in batches, niet bij elke sample. Tussen publicaties houdt siltop de laatst gemeten waarde vast en markeert deze als ≈ met de leeftijd, in plaats van een getal te verzinnen of naar nul te springen.
Waarom is mijn CPU-meting lager dan die in Activiteitenmonitor? De grafiek is frequentie-gewogen: een core die bezig is op de helft van zijn topsnelheid telt als half belast. Zo wordt getoond hoeveel van de werkelijke capaciteit van de chip in gebruik is. Cluster-rijen tonen zowel het bezette aandeel als de kloksnelheid.
Intel Macs, Linux? Nee. siltop is gebouwd rondom Apple Silicon API's. Andere platforms compileren wel (de collectors zijn vervangen door stubs), maar meten niets.
Hoe het werkt
Het project bestaat uit vier crates met een strikte afhankelijkheidsrichting (core $\leftarrow$ {metrics, ui} $\leftarrow$ bin):
| Crate | Rol |
siltop-core | Snapshot-types, geschiedenisopslag, configuratie, oordelen |
siltop-metrics | Collectors (SMC, IOReport, IOHID, Mach, sysctl) en de sampler. Geen UI-types. |
siltop-ui | Thema's, braille-grafieken, lay-out, widgets. Geen imports van metrics. |
siltop | De binary: event loop, input, CLI, de demo-sessie |
Elk interval bouwt Sampler::tick() op een worker-thread één onveranderlijke Snapshot; de UI rendert deze in read-only modus. Zie crates/ARCHITECTURE.md voor meer details.
De map docs/research/ dient als kennisbank over hoe macOS deze data ontsluit: SMC-sleutels per chipgeneratie, het IOReport-energierecept zonder sudo, bronnen voor procesgegevens, grafiek-rendering en kleurgebruik op doorschijnende terminals.
Bijdragen
Bugrapporten inclusief de output van siltop doctor zijn het meest nuttig, vooral bij chips of Mac-modellen die nog niet gedekt zijn. Zie CONTRIBUTING.md voor informatie over bouwen, tests en 'golden screens'.
Licentie
Gelicentieerd onder keuze van:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
Copyright © 2026 Lay Sheth.
siltop: Een rustige en eerlijke systeemmonitor voor Apple Silicon
Opmerking: Screenshots in de documentatie zijn afkomstig van siltop --demo, een vooraf ingestelde sessie van 60 seconden (met build-bursts, GPU-inferentie, batterijverbruik en stijgende hitte), zodat deze op elke Mac identiek ogen.
Waarom nog een monitor?
btop is prachtig, maar op een Mac kan het de chip niet volledig zien: geen wattage, geen GPU en geen clusterkloksnelheden. asitop en powermetrics zien de chip wel, maar vereisen sudo-rechten. macmon is lichtgewicht, maar stopt bij de SoC. siltop zit hier tussenin: standaard zo schoon als je wilt, maar zo diepgaand als nodig wanneer er iets mis is.
Vergelijking met andere monitors
| Kenmerk | siltop | btop | macmon | asitop |
| CPU / GPU / ANE / DRAM wattage | ✓ | — | ✓ | ✓ |
| Kloksnelheden per cluster (E / P / Super cores) | ✓ | — | ✓ | ✓ |
| Temperaturen en ventilatoren | ✓ (CPU temp) | — | ✓ (temps) | — |
| Energie en GPU per proces | ✓ | — | — | — |
| Volledige procesbeheerder (boom, signalen, filter) | ✓ | ✓ | — | — |
| Werkt zonder sudo | ✓ | ✓ | ✓ | — |
| Machine-leesbare output (JSON / NDJSON / Prometheus / CSV) | ✓ | — | JSON | — |
De eigen kosten (self-cost) zijn achter elkaar gemeten met btop en macmon op dezelfde machine; de methode en ruwe cijfers staan in docs/research/12-self-cost.md.
Hoogtepunten
Waarheid
- Cijfers komen rechtstreeks uit macOS: de SMC voor ventilatoren, temperaturen en systeemvermogen; IOReport voor CPU- en GPU-kloksnelheden en energie; Mach en sysctl voor CPU, geheugen en processen. Er wordt geen gebruik gemaakt van
ps, powermetrics of scraping.
- Een waarde die de Mac niet verstrekt, wordt getoond als afwezig (
—), nooit als een verzonnen 0. Ventilatorloze Air-modellen tonen geen ventilatoren, desktops tonen geen batterij, en een proces dat de kernel niet beschrijft, wordt getoond als —.
- Er is een eenduidig oordeel in één regel (bijv. "All normal", "Busy: rustc using 9.1 cores", "Hot: fans at 80%") met het bewijs daarvan.
Snelheid
- Verbruikt ongeveer 1,3% van één core bij een interval van 1 seconde. Dit is de helft van wat
btop kost bij hetzelfde tempo (2,5%) en vergelijkbaar met macmon (1,4%), gemeten achter elkaar op een M5 Pro. De interface wordt alleen opnieuw getekend als er iets is veranderd, en het pauzeren (p) stopt het monsteren volledig.
- Bestaat uit één native binary van ongeveer 3 MB, geschreven in Rust. Start direct op.
Schoonheid
- Braille-grafieken op één gedeelde, tijdlineaire klok, zodat elk paneel uitgelijnd is. De
z-toets zoomt in op de tijd.
- Thema's zijn gebouwd op basis van het palet van je eigen terminal, waardoor ze leesbaar zijn in doorschijnende en vervaagde vensters. Er zijn tien ingebouwde thema's, een themapakket, importmogelijkheid voor
btop-thema's en fallbacks voor 256-kleuren, 16-kleuren en NO_COLOR.
- Twee weergavemodi: Work voor diepgaand onderzoek en Glance voor een klein, altijd-aan venster. De lay-out past zich aan vanaf 80×24. Er zijn vijf presets (via toetsen 1–5) en een zen-modus (
Z) die alleen de grafieken overhoudt.
Controle
- Een procestabel met live filter, sorteren op elke kolom, boomweergave, groepering per app en een detailkaart (threads, open bestanden, poorten) met een signal-picker, renice en achtergrond QoS. Een 'kill'-commando wordt geweigerd als de PID is hergebruikt sinds deze is geselecteerd.
- Volledige muisondersteuning, toetsenprofielen van
htop en btop, een doorzoekbare instellingenpagina en een configuratiebestand dat jouw commentaren bewaart.
Verder dan het dashboard
siltop biedt diverse geavanceerde opties:
--json / --json-stream voor scripts en statusbalken.
siltop line voor tmux en SketchyBar.
- Alerts met shell-hooks.
- Een tijdlijn met rapporten.
- Sessie-opname en afspeelmogelijkheid.
- Een Prometheus-endpoint.
- Een sustained-performance benchmark.
- Een multi-Mac fleet view.
Installatie
Vereiste: macOS op Apple Silicon.
Homebrew
brew install cloaky233/tap/siltop
Prebuilt binary
(Curl-downloads worden niet in quarantaine geplaatst, dus het programma werkt direct)
mkdir -p ~/.local/bin && curl -fsSL https://github.com/CLoaKY233/siltop/releases/download/v1.2.1/siltop-v1.2.1-macos-arm64.tar.gz | tar -xz --strip-components 1 -C ~/.local/bin siltop-v1.2.1-macos-arm64/siltop
Zorg ervoor dat ~/.local/bin in je PATH staat. Gebruik siltop update --yes om deze kopie actueel te houden. Elke release bevat ook een .zip en SHA-256 bestanden. Een kopie die met een browser is gedownload, wordt door macOS in quarantaine geplaatst en geblokkeerd bij de eerste start omdat deze niet is genotariseerd. Verwijder dit vóór het uitvoeren: xattr -d com.apple.quarantine siltop.
Vanuit broncode (Rust 1.98 of nieuwer)
cargo install --git https://github.com/CLoaKY233/siltop --tag v1.2.1 siltop --locked
Voer daarna siltop uit. Probeer eerst siltop --demo als je alleen wilt kijken.
Gebruik
| Commando | Beschrijving |
siltop | Start het dashboard |
siltop --demo | Een vooraf ingestelde sessie van 60 s, geen hardware nodig |
siltop -i 1s --theme paper | Monster elke seconde, gebruik het 'Paper' thema |
siltop --surface glance --no-mouse | Gebruik de compacte weergave zonder muisondersteuning |
| `siltop --json \ | jq .cpu.clusters` | Eén JSON-sample (schema 1) |
siltop --json-stream --count 3 -i 500 | NDJSON, één regel per interval |
siltop --diagnose | Toont "All normal" / "Busy: Safari using 3.1 cores" + bewijs |
siltop doctor | Chip-ID's, SMC-sleutels, HID-sensoren, leesbaarheid, eigen kosten |
siltop line --style tmux | Eén statusregel: "cpu 12% gpu 3% 8.4W 51°C" |
siltop report week --json | Energie per app, piektemperaturen, tijd besteed in 'hot' status |
siltop agent install | Alerts op de achtergrond, bij inloggen |
siltop record --duration 10m | Een crash-tolerante sessietrace; siltop replay speelt deze af |
siltop serve | Prometheus-metrics op 127.0.0.1:9101 |
siltop bench --duration 5m | Sustained CPU-test: kloksnelheden, hitte, throttling |
siltop fleet studio.mini.local | Deze Mac naast twee anderen, via eigen ssh |
siltop completions zsh | Ondersteuning voor zsh, bash en fish; siltop man print de handleiding |
De gebruikershandleiding legt elk paneel, de betekenis van de cijfers, toetsen, instellingen, presets, thema's, alerts, scripting en probleemoplossing uit. Toets ? in de app toont alle toetsen; m opent het menu; s opent de instellingen.
Configuratie
Alle instellingen zijn optioneel. Instellingen staan in ~/.config/siltop/config.toml (of onder $XDGCONFIGHOME), worden alleen geschreven bij wijzigingen en behouden jouw commentaren.
Omgevingsvariabelen
| Variabele | Effect |
SILTOP_THEME=<naam> | Gebruik dit thema. auto (standaard) leest de terminal uit. |
| `SILTOP_KEYS=htop\ | btop` | htop of btop toetsenindeling |
| `SILTOP_COLORS=truecolor\ | 256\ | 16\ | none` | Overschrijf de schatting van de kleurdiepte |
SILTOP_ICONS=nerd | Nerd Font-iconen in de panneltitels |
SILTOPNOUPDATE_CHECK=1 | Voer nooit de optionele dagelijkse updatecheck uit |
NO_COLOR=1 | Alleen attributen (bold, dim, reverse) |
Privacy
- Geen eigen netwerk: siltop bevat geen HTTP-stack. Als je kiest voor updatechecks, voert het programma maximaal één keer per dag
/usr/bin/curl uit tegen de GitHub releases API en verzendt alleen de versie in de User-Agent. siltop serve luistert op 127.0.0.1 tenzij anders aangegeven; siltop fleet maakt gebruik van je eigen ssh.
- Geen telemetrie: Er worden geen gegevens over jou of je Mac verzameld of verzonden. Crash-bestanden blijven op je Mac.
- Geen sudo: Elke meting komt uit API's die een normale gebruiker mag aanroepen. Wat de kernel weigert (zoals processen van andere gebruikers) wordt getoond als
—, niet gegist.
Veelgestelde vragen (FAQ)
Waarom tonen sommige processen —? macOS staat alleen toe dat je CPU, geheugen en energie leest voor je eigen processen. Rijden die eigendom zijn van andere gebruikers behouden hun naam en PID, maar de kernel weigert de rest. siltop toont dan — in plaats van een verzonnen 0. Hun CPU-verbruik wordt wel meegeteld in het totaal van de machine.
Waarom wordt een wattage-cijfer soms getoond als ≈ met een leeftijd? Sommige stroomrails publiceren gegevens in batches, niet bij elke sample. Tussen publicaties houdt siltop de laatst gemeten waarde vast en markeert deze als ≈ met de leeftijd, in plaats van een getal te verzinnen of naar nul te springen.
Waarom is mijn CPU-meting lager dan die in Activiteitenmonitor? De grafiek is frequentie-gewogen: een core die bezig is op de helft van zijn topsnelheid telt als half belast. Zo wordt getoond hoeveel van de werkelijke capaciteit van de chip in gebruik is. Cluster-rijen tonen zowel het bezette aandeel als de kloksnelheid.
Intel Macs, Linux? Nee. siltop is gebouwd rondom Apple Silicon API's. Andere platforms compileren wel (de collectors zijn vervangen door stubs), maar meten niets.
Hoe het werkt
Het project bestaat uit vier crates met een strikte afhankelijkheidsrichting (core $\leftarrow$ {metrics, ui} $\leftarrow$ bin):
| Crate | Rol |
siltop-core | Snapshot-types, geschiedenisopslag, configuratie, oordelen |
siltop-metrics | Collectors (SMC, IOReport, IOHID, Mach, sysctl) en de sampler. Geen UI-types. |
siltop-ui | Thema's, braille-grafieken, lay-out, widgets. Geen imports van metrics. |
siltop | De binary: event loop, input, CLI, de demo-sessie |
Elk interval bouwt Sampler::tick() op een worker-thread één onveranderlijke Snapshot; de UI rendert deze in read-only modus. Zie crates/ARCHITECTURE.md voor meer details.
De map docs/research/ dient als kennisbank over hoe macOS deze data ontsluit: SMC-sleutels per chipgeneratie, het IOReport-energierecept zonder sudo, bronnen voor procesgegevens, grafiek-rendering en kleurgebruik op doorschijnende terminals.
Bijdragen
Bugrapporten inclusief de output van siltop doctor zijn het meest nuttig, vooral bij chips of Mac-modellen die nog niet gedekt zijn. Zie CONTRIBUTING.md voor informatie over bouwen, tests en 'golden screens'.
Licentie
Gelicentieerd onder keuze van:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
Copyright © 2026 Lay Sheth.