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
| Key | Action |
|---|---|
h j k l | Move left / down / up / right |
0 | Move to the start of the current line/list |
gg | Jump to the top |
G | Jump to the bottom |
gt | Next tab |
gT | Previous tab |
{n}gt | Jump 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) |
q | Quit — or close the help overlay first, if it’s open |
Ctrl+C | Quit unconditionally, regardless of mode |
Contextual
| Key | Meaning |
|---|---|
dd | Delete 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. |
Space | Context-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). |
c | Open the WiFi-connect prompt — SSID, then a password (Network → Devices only; Enter with a blank password connects to an open network). |
o | Toggle 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
| View | Matches against |
|---|---|
| Process | Command, username, PID |
| Network → Sockets | Protocol, state, local/peer address, process name, PID |
| Network → Scan | IP, hostname |
| Network → Bandwidth | Process name |
| Network → WireGuard | Interface, endpoint, allowed IPs |
| Network → Tailscale | Hostname, any Tailscale IP, OS |
| Network → Capture | Source, 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.