System Monitor
silo.system-monitor
Live CPU and memory charts in a side panel and status bar โ cross-platform (macOS, Linux, Windows).
System Monitor
A Silo extension that keeps CPU, memory, and per-terminal process activity visible at a glance โ without leaving your editor. Works on macOS, Linux, and Windows.

What you get
- Side panel โ a dedicated SYSTEM tab with a memory donut chart, a scrolling CPU history graph (User vs System split), and a live Processes list for the current workspace
- Status bar readouts โ compact live counters at the bottom of the window that stay visible even when the panel is closed
- Configurable โ choose which metrics appear, on which surfaces, and in what order via Settings or the in-panel gear icon
- Persistent settings โ your choices are saved across restarts and apply to all workspaces automatically
Processes
The Processes section shows one row per terminal in the active workspace โ its foreground program, live CPU/memory (rolled up across its child processes, so a busy build running under a shell doesn't read as idle), and idle/busy state. Expand a row to see the full process tree; click a title to jump to that terminal; hover a row for a one-click kill (with a confirmation) that terminates the process group but leaves the shell itself running.
CPU/memory stats are opt-in and only sampled while the panel is visible and
the section is enabled โ closing the panel or disabling it in Settings stops
the extra polling. Process trees (the expand/kill affordances) require ps
and aren't available on Windows; the panel still shows each terminal's
foreground program there.
Cross-platform
The extension is a reference implementation for writing platform-aware Silo
extensions. It asks the host which OS it's running on via ctx.system.getInfo()
and selects a matching collector (src/collectors/) โ each one a small,
unit-tested module with a pure parser:
| Platform | CPU source | Memory source | Memory donut |
|---|---|---|---|
| macOS | iostat -c |
vm_stat + sysctl hw.memsize |
App / Wired / Cache / Free |
| Linux | /proc/stat (read via ctx.files, no subprocess) |
/proc/meminfo |
Used / Cache / Free |
| Windows | PowerShell Get-Counter |
PowerShell Get-CimInstance |
Used / Free |
The CPU User/System split is preserved on all three platforms. Memory categories
differ per OS, so the donut renders whatever segments the active collector
reports rather than a fixed list. Adding a platform means adding one collector
and a case in selectCollector โ the union type from the SDK makes a missing
case a compile error.
Permissions
Declared in package.json under silo.permissions:
processโ runiostat/vm_stat/ PowerShell on macOS and Windows.fs:readโ read/proc/statand/proc/meminfoon Linux (these live outside the workspace). Reading/procrather than shelling out also avoids subprocess-spawn restrictions under sandboxed Linux packaging.
Installing
From a GitHub Release
- Go to Releases.
- Right-click the
.tgzasset โ Copy link address. - In Silo: Settings โ Extensions, paste the URL and click Install.
From source
git clone https://github.com/silo-code/silo-extensions
cd silo-extensions/system-monitor
npm install
npm run build
Then in Silo: Settings โ Extensions โ Install from folder, point at this directory.
Building
npm install
npm run build # one-shot
npm run build:watch # watch mode
npm test # unit tests
Versions
| Version | Published | Permissions | Build | sha256 |
|---|---|---|---|---|
| v0.2.4 | 2026-07-13 | process, fs:read | โ | 06598dd53909โฆ |
| v0.2.3 | 2026-07-13 | process, fs:read | โ | af294952a2ccโฆ |
| v0.2.2 | 2026-07-02 | process, fs:read | โ | 6bec03091ab4โฆ |
| v0.2.1 | 2026-06-28 | process, fs:read | โ | e50808398309โฆ |
| v0.1.2 | 2026-06-28 | none | โ | 5904ea8d96c3โฆ |
| v0.1.1 | 2026-06-28 | none | โ | 537f87ba4ed6โฆ |