System Monitor

silo.system-monitor

Live CPU and memory charts in a side panel and status bar โ€” cross-platform (macOS, Linux, Windows).

monitoringstatus-barside-panel

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.

System Monitor panel showing memory donut chart and CPU history graph

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 โ€” run iostat / vm_stat / PowerShell on macOS and Windows.
  • fs:read โ€” read /proc/stat and /proc/meminfo on Linux (these live outside the workspace). Reading /proc rather than shelling out also avoids subprocess-spawn restrictions under sandboxed Linux packaging.

Installing

From a GitHub Release

  1. Go to Releases.
  2. Right-click the .tgz asset โ†’ Copy link address.
  3. 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

VersionPublishedPermissionsBuildsha256
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โ€ฆ