Skip to content
v0.12.0

Keys

markdown

Use the mouse, the keyboard, or both. Tabs, selectors, tasks, and footer actions are clickable. Press Shift+M to enter multi-select, then click tasks or their numbers to toggle marks. Outside multi-select, double-click a task to open it.

Press ? on the board, task page, or another non-text surface for a searchable list of all shortcuts. Status and delete shortcuts use Ctrl; navigation uses bare keys. The website demo uses bare status keys because browsers reserve control chords.

ActionKey
Select previous / next row (tasks and group headers)↑ / ↓ or k / j
Enter / leave multi-selectShift+M
Mark current task, then move in multi-selectShift+↑ / Shift+↓
Mark / unmark cursored task in multi-selectSpace
Open task full screenEnter
Open a group sub-header’s board: its project, the desk, or its thread’s viewEnter on the sub-header
Fold / unfold the header under the cursor: a sub-group, the inbox, or archived← / → or h / l
Peek / close peek below 110 columns→ / ← or l / h
Move through wide views→ / ← or l / h
Add task+
Edit titlectrl+e
Start open or ready taskctrl+s
Set ready, the picked queuectrl+n
Set open, the inboxctrl+o
Mark donectrl+d
Toggle blocked / readyctrl+b
Toggle review / readyctrl+r
Delete, with a second press to confirmctrl+x or ctrl+Delete
Undo completion/deletion; restore an archived selectionctrl+u
Archive / restore selected task (archived tasks live in the done drawer’s archived group)ctrl+f
Open / close done drawerd
Group by none / project / threadg
Sort by recent / project / thread / titles
Fold or unfold the cursor’s group: a sub-group (inbox sub-groups included), the inbox, or archived in the done drawerf
Fold or unfold every group in viewShift+F
Desk / selected project / projects1 / 2 / 3
Project pickerp
Filter: thread and project on the desk, thread on a project boardt
Switch the desk filter’s threads / projects tab← / →
Cross-project view selectorv on Projects
Search current board rows/
Command palette:
All shortcuts?
Close a layer; quit at the full-board rootEsc
Quit outside text entryctrl+q
Quit from board viewctrl+c

ctrl+q quits from task views, Help, and pickers too, including the wide project preview. It does not quit while editing text, using board search, typing a quick-add line, or filtering the palette. Save or cancel any unsaved draft first. During save recovery, resolve the pending save instead.

Esc leaves multi-select and clears its marks first, then closes the current layer. At the full-board root on any tab, with multi-select inactive, it quits without confirmation rather than switching back to the desk. In either wide split, Esc closes the right column after any editor or overlay is dismissed. A further Esc at the full-board root quits. A project preview with unsaved work refuses to close. If narrowing the terminal hides the right column, the visible board/index is already at the root: Esc quits without an extra collapse, unless a parked draft blocks quitting.

Bare s and f are navigation beside their Ctrl verbs, like d beside ctrl+d: s sorts while ctrl+s starts, and f folds while ctrl+f archives.

On a fold header (a group sub-header, the inbox, or archived in the done drawer), ← / h folds it when it is open and → / l unfolds it when it is folded; the cursor stays on the header. When there is nothing to fold or unfold, the key keeps its usual meaning (the peek, or the wide stage slider), so a header never blocks the slider. Enter on a group sub-header opens its project’s board, the desk, or its thread’s cross-project view; no thread opens nothing, and Enter on the inbox or archived header does nothing. A click on any header only selects it; a double-click opens a sub-header’s board, or folds and unfolds a header that opens nothing (no thread, desk on the desk, the inbox, archived).

Shift+M enters or leaves multi-select while the board owns input. On a group sub-header it unfolds the group and marks all its tasks, adding them to the set when multi-select is already on. While it is active, Space, shifted arrows, and a plain task click change marks instead of opening a task. Removing the last mark leaves the mode active. Shift+M again from the board, Esc, a task action, or a lens change leaves it and clears the set. Text entry keeps Shift+M as a capital M; Esc leaves multi-select before cancelling that surface.

When tasks are marked, the status, delete, and archive shortcuts act on that set; without marks they act on the cursor. Enter and ctrl+e remain cursor-only. ctrl+s starts each eligible open or ready task and leaves started, blocked, and review tasks unchanged. Marked done tasks are skipped too, and the status row says so: started N · skipped M done (ctrl+n or ctrl+o reopens them). Bulk block and review toggles send every target to blocked or review unless all targets already have that status, in which case they all return to ready. ctrl+n and ctrl+o can send done tasks directly to ready or open. One ctrl+u reverses an entire marked completion or deletion.

These keys apply in view mode:

ActionKey
Select steps and + stepTab / Shift+Tab
Activate first step, then move among steps↓, then ↑ / ↓
Toggle selected stepEnter
Add step (below the selected step, else at the end)ctrl+a
Move selected step up or downalt+↑ / alt+↓
Edit title or selected stepctrl+e
Change task statusBoard status shortcuts above
Mark/remove selected step; otherwise confirm/delete taskctrl+x
Command palette:
All shortcuts?
Close taskEsc
Quit the boardctrl+q

Click a step to select it. Click + step to add at the end. Field clicks become editable only after task editing starts.

alt+↑ / alt+↓ is the one mutating shortcut without ctrl: macOS reserves ctrl+arrows for Mission Control. It also works during task editing while a step is selected and no field is open. Your terminal must send alt+↑ as one modified key (xterm’s default); a terminal set to prefix Option or Alt with Esc delivers Esc and then the arrow, which closes the task page.

