gregg
Compact keyboard-first terminal monitor for observing system metrics across multiple machines.
Installation
Usage
Start the TUI:
Manage endpoints:
gregg add requires an explicit port. Host-only input such as
gregg add 192.168.1.10 is rejected; supply host:port, an HTTP URL
(http://host:port/), or nickname@host:port. Combining the inline
nickname@ form with --name is rejected as ambiguous. The retained
default_port setting is configuration-compatible but is not used by
gregg add.
Navigation
| Key | Action |
|---|---|
j / Down |
Next system |
k / Up |
Previous system |
h / Left |
Previous view |
l / Right |
Next view |
v |
Toggle Normal/Condensed Systems view |
e |
Expand or collapse selected-system drives |
Ctrl-R |
Reload Systems config and refresh, or refresh EggPool |
selected_id is the persistent logical selection that drives e
(drive expansion) and viewport behavior. The reverse-video highlight
on the selected device is transient: it activates when you navigate,
and disappears after about ten seconds of inactivity. Leaving the
Systems pane or returning to it does not extend or re-trigger the
highlight, and e continues to operate on the same logical system
after the highlight fades.
Requirements
Each monitored host must have greggd running and reachable on the
configured port (default 11310).
The normal view uses five rows for an online system, including aggregate disk
capacity. All four metric rows share a fleet-wide bar_width so the opening
[ and closing ] columns align across every online system. When the
longest natural metric suffix across the entire online fleet exceeds one
quarter of the terminal width, every normal-view metric row collapses to
bar-only — the [ and ] brackets remain aligned and the percentage, core
count, and byte-count suffix disappears. Resizing wider restores them
dynamically without restart. The aggregate DISK suffix renders
<used bytes> / <total bytes> so the denominator matches the percentage;
explicit caller-available space is preserved by the normalized model and
surfaced only through the expanded per-drive rows. The condensed view uses
one comparison row per system. e adds bounded detail rows for valid
mounted-local-filesystem records belonging only to the selected online
system; the expanded rows share one table layout so mount names, used,
total, remaining, and percentage columns stay aligned across drives. View
and expansion state are not persisted.
Supported platforms
| Platform | Architecture | Status |
|---|---|---|
| Linux | x86-64 | Supported |
| Linux | ARM64 | Supported |
| macOS | Intel (x86-64) | Supported |
| macOS | Apple Silicon (arm64) | Supported |
| Windows | x86-64 | Supported |
On Windows, configuration is stored in %APPDATA%\gregg\gregg.toml.
Cross-process config locking uses Windows-native LockFileEx.
The optional gregg eggpool add HOST command configures one EggPool source,
using HTTP port 11300 by default. Use --https, --name,
--api-key-env ENV_NAME, and --replace as needed. Only the environment
variable name is persisted; the secret is never read by these commands.
The TUI consumes only /api/stats/summary and requires EggPool's dashboard/
statistics routes to be enabled. It displays accounted tokens, provider
cache-read share, output tokens per second, and average TTFT for 1h, 24h,
7d, or 30d; it does not display a request-level cache hit rate or invent
values when a metric is unavailable. j/Down and k/Up select the period,
while h/Left and l/Right enter or leave the pane. Ctrl-R refreshes only
the active pane, and EggPool's active refresh cadence is fixed at 60 seconds.
Omit [eggpool] to remove the pane and all EggPool worker/network activity.
Editor fallbacks: hx, vim, vi (Unix) or hx, code, notepad (Windows).
Links
- Repository: https://github.com/eggstack/gregg
- Project: https://github.com/eggstack/gregg
License
MIT