Keys
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.
| Action | Key |
|---|---|
| Select previous / next row (tasks and group headers) | ↑ / ↓ or k / j |
| Enter / leave multi-select | Shift+M |
| Mark current task, then move in multi-select | Shift+↑ / Shift+↓ |
| Mark / unmark cursored task in multi-select | Space |
| Open task full screen | Enter |
| Open a group sub-header’s board: its project, the desk, or its thread’s view | Enter 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 title | ctrl+e |
| Start open or ready task | ctrl+s |
| Set ready, the picked queue | ctrl+n |
| Set open, the inbox | ctrl+o |
| Mark done | ctrl+d |
| Toggle blocked / ready | ctrl+b |
| Toggle review / ready | ctrl+r |
| Delete, with a second press to confirm | ctrl+x or ctrl+Delete |
| Undo completion/deletion; restore an archived selection | ctrl+u |
| Archive / restore selected task (archived tasks live in the done drawer’s archived group) | ctrl+f |
| Open / close done drawer | d |
| Group by none / project / thread | g |
| Sort by recent / project / thread / title | s |
| Fold or unfold the cursor’s group: a sub-group (inbox sub-groups included), the inbox, or archived in the done drawer | f |
| Fold or unfold every group in view | Shift+F |
| Desk / selected project / projects | 1 / 2 / 3 |
| Project picker | p |
| Filter: thread and project on the desk, thread on a project board | t |
| Switch the desk filter’s threads / projects tab | ← / → |
| Cross-project view selector | v on Projects |
| Search current board rows | / |
| Command palette | : |
| All shortcuts | ? |
| Close a layer; quit at the full-board root | Esc |
| Quit outside text entry | ctrl+q |
| Quit from board view | ctrl+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.
Task page
Section titled “Task page”These keys apply in view mode:
| Action | Key |
|---|---|
| Select steps and + step | Tab / Shift+Tab |
| Activate first step, then move among steps | ↓, then ↑ / ↓ |
| Toggle selected step | Enter |
| Add step (below the selected step, else at the end) | ctrl+a |
| Move selected step up or down | alt+↑ / alt+↓ |
| Edit title or selected step | ctrl+e |
| Change task status | Board status shortcuts above |
| Mark/remove selected step; otherwise confirm/delete task | ctrl+x |
| Command palette | : |
| All shortcuts | ? |
| Close task | Esc |
| Quit the board | ctrl+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.
Editing
Section titled “Editing”| Action | Key |
|---|---|
| Next / previous field | Tab / Shift+Tab |
| Save task edit | Shift+Enter |
| Cancel field | Esc or ctrl+c |
| Move from Title to Notes | Enter in Title |
| New line | Enter in Notes |
| Add another step | ctrl+a with no text field open, or Enter in a new step |
| Save new step and open next empty row | Enter in new step |
| Retain existing-step rename in session | Enter in existing step |
| Stage selected-step removal | ctrl+x in task edit |
| Open Scope picker / confirm selection | Enter |
| Cycle Scope | Space or ← / → |
| Open / close selected Thread editor | Enter |
| Line start / end | Home / End, or ctrl+a / ctrl+e (what macOS terminals send for Cmd+← / Cmd+→) |
| Word left / right | ctrl+← / ctrl+→, or alt+← / alt+→ (Option on macOS; also Esc b / Esc f) |
| Delete backward / forward | Backspace / Delete |
| Delete word backward | alt+Backspace or ctrl+w |
| Delete word forward | alt+Delete or alt+d |
| Delete to line start / end | ctrl+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.
If Shift+Enter does not save
Section titled “If Shift+Enter does not save”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.
Quick-add
Section titled “Quick-add”| Action | Key |
|---|---|
| Save and close | Enter |
| Save and keep adding | Shift+Enter |
| Add notes and details | Tab (the footer shows tab notes) |
| Cancel line / return from details | Esc |
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.
Pickers
Section titled “Pickers”| Surface | Controls |
|---|---|
| Project picker | Arrows or j/k select; Tab or ←/→ switch tabs; Enter opens; ? opens Help; Esc or q closes |
| Project archive | ctrl+f archives; on archived tab, ctrl+f or ctrl+u restores |
| Archived project view | ctrl+u restores; Esc, p, or 1–3 leaves |
| Thread/view selector | Type or paste to filter; arrows or Tab select; Enter chooses; Esc closes |
| Board search | Type or paste; Backspace edits; Enter pins; Esc clears and closes |
| Palette | Type to filter; arrows or Tab select; Enter runs; Esc closes |
| Help | Type or paste to filter by key or action; arrows, page keys, or wheel scroll; Esc clears the search, then closes |
| Archived-project launch prompt | y restores; n or Esc keeps archived; ? opens Help |
| Failed save | r 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.
Wide stage slider
Section titled “Wide stage slider”At 110 usable columns or wider, the arrow keys or h / l move through these views when you are not editing:
| View | → / l | ← / h | Esc |
|---|---|---|---|
| Board | Split | No change | Quit at root |
| Split, board focused | Task with rail | Board | Board |
| Task with rail | Full screen | Split | Split |
| Full screen | No change | Task with rail | Return 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 | ← / h | Esc |
|---|---|---|---|
| Full board | Split preview | No change | Quit at root |
| Split, index focused | Rail | Full board | Full board |
| Rail, right board focused | Narrow board keys | Return to index | Return 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.