ActionKey
Next / previous fieldTab / Shift+Tab
Save task editShift+Enter
Cancel fieldEsc or ctrl+c
Move from Title to NotesEnter in Title
New lineEnter in Notes
Add another stepctrl+a with no text field open, or Enter in a new step
Save new step and open next empty rowEnter in new step
Retain existing-step rename in sessionEnter in existing step
Stage selected-step removalctrl+x in task edit
Open Scope picker / confirm selectionEnter
Cycle ScopeSpace or ← / →
Open / close selected Thread editorEnter
Line start / endHome / End, or ctrl+a / ctrl+e (what macOS terminals send for Cmd+← / Cmd+→)
Word left / rightctrl+← / ctrl+→, or alt+← / alt+→ (Option on macOS; also Esc b / Esc f)
Delete backward / forwardBackspace / Delete
Delete word backwardalt+Backspace or ctrl+w
Delete word forwardalt+Delete or alt+d
Delete to line start / endctrl+u / ctrl+k (macOS terminals send Cmd+Backspace as ctrl+u)
Move through wrapped notes↑ / ↓

Every text field takes the word keys: Title, Notes, steps, Thread, and the quick-add line and draft. A word is a run of non-space characters; deleting a word also takes the spaces between it and the cursor. In Notes a word delete stops at a line break, and the next press removes the break. Search, the palette, Help, and pickers have no cursor, so alt+Backspace and ctrl+w drop the query’s last word there. On Windows, AltGr letters still type as characters. On macOS the Option keys reach tsk only when the terminal sends Option as Meta: Terminal.app’s Use Option as Meta key, or iTerm2’s Option key set to Esc+. If Option+B types ∫ instead, use ctrl+← / ctrl+→ and ctrl+w. While Notes is focused the footer shows enter new line.

ctrl+a and ctrl+e move to line start and end in every text field: Title, Notes, Thread, a step editor, and quick-add. ctrl+a adds a step only where no text cursor is open: task page view, a selected step or + step, the Scope row, or a selected Thread. ctrl+u deletes from the cursor to the line start and ctrl+k to the line end; in Notes, ctrl+u at the start of a line joins it to the line above and ctrl+k at the end of a line joins the next one. In a one-line field they take everything before or after the cursor. Outside text fields ctrl+u is still undo; search, the palette, Help, and pickers leave both keys alone. Paste preserves line breaks in Notes and converts them to spaces in single-line fields.

Editing keys take precedence over view-mode status shortcuts. In the step editor, ctrl+d and ctrl+o still address the task; ctrl+x removes the step being edited, staged until the task edit is saved; Enter in a new step saves it and opens the next row. Notes are reached with ctrl+e, then Tab. Alt+Enter does not save the task edit.

Some terminals are set to send a plain line feed for Shift+Enter (Ghostty’s keybind = shift+enter=text:\n, for example). tsk reads that as ctrl+j, so the form does not save. In a form editor, ctrl+j shows Shift+Enter sent Ctrl+J: check terminal keys on the status row and changes nothing. Remove the binding, or map Shift+Enter to a sequence that keeps the Shift modifier, then try again.

ActionKey
Save and closeEnter
Save and keep addingShift+Enter
Add notes and detailsTab (the footer shows tab notes)
Cancel line / return from detailsEsc

In Herdr quick capture, Shift+Enter saves and closes the popup. Esc closes an active step editor or scope picker first; otherwise it discards the popup. During save recovery, it cancels the pending save. Capture guide.

SurfaceControls
Project pickerArrows or j/k select; Tab or ←/→ switch tabs; Enter opens; ? opens Help; Esc or q closes
Project archivectrl+f archives; on archived tab, ctrl+f or ctrl+u restores
Archived project viewctrl+u restores; Esc, p, or 1–3 leaves
Thread/view selectorType or paste to filter; arrows or Tab select; Enter chooses; Esc closes
Board searchType or paste; Backspace edits; Enter pins; Esc clears and closes
PaletteType to filter; arrows or Tab select; Enter runs; Esc closes
HelpType or paste to filter by key or action; arrows, page keys, or wheel scroll; Esc clears the search, then closes
Archived-project launch prompty restores; n or Esc keeps archived; ? opens Help
Failed saver or Enter retries; c or Esc cancels

j and k are text in board search, thread/view filters, and Help search, not navigation. ? and / are text in every input field, including Help search.

At 110 usable columns or wider, the arrow keys or h / l move through these views when you are not editing:

View→ / l← / hEsc
BoardSplitNo changeQuit at root
Split, board focusedTask with railBoardBoard
Task with railFull screenSplitSplit
Full screenNo changeTask with railReturn to the view remembered when opening

Enter from the board opens full screen and remembers the previous view. Tab navigates task fields or steps; it does not switch wide views.

On Projects Overview at 110+ columns, clicking a row or moving the index selection opens the Split preview automatically. The project slider is shorter:

Stage→ / l← / hEsc
Full boardSplit previewNo changeQuit at root
Split, index focusedRailFull boardFull board
Rail, right board focusedNarrow board keysReturn to indexReturn to index

The right seat keeps its own project-board cursor, multi-select, marked set, and state. Its → / l and ← / h are peek controls (and fold controls on a header), and Enter opens a task page inside the column. ctrl+d, d, g, s, f, +, and the other board actions apply to the right seat while it is focused; its group, sort, and folds are its own.

h and l are navigation aliases only while a board or task view owns input. Text editors, quick-add, search, filters, the palette, and Help continue to insert them as ordinary characters.

Board views and mouse behavior.