aldermon
btop-style TUI monitor for Alder Lake (i5-12600KF), built around real vCore voltage for overclock-safety work.
Usage
aldermon --tui # TUI (default workhorse)
aldermon --vid # VID spike tool (debug, needs root + msr module)
aldermon --log # append CSV samples to ./aldermon-vid.log
aldermon # one-shot sensor dump
aldermon --help # options
The TUI always shows the delivered vCore (SIO in0), the CPU's requested SVID
setpoint (IA32_PERF_STATUS), and the delta (delivered − requested; negative =
VRM droop, positive = LLC overshoot). The VID read needs root +
/dev/cpu/*/msr; without it the panel shows VID n/a (needs root).
--log appends one CSV row per poll to ./aldermon-vid.log (header +
per-CPU VID / frequency / raw MSR columns). With --tui it logs live; with
--vid it logs continuously until interrupted.
Short flags group: -lvt == --log --vid --tui.
The TUI needs a real terminal; piped/redirected stdout exits with a clear error instead of a panic.
Features: vCore hero panel (limit marker, 5-min peak, auto-scale), package power/temp, per-core frequency bars + temps, E/P-core sections, braille sub-pixel scrolling graphs, footer max frequency.
Config
aldermon.conf is read from the working directory, then
~/.config/aldermon/aldermon.conf, then /etc/aldermon/aldermon.conf
(first file found wins; no merging). Simple KEY = VALUE lines; #
comments; unknown keys are ignored. All values optional — built-in
defaults target an ASRock Z690M ITX/ax (nct6798). Numeric keys are
range-checked; an out-of-range value falls back to the default.
vcore_limit = 1.403 # safety limit shown as marker on the vCore bar
temp_warn = 80.0
temp_crit = 95.0
# Per-graph y scales (also editable in the settings pane, F2)
vcore_min = 0.0
vcore_bar_max = 1.50
clock_min = 0 # kHz
clock_bar_max = 4500000
power_min = 0.0
power_bar_max = 200.0
temp_min = 0
temp_max = 100
poll_ms = 250 # sample/tick period (50..10000)
graph_secs = 300 # history kept, sizes peaks + auto-scale
graph_scale_fixed = false # true = pin to the scales above
graphs = true
layout = auto # auto | single | dual
Install
make # release build
make check # fmt + clippy + tests
doas make install # PREFIX=/usr/local by default
Installs aldermon to $(PREFIX)/bin, this repo's aldermon.conf to
/etc/aldermon/aldermon.conf (system default — override per-user via
~/.config/aldermon/), and the udev helper to /usr/share/aldermon/.
make uninstall reverses it (leaves the system conf dir if non-empty).
Package power (RAPL) — one-time setup
energy_uj is root-only on this kernel. To read watts as a normal user,
install the udev rule once as root (comes from make install):
doas /usr/share/aldermon/powercap-pl-rules.sh
doas usermod -aG adm $USER # then re-login
Status
Working: TUI, config (+ system /etc default), RAPL power. Remaining
notes live in the local-only .LLM_Memory/ (gitignored).