Présentation

siltop est un moniteur système dédié aux Mac équipés de puces M1 à M5. Il affiche en temps réel la puissance (watts), les fréquences CPU/GPU et les températures, sans recourir à sudo ni à la télémétrie. Le projet, écrit en Rust, se veut une alternative à btop, qui ne lit pas les capteurs Apple Silicon, et à asitop ou powermetrics, qui exigent des privilèges élevés.

Architecture et collecte des métriques

Les valeurs proviennent directement du système d’exploitation : le SMC fournit les données de ventilateur, de température et de puissance globale, IOReport délivre les horloges CPU et GPU ainsi que la consommation énergétique, tandis que les appels Mach et sysctl récupèrent les informations sur les processus, la mémoire et les compteurs de CPU. Aucun script de scraping n’est utilisé, ce qui élimine les risques d’incohérence liés à la lecture de fichiers temporaires. Lorsqu’une métrique n’est pas disponible (par exemple un Mac sans ventilateur), siltop indique explicitement « absent » au lieu de renvoyer 0.

Performances et empreinte

Le binaire natif pèse environ 3 Mo et démarre instantanément. Au niveau de la charge, siltop consomme 1,3 % d’un cœur à un intervalle d’une seconde, soit la moitié de la consommation de btop (2,5 %) et comparable à macmon (1,4 %). La mesure a été réalisée en série sur un Mac M5 Pro, en suivant la méthodologie décrite dans docs/research/12-self-cost.md. Le rafraîchissement n’est déclenché que lorsqu’une donnée change, et la pause (p) interrompt complètement l’échantillonnage, réduisant davantage l’impact sur le système.

Fonctionnalités avancées

Outre les graphiques braille alignés sur une horloge linéaire, siltop propose dix thèmes dérivés de la palette du terminal, un mode « zen » qui n’affiche que les courbes, et deux dispositions : « Work » pour l’analyse détaillée et « Glance » pour une vue compacte. Le tableau des processus supporte le filtrage en temps réel, le tri sur n’importe quelle colonne, l’affichage arborescent, ainsi que des actions telles que renice, changement de QoS ou envoi de signaux, avec une protection contre la réutilisation de PID. Les options --json et --json-stream permettent l’intégration dans des barres d’état ou des scripts, tandis que le point d’accès Prometheus facilite la collecte centralisée pour des flottes de machines.

# Installation via Homebrew
brew install cloaky233/tap/siltop
# Installation manuelle du binaire pré‑compilé
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
# Lancer une démonstration
siltop --demo