Skip to content

Show each PC's CPU, memory and disk usage in its sidebar group #1671

Closed

Description

@thefahien

Problem

With several PCs running agents, I can't tell which one is out of memory, out of disk or pinned at 100% CPU until an agent fails there. Today I SSH in and run htop / df, which is the thing the multi-PC sidebar is meant to save me from.

Proposal

Under each expanded, connected PC in the sidebar, one compact line: CPU %, memory % (without the file cache) and the fullest disk %, red from 85%. Tap it for memory used/total, load average, uptime and each disk.

  • A new read-only GET /api/system, proxied to remote PCs like /api/agents. Same access rules as its neighbours; the bridge token may read it (GET only).
  • Nothing runs in the background. A reading is taken only when a browser asks, and the sidebar asks every 5 s only while the PC's group is open and the tab is visible. The next ask starts after the last one comes back, with a 4 s timeout, so a stuck PC never holds more than one request.
  • Linux reads /proc; elsewhere CPU, load and disks come from the OS. A figure a PC cannot measure is a dash, never 0%. A disk that does not answer (a stuck mount) is left out after 1.5 s and not asked again while the first read is pending.
  • A PC whose bridge is from before the route shows nothing (it answers 404, or 401/403 through the proxy), until its bridge is updated.
  • No history, charts, alerts, settings page or network figures: out of scope unless you want them.

I have a working implementation with unit tests, a /api/system contract test, the MACHINE_PROXY_PATH test, i18n (ja/ko/zh), a demo fixture, a DESIGN.md entry and a guide row. I'll open the PR only once you have said yes.

Branch (one commit on top of current main, ready for review if you say yes): https://github.com/thefahien/ovis/tree/feat/pc-system-load · diff: main...thefahien:ovis:feat/pc-system-load

Screenshots from the demo fixtures (a PC under load; closed and open, dark and light, desktop and phone):

Phone, dark: closed open under load
phone-dark-closed phone-dark-open phone-dark-high

Desktop, dark, open:

desktop-dark-open

All 12 (light theme, desktop and phone) desktop-light-closed desktop-light-high desktop-light-open phone-light-closed phone-light-high phone-light-open

Where

Sidebar and navigation, Remote PCs

Where it exists today

Not in herdr's own TUI, and as far as I know not in the Codex or Claude apps, Paseo or T3 Code, which assume one machine; Ovis's multi-PC sidebar is where the need comes from. Another herdr client, Collie, has a machine page with these figures (CPU, memory, disks, network, history and alerts), which is what I used before moving to Ovis. This proposal is the small part of that which belongs in the sidebar. No code is borrowed from it.

Workarounds and alternatives

SSH to the PC and run htop / df -h. Alternatively a Settings page with a per-PC card and charts, as Collie has; I left it out to keep this small. Tested live on a four-PC Linux fleet (VMs and an LXC-like guest) with a superset of this; macOS and Windows are untested, so macOS leaves memory out rather than show a number that counts the file cache as used.

Activity

  1. devswha commented on Nov 5, 2026

    @devswha
    Owner

    Sorry for the slow reply, @thefahien - yes please, we'd love a PR from your feat/pc-system-load branch! Two small requests: rebase it on current main (it is quite far behind), and add a setting to turn the usage line on or off (on by default when 2 or more PCs are connected). We'll review it quickly and help with anything that needs fixing. Thank you!

  2. thefahien commented on Nov 5, 2026

    @thefahien
    Author

    No worries. Thanks for replying. I've managed to open pr for this

  3. added a commit that references this issue on Nov 5, 2026
    27ef5b4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions