-
mmon 0.10.1
StableBuild & Publish / create-release (push) Successful in 6sBuild & Publish / build-linux-deb (amd64) (push) Successful in 46sBuild & Publish / build-linux-deb (arm64) (push) Successful in 31sBuild & Publish / build-linux-deb (armhf) (push) Successful in 25sBuild & Publish / build-linux-deb (i386) (push) Successful in 32sBuild & Publish / build-windows (push) Successful in 37sBuild & Publish / publish (push) Successful in 14sreleased this
2026-08-09 18:37:37 -04:00 | 0 commits to main since this release[0.10.1] - 2026-08-08
Added
- Memory bar segments like htop: used (gradient), kernel buffers
(mem_buf), and page cache (mem_cache), so reclaimable cache is visible
separately from real usage. The two new roles are themeable (defaults blue /
yellow) and were added to all 12 built-in themes; existing theme files on
disk are migrated automatically (new roles appended, version marker
refreshed) without clobbering user edits.
Fixed
- Push command replies through h2c/keep-alive servers: the DataPusher now
reads chunked (Transfer-Encoding: chunked) HTTP responses and de-chunks
them, instead of waiting for the connection to close. Commands from servers
behind Apache's h2c-upgrade (or any chunked/keep-alive proxy) now execute
instead of being silently dropped. The same response framing handling was
applied to the remote poller. - Settings file no longer wipes hand-added keys:
saveConfigpreserved
only its own keys and dropped everything else, so apush_token(or any
threshold/custom key) added by hand vanished on exit — leavingpush
configured without a token, which made mmon refuse to start. It now
preserves unmanaged lines verbatim, and emptyremote/pushvalues are no
longer written, so no strayremote =line appears. The TUI also warns
("push disabled: …") instead of exiting if push can't start.
Downloads
- Memory bar segments like htop: used (gradient), kernel buffers
-
mmon dev 0.10.1 (d7fc596)
Pre-ReleaseBuild & Publish / create-release (push) Successful in 10sBuild & Publish / build-linux-deb (amd64) (push) Successful in 1m34sBuild & Publish / build-linux-deb (arm64) (push) Successful in 1m42sBuild & Publish / build-linux-deb (armhf) (push) Successful in 1m44sBuild & Publish / build-linux-deb (i386) (push) Successful in 1m43sBuild & Publish / build-windows (push) Successful in 2m47sBuild & Publish / publish (push) Successful in 10sreleased this
2026-08-09 17:52:49 -04:00 | 4 commits to main since this release[0.10.1] - 2026-08-08
Added
- Memory bar segments like htop: used (gradient), kernel buffers
(mem_buf), and page cache (mem_cache), so reclaimable cache is visible
separately from real usage. The two new roles are themeable (defaults blue /
yellow) and were added to all 12 built-in themes; existing theme files on
disk are migrated automatically (new roles appended, version marker
refreshed) without clobbering user edits.
Fixed
- Push command replies through h2c/keep-alive servers: the DataPusher now
reads chunked (Transfer-Encoding: chunked) HTTP responses and de-chunks
them, instead of waiting for the connection to close. Commands from servers
behind Apache's h2c-upgrade (or any chunked/keep-alive proxy) now execute
instead of being silently dropped. The same response framing handling was
applied to the remote poller. - Settings file no longer wipes hand-added keys:
saveConfigpreserved
only its own keys and dropped everything else, so apush_token(or any
threshold/custom key) added by hand vanished on exit — leavingpush
configured without a token, which made mmon refuse to start. It now
preserves unmanaged lines verbatim, and emptyremote/pushvalues are no
longer written, so no strayremote =line appears. The TUI also warns
("push disabled: …") instead of exiting if push can't start.
Downloads
- Memory bar segments like htop: used (gradient), kernel buffers
-
mmon dev 0.10.0 (e5c7e7f)
Pre-ReleaseBuild & Publish / create-release (push) Successful in 6sBuild & Publish / build-linux-deb (amd64) (push) Successful in 18sBuild & Publish / build-linux-deb (arm64) (push) Successful in 20sBuild & Publish / build-linux-deb (armhf) (push) Successful in 21sBuild & Publish / build-linux-deb (i386) (push) Successful in 18sBuild & Publish / build-windows (push) Successful in 32sBuild & Publish / publish (push) Successful in 10sreleased this
2026-08-09 01:30:05 -04:00 | 7 commits to main since this release[0.10.0] - 2026-08-07
Added
- JSON API server: mmon can expose its live metrics as JSON over HTTP
(--listen PORT,--serve, orserve/serve_port/serve_bindin the
settings file; default port 7331). Runs from the TUI or headless
(--headless) so a dedicated server can publish in the background. The
response is a complete snapshot of the machine: CPU (aggregate, per-core,
groups), memory, load, processes, sensors, network interfaces (rates +
cumulative), the disk tree with partitions/mounts, ZFS pools, filesystems
and GPUs. - Gzip output:
GET /gz(or/api/gz) returns the same snapshot
gzip-compressed withContent-Encoding: gzip(requires zlib at build
time). The remote client auto-detects gzip — from theContent-Encoding
header or the gzip magic bytes — and decompresses transparently, so it
works against mmon, proxies, or any server regardless of encoding. - Encrypted data-frame push:
--push URL(orpushin the settings
file) POSTs the snapshot to a URL everypush_intervalseconds (default:
the-isample interval, 0.25) as a gzip-compressed JSON blob sealed with
ChaCha20-Poly1305 keyed by
SHA-256(token)(token never sent on the wire — decryption is the
authentication). mmon's HTTP server also accepts pushed frames on
POST /push(and/ingest,/), so A can push → B relays → C views.
SeeSERVER.mdfor the full wire and command protocol. - Remote command channel: the push reply may carry an encrypted command
list that mmon executes exactly as if the keys were pressed in the TUI —
focus,scroll,expand/collapse,resize,reorder,
reset_order,theme(next|name),connect,disconnect,serve,
quit, and a rawkeyescape hatch for full TUI parity. - Self-test:
mmon --selftestverifies the crypto (RFC 8439 §2.8.2),
gzip and the JSON snapshot round-trip. - Token generation:
mmon --gen-tokenprints a random 32-character
base64 token (24 CSPRNG bytes) forserve_token/remote_token/
push_token; with--write-configit is saved into the settings file as
serve_token(inserting or replacing the line) so no external tooling is
needed. - Remote monitoring:
mmon --remote HOST[:PORT](orremotein the
settings file, or theckey) replaces the local panels with a remote
mmon's data; the header shows the remote hostname and the footer shows the
connection. Disconnect withd(or clearremote). - Bearer-token auth (optional):
--token TOKEN, or
serve_token/remote_tokenin the settings file. The server rejects
requests without a matchingAuthorization: Bearer <token>header (401);
tokens are never written back to the settings file. - In-program control:
cconnects to a remote (prompts for host:port),
ddisconnects,stoggles the API server and prompts for the serve port
and bind address. Connecting at runtime is session-only and never written
back to the settings file — plainmmonstays local unless aremote
line is configured. While a remote is down or before its first snapshot
arrives, the UI shows the target host and a "waiting for data" status
instead of empty panels. - Headless daemon:
mmon --headless --servecollects and serves without
a TUI; combined with--remoteit relays another instance's data.
Downloads
- JSON API server: mmon can expose its live metrics as JSON over HTTP
-
mmon 0.10.0
StableBuild & Publish / create-release (push) Successful in 5sBuild & Publish / build-linux-deb (amd64) (push) Successful in 29sBuild & Publish / build-linux-deb (arm64) (push) Successful in 24sBuild & Publish / build-linux-deb (armhf) (push) Successful in 27sBuild & Publish / build-linux-deb (i386) (push) Successful in 29sBuild & Publish / build-windows (push) Successful in 36sBuild & Publish / publish (push) Successful in 14sreleased this
2026-08-09 01:28:07 -04:00 | 6 commits to main since this release[0.10.0] - 2026-08-07
Added
- JSON API server: mmon can expose its live metrics as JSON over HTTP
(--listen PORT,--serve, orserve/serve_port/serve_bindin the
settings file; default port 7331). Runs from the TUI or headless
(--headless) so a dedicated server can publish in the background. The
response is a complete snapshot of the machine: CPU (aggregate, per-core,
groups), memory, load, processes, sensors, network interfaces (rates +
cumulative), the disk tree with partitions/mounts, ZFS pools, filesystems
and GPUs. - Gzip output:
GET /gz(or/api/gz) returns the same snapshot
gzip-compressed withContent-Encoding: gzip(requires zlib at build
time). The remote client auto-detects gzip — from theContent-Encoding
header or the gzip magic bytes — and decompresses transparently, so it
works against mmon, proxies, or any server regardless of encoding. - Encrypted data-frame push:
--push URL(orpushin the settings
file) POSTs the snapshot to a URL everypush_intervalseconds (default:
the-isample interval, 0.25) as a gzip-compressed JSON blob sealed with
ChaCha20-Poly1305 keyed by
SHA-256(token)(token never sent on the wire — decryption is the
authentication). mmon's HTTP server also accepts pushed frames on
POST /push(and/ingest,/), so A can push → B relays → C views.
SeeSERVER.mdfor the full wire and command protocol. - Remote command channel: the push reply may carry an encrypted command
list that mmon executes exactly as if the keys were pressed in the TUI —
focus,scroll,expand/collapse,resize,reorder,
reset_order,theme(next|name),connect,disconnect,serve,
quit, and a rawkeyescape hatch for full TUI parity. - Self-test:
mmon --selftestverifies the crypto (RFC 8439 §2.8.2),
gzip and the JSON snapshot round-trip. - Token generation:
mmon --gen-tokenprints a random 32-character
base64 token (24 CSPRNG bytes) forserve_token/remote_token/
push_token; with--write-configit is saved into the settings file as
serve_token(inserting or replacing the line) so no external tooling is
needed. - Remote monitoring:
mmon --remote HOST[:PORT](orremotein the
settings file, or theckey) replaces the local panels with a remote
mmon's data; the header shows the remote hostname and the footer shows the
connection. Disconnect withd(or clearremote). - Bearer-token auth (optional):
--token TOKEN, or
serve_token/remote_tokenin the settings file. The server rejects
requests without a matchingAuthorization: Bearer <token>header (401);
tokens are never written back to the settings file. - In-program control:
cconnects to a remote (prompts for host:port),
ddisconnects,stoggles the API server and prompts for the serve port
and bind address. Connecting at runtime is session-only and never written
back to the settings file — plainmmonstays local unless aremote
line is configured. While a remote is down or before its first snapshot
arrives, the UI shows the target host and a "waiting for data" status
instead of empty panels. - Headless daemon:
mmon --headless --servecollects and serves without
a TUI; combined with--remoteit relays another instance's data.
Downloads
- JSON API server: mmon can expose its live metrics as JSON over HTTP
-
mmon 0.9.4
StableBuild & Publish / create-release (push) Failing after 5sBuild & Publish / build-linux-deb (amd64) (push) SkippedBuild & Publish / build-linux-deb (arm64) (push) SkippedBuild & Publish / build-linux-deb (armhf) (push) SkippedBuild & Publish / build-linux-deb (i386) (push) SkippedBuild & Publish / build-windows (push) SkippedBuild & Publish / publish (push) Skippedreleased this
2026-08-06 23:04:45 -04:00 | 25 commits to main since this release[0.9.4] - 2026-08-05
Added
- Reorder items:
PgUp/PgDnmove the selected item up/down in the Disk
(drives) and Network (interfaces) panels. A partition row moves its whole
drive. The order is persisted in the settings file (disk_order/
net_order) and reapplied on the next run;rresets the focused panel's
order back to automatic (natural drive order, traffic-sorted interfaces).
Selection stays on the moved item, and once a net interface is reordered the
manual order replaces the traffic sort.
Downloads
- Reorder items:
-
mmon 0.9.3
StableBuild & Publish / build-linux-deb (amd64) (push) Successful in 48sBuild & Publish / build-linux-deb (arm64) (push) Successful in 47sBuild & Publish / build-linux-deb (armhf) (push) Successful in 46sBuild & Publish / build-linux-deb (i386) (push) Successful in 46sBuild & Publish / build-windows (push) Successful in 1m37sBuild & Publish / publish-release (push) Successful in 9sreleased this
2026-08-05 17:33:27 -04:00 | 27 commits to main since this release[0.9.3] - 2026-08-05
Added
- Themes: 12 built-in color themes (default, dark, light, solarized,
nord, gruvbox, monokai, ocean, forest, midnight, mono, matrix) cycled with
F10; the active theme's name is shown in the top-right corner of the
header. On first run the built-in themes are written to
$XDG_CONFIG_HOME/mmon/themes/(or%APPDATA%\mmon\themeson Windows) so
they can be edited or overwritten, and any custom*.conftheme added there
is picked up automatically. The theme file format maps named color roles
(header, active, text, dim, CPU/GPU bar colors, selection colors, etc.) to
fgorfg:bgcolor specs, with globalbackground/foregroundkeys that
fill in every role that does not override them (light themes get a full
white background). The entire screen — including gaps between panels and
left/right margins — is painted with the theme background. The selected
theme is remembered in the main settings file. The built-in set covers
distinct
palettes (dark/light, solarized, nord, gruvbox, monokai, ocean, forest,
midnight, mono, matrix); built-in theme files carry a version marker so
stale themes written by older builds are refreshed automatically while
user edits are preserved. Theme colors are clamped to the terminal's color
depth — on terminals without 256-color support, palette colors map to the
nearest basic color instead of falling back to black. Bar idle tracks are
filled with an explicit background cell and blank rows are painted with a
solid block on terminals withoutback_color_erase, so themes with a
background render it everywhere (bars, gaps, margins) instead of leaving
black areas.
Changed
- Theme role
accentrenamed toactiveand wired to the focused panel's
label (CPU/Disk/Net) and the GPU label; oldaccentkeys in theme files are
still accepted as an alias. gpu_labelnow colors the GPU section text (name, fan, clocks).- Configurable color thresholds in
mmon.conf:temp_warn/temp_crit
(70/85 °C) andpower_warn/power_crit(150/250 W) colorize the
temperature and power values (GPU info line and CPU sensors line) green /
yellow / red using the theme'smem_ok/mem_warn/mem_crit;usage_warn/
usage_crit(60/85 %) tune the usage-bar gradient. foresttheme updated to the new palette (dark234background, dark-green
header, bright-green selection).
Fixed
- Windows header glitches: on the Windows console the solid-block
background fill (for non-bceterminals) is unnecessary because PDCurses
writes each cell's attributes explicitly, and it rendered as stray blocks
near the header. The block fill is now Linux-only. PDCursesMod also no
longer toggles console VT-processing mode around every ANSI color write
(the rapid mode toggling intermittently dropped the header's background
color, showing black digits); VT mode is enabled once and left on.
Downloads
- Themes: 12 built-in color themes (default, dark, light, solarized,