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

Kanban (TUI)

pinto kanban opens an interactive board in the terminal. It reads and writes the same .pinto/ board as the non-interactive commands, so a move made in the TUI is immediately visible to pinto list and pinto board, and vice versa.

pinto kanban

Start with a focused view

Startup flags narrow what the board shows without changing stored data:

pinto kanban --column in-progress review   # show only these columns
pinto kanban --maximize --column review     # open maximized on one column
pinto kanban --search parser                # filter cards by substring
pinto kanban --search '^T-1\d' --regex      # filter cards by regular expression

Explicit --column values override the [tui] hidden_columns setting for that run. --regex requires --search.

The board separates selecting a card from moving it: lowercase keys move the cursor, uppercase (Shift) keys move the selected item. Defaults are:

ActionKeys
Select column / rowh j k l or arrow keys
Move item across columnsH / L (Shift+Left / Shift+Right)
Reorder item within a columnK / J (Shift+Up / Shift+Down)
Expand or collapse a parentSpace / Enter
Add a PBIa
Edit the selected PBIe
Add / remove a dependencyd / D
Set or clear the parentp
Open the details popupv
Substring / regex search/ / Ctrl+?
Clear an active filterEsc
Toggle a maximized columnm
Reload the boardr
Help window?
Quitq or Esc
Quit into the shellQ

Press ? inside the board to open the built-in help window, which always lists the bindings that are actually in effect.

Cards follow the same hierarchical display order as pinto list and pinto board: top-level cards by rank, each parent followed by its subtree, with siblings ordered by rank. Expanding a parent reveals its children directly beneath it, so a child may sit ahead of a standalone card that outranks it — that is the point, since the parent’s priority carries its whole subtree. The completion column leads with the most recently finished card (done_at descending).

Customize behavior

The [tui] section of .pinto/config.toml adjusts the interactive board:

[tui]
confirm_quit = true                 # ask before leaving the board
hidden_columns = ["done"]           # hide columns unless --column overrides

Unknown column names in hidden_columns are rejected at load time, so a typo surfaces immediately rather than silently hiding nothing.

Rebind keys

[tui.key_bindings] overrides the keys for individual actions. Each action takes an array of one or more key expressions, and an action may keep several bindings at once:

[tui.key_bindings]
quit = ["q", "Esc"]                 # keep the defaults
add = ["a", "n"]                    # add a second key for "add"
move_left = ["Shift+Left"]          # replace the default for this action
help = ["?", "F1"]

Only the actions you list are overridden; every other action keeps its default keys. The action names are the snake_case forms shown by the built-in help window and the [tui.key_bindings] documentation (quit, shell, select_left, move_left, reorder_up, add, edit, dependency_add, parent, maximize, search, regex_search, details, help, and so on).

A key expression is a key name, optionally prefixed with +-separated modifiers:

  • Printable keys are the character itself: q, /, ?. Use an uppercase letter (H) rather than Shift+h for shifted letters.
  • Named keys: Enter, Esc, Tab, Backspace, Delete, Insert, Home, End, PageUp, PageDown, the arrows Left / Right / Up / Down, and function keys F1F12.
  • Modifiers: Ctrl, Alt, Shift, Cmd, Meta, and Hyper — for example Ctrl+a or Alt+Shift+Left. Write the literal plus key as Plus.

Invalid expressions (an empty name, an unknown modifier, or Shift+ on a printable character) are reported when the board configuration loads, so a bad binding is caught before the TUI starts rather than failing silently.