nmcli + btop + wireshark + dmidecode, one binary

Your terminal already runs
everything. Now it controls it too.

kanri is a vim-modal system powertool for Linux — network, process, memory, disk, and hardware, watched and controlled, from one TUI and one scriptable CLI. Every keybind and every kanri command runs through the exact same code underneath.

Six tabs. Nothing hidden behind a menu.

Read state and change it, from the same screen — WRITE marks the parts that don't just watch.

TabWhat's there
OverviewCPU, memory, network throughput, disk usage — sparklines and gauges, one glance at boot.
NetworkWRITEDevices & NetworkManager connections, WiFi connect, live diagnostics, socket list, WireGuard status/up/down, Tailscale status/up/down/exit-node, per-process bandwidth, subnet scan, live packet capture with real protocol dissection.
ProcessWRITESortable, filterable table. Per-core CPU strip. Kill and renice, straight from the keyboard.
MemoryUsed, available, free, swap — no unit conversion in your head.
DiskGrouped by physical drive, not a flat mount-point dump. Real capacities from sysfs. Collapse what you don't need to see.
HardwareHost, CPU, kernel, live sensor temperatures.

Built like a tool, not a dashboard

One action layer

Every keybind and every : command in the TUI dispatches through the exact same code as its CLI subcommand. Nothing the TUI can do that the CLI can't script, and vice versa.

Never grants its own privilege

WireGuard control and packet capture need root or capabilities kanri doesn't have by default — and won't silently acquire. You set that up once, scoped as narrowly as you want.

--json on everything

Every CLI subcommand's machine-readable output is the exact same data as its human-readable text. Pipe it, don't scrape it.

Install

Pick your OS.

kanri is a single binary. No runtime beyond what's listed per method.

Coming soon — not yet published to the AUR
Once published
yay -S kanri
Today, from the PKGBUILD directly
git clone https://forgejo.kanri.management/kanri/kanri.git
cd kanri/packaging/aur
makepkg -si
Coming soon — apt repository not hosted yet
Once hosted
# add the repo, then install
curl -fsSL https://kanri.management/apt/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kanri.gpg
echo "deb [signed-by=/usr/share/keyrings/kanri.gpg] https://kanri.management/apt stable main" | sudo tee /etc/apt/sources.list.d/kanri.list
sudo apt update && sudo apt install kanri
Today, build a local .deb with cargo-deb
cargo install cargo-deb
git clone https://forgejo.kanri.management/kanri/kanri.git
cd kanri && cargo deb
flake.nix
{
  inputs.kanri.url = "git+https://forgejo.kanri.management/kanri/kanri.git";

  outputs = { self, nixpkgs, kanri, ... }: {
    nixosConfigurations.yourhost = nixpkgs.lib.nixosSystem {
      modules = [{
        environment.systemPackages = [ kanri.packages.x86_64-linux.default ];
      }];
    };
  };
}
Or try it without installing anything
nix run git+https://forgejo.kanri.management/kanri/kanri.git
Needs a Rust toolchain (edition 2024) and libclang
git clone https://forgejo.kanri.management/kanri/kanri.git
cd kanri
cargo build --release
./target/release/kanri
Or with Nix — no system Rust install needed
nix develop
cargo run
WireGuard control needs one sudo rule kanri never has standing root. Reading status and bringing an interface up/down go through sudo -n, scoped by you. See docs/wireguard.md in the repo.
Packet capture needs one-time setup Same idea as installing Wireshark itself — a capability grant or group membership, your choice. See docs/capture.md in the repo.