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

Configuration

kanri works with zero config — every field below has a sensible compiled-in default. Config lives at ~/.config/kanri/config.toml (respects $XDG_CONFIG_HOME), or pass --config <path> to use a different file. A missing config file is not an error.

Full example

# Show a Japanese companion label under every tab/section label.
# Off by default — a terminal powertool needs every column of width.
jp_labels = false

# How often live-ticking views (Overview, Process, Memory, Disk,
# Hardware) refresh, in milliseconds.
refresh_interval_ms = 1000

[theme]
# Overrides the default theme source (~/.config/quickshell/theme.json).
# Point this at any JSON file with the same shape to use kanri outside
# that theming pipeline. Every field in that file is optional — kanri
# falls back to a compiled-in dark palette for anything missing.
override_path = "/path/to/theme.json"

[thresholds]
# Color-coding cutoffs (0-100) shared by every gauge/table that shows a
# percentage-like value — CPU%, memory/disk usage, sensor temperatures.
warn_at = 70.0
crit_at = 90.0

[keymap.normal]
# Chord -> action name. Only the chords listed here change; every other
# chord keeps its compiled-in default. See "Action names" below for the
# full list of what you can bind. See keybindings.md for what each one
# does and which are contextual per-tab.
"j" = "move_down"
"k" = "move_up"
"dd" = "delete_selected"

theme

kanri reads the same live theme file a matugen-based rice pipeline generates, and hot-reloads it on change — no restart needed. Every field in that JSON is optional; kanri falls back to a built-in dark palette (Catppuccin-Mocha-adjacent) for anything absent, including when no theme file exists at all. Recognized keys (all optional): base, surface, overlay, textPrimary, textSecondary, textMuted, accentNetwork, accentSystem, success, warning, error — each a "#rrggbb" hex string.

thresholds

Applies everywhere a value is shown as a percentage-like gauge or colored number: below warn_at is “success” colored, between warn_at and crit_at is “warning,” at or above crit_at is “error.”

keymap.normal

An overlay, not a replacement — set only the chords you want to change. A chord can be any sequence of keys kanri’s input layer recognizes (a single character like "j", or a short sequence like "gg"). An unknown action name is logged and skipped at startup, not a fatal error.

Action names

The right-hand side of a keymap.normal entry — every name below is a valid target:

move_down       move_up         move_left        move_right
move_line_start jump_top        jump_bottom
next_tab        prev_tab
enter_command   enter_search    show_help        quit
delete_selected up_selected     down_selected
next_sub_view   prev_sub_view   trigger
connect_wifi    toggle_extra

See keybindings.md for what each one does, including the ones that are contextual per-tab (e.g. trigger starts a subnet scan on the Scan sub-view, but toggles Tailscale on the Tailscale sub-view).