Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Keybindings

All of kanri’s TUI input is vim-modal: Normal mode for navigation and actions, Command mode (:) for typed commands, Search mode (/) for live filtering. Every chord below is fully remappable — see config.md.

Several chords are contextual: the same key does different things depending which tab (and sub-view, for Network) is active. This is deliberate — dd always means “delete/kill/forget the selected thing,” just applied to whatever “the selected thing” is on the current screen, rather than one bespoke keybind per subsystem.

Global

KeyAction
h j k lMove left / down / up / right
0Move to the start of the current line/list
ggJump to the top
GJump to the bottom
gtNext tab
gTPrevious tab
{n}gtJump to tab number n (1-indexed)
:Open the command line (same grammar as the CLI — see cli.md)
/Open the search/filter line (contextual — see below)
?Toggle the help overlay (auto-generated from your live keymap)
qQuit — or close the help overlay first, if it’s open
Ctrl+CQuit unconditionally, regardless of mode

Contextual

KeyMeaning
ddDelete the selected thing — always goes through a y/N confirm first. Kills the selected process (Process tab), forgets the selected saved connection (Network → Devices).
u“Power up” the selected thing. Activates a saved connection (Network → Devices), brings a WireGuard interface up (Network → WireGuard).
x“Power down” the selected thing. Deactivates a connection (Network → Devices), brings a WireGuard interface down (Network → WireGuard).
[ / ]Cycle the Network tab’s sub-view: Devices → Diagnostics → Sockets → WireGuard → Tailscale → Bandwidth → Scan → Capture.
SpaceContext-dependent “do the thing”: run a subnet scan (Scan), start/stop a live capture (Capture), toggle Tailscale up/down (Tailscale), collapse/expand the selected drive (Disk).
cOpen the WiFi-connect prompt — SSID, then a password (Network → Devices only; Enter with a blank password connects to an open network).
oToggle showing small system/boot/recovery partitions alongside each drive’s main ones (Disk tab).
/Live filter for whichever list is on screen: process command/user/PID, sockets, subnet scan results, per-process bandwidth, WireGuard peers, Tailscale peers, or live captured packets — each field it makes sense to match against, case-insensitive. Empty query clears the filter.

Search filter fields, per view

ViewMatches against
ProcessCommand, username, PID
Network → SocketsProtocol, state, local/peer address, process name, PID
Network → ScanIP, hostname
Network → BandwidthProcess name
Network → WireGuardInterface, endpoint, allowed IPs
Network → TailscaleHostname, any Tailscale IP, OS
Network → CaptureSource, destination, protocol, dissected info

Remapping

~/.config/kanri/config.toml:

[keymap.normal]
"j" = "move_down"
"dd" = "delete_selected"

Only the chords you mention change — everything else keeps its default. See config.md for the full list of action names you can bind.