A vim-modal system powertool: network, process, memory, disk, and hardware monitoring/control in one TUI + CLI
- Rust 90.5%
- HTML 4.9%
- CSS 3.2%
- Nix 0.8%
- Shell 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
docs/install.md, website/index.html, and the AUR PKGBUILD all guessed at forgejo.kanri.management/kanri/kanri before any of this existed — the real, live instance ended up at git.kanri.management/jaghack/kanri instead. Also pointed net wg-up's --help text at the real live docs site (docs.kanri.management/wireguard.html) instead of a relative docs/wireguard.md path a CLI user has no easy way to resolve from their terminal. |
||
| docs | ||
| packaging | ||
| src | ||
| website | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
| shell.nix | ||
kanri (管理)
A vim-modal system powertool for Linux — the functionality of
nmcli/nmtui, btop, du(f)/df, dmidecode, free/top/vmstat,
plus real WireGuard, Tailscale, and packet capture, in one TUI and
one scriptable CLI. Not two separate tools sharing a name — one shared
action layer behind both: every keybind and every : command in the TUI
runs through the exact same code as its CLI subcommand.
kanri # TUI
kanri proc list # CLI, same underlying action
kanri disk --json # machine-readable
What's in it
- Overview — CPU/memory/network/disk at a glance, real sparklines and gauges
- Network — devices & connections (NetworkManager), live diagnostics, socket list, WireGuard status + up/down, Tailscale status + up/down/exit-node, per-process bandwidth, subnet scan, live packet capture (Wireshark-style dissection)
- Process — sortable/filterable table, per-core CPU strip, kill/renice
- Memory, Disk (grouped by physical drive, real capacities, collapsible), Hardware (host/CPU/kernel/sensors)
100% vim-modal (hjkl, gg/G, : command line, / live filtering —
contextual to whatever list is on screen), fully remappable, live theme
hot-reload, zero config required.
Install
See docs/install.md — Arch, Debian/Ubuntu, NixOS, or build from source.
Docs
- docs/keybindings.md — every keybind, what's contextual and why
- docs/config.md — full
config.tomlreference - docs/cli.md — every CLI subcommand
- docs/wireguard.md — one-time sudo setup for WireGuard status/control
- docs/capture.md — one-time setup for packet capture
Design notes
- One action layer.
Action(also aclap::Subcommand) is dispatched identically whether it came from a shell argv or the TUI's:line parsed with the same grammar. There is exactly one implementation per action. - Never grants its own privilege. WireGuard control and packet capture both need root/capabilities kanri doesn't have by default and won't silently acquire — see the docs above for the one-time setup, scoped as narrowly as you want it.
--jsonon everything that has a CLI form — same data as the human-readable text, nothing summarized differently between the two.
Status
Actively developed, pre-1.0. Source lives on this project's own self-hosted Forgejo instance, not GitHub.
License
Not yet chosen.