ncode

CLI docs Keyboard reference

ncode CLI Using ncode

Keyboard reference

The session is keyboard-first and built around the composer. A few rules explain most of the table below:

  • Letters always type. In the composer a letter is text, never a command. Commands start with /. Single-letter keys act where no text is being typed, such as select mode, pickers and dialogs, or on an approval card while your draft is empty.
  • Esc stops or closes. It stops the streaming turn, or closes the top layer; it never moves the focus.
  • Ctrl+C never surprises you. It closes a layer, else clears the draft (Ctrl+Z restores it), else stops the turn. Only two presses with nothing left to cancel, within 1.5 seconds, quit.
  • Help is on screen. F1 (or ? outside a text field) shows the keys of the place you are in.

Terminal notes#

  • Nothing essential needs Alt, because Alt is unreliable in some macOS terminals (Ghostty in particular). Alt+Enter (queue), for example, is also Tab while a turn runs.
  • Ctrl+K is never bound, because window managers use it.
  • Ctrl+Shift+Z (redo) needs a terminal that reports Ctrl with Shift.
  • Any action can be rebound in Settings → Keys & input, or listed from a shell with ncode config keys.

Vim keys#

Set NCODE_KEYMAP=vim before starting, pick Vim mode in the Ctrl+P palette, or set Keymap in Settings → Keys & input. The composer then has vim's NORMAL and VISUAL modes; their keys are the two "vim" contexts below.

Every key#

Keys are read against one context at a time, chosen from where the focus is and which layer is on top. ? (or F1 inside a text field) shows the same list for the current context on screen. Vim's NORMAL and VISUAL modes exist only with the vim keymap on (NCODE_KEYMAP=vim, or "Vim mode" in the command palette; the older SWARM_KEYMAP=vim still works).

Mouse: the wheel scrolls the pane under the pointer (the transcript, the side panel, the agent overlay, the pager), three lines a notch. While wheel reports are on, Shift-drag (Option-drag in Terminal.app and iTerm2) selects text; /mouse off gives the terminal its own selection back.

Composer#

KeysDoes
PgDnScroll one page down
PgUpScroll one page up
Ctrl-DOn an empty draft, scroll the transcript half a page down

Focus#

KeysDoes
Ctrl-TSelect mode: j/k move, Enter open, y copy, Esc back to typing

Runs#

KeysDoes
Ctrl-F / Ctrl-SpaceHint mode: a letter opens an agent, a digit a run (not forward-char: Right moves the caret)
Alt-1Switch to the first run tab as drawn
Alt-2Switch to the second run tab as drawn
Alt-3Switch to the third run tab as drawn
Alt-4Switch to the fourth run tab as drawn

Act#

KeysDoes
EnterSend the draft (in every vim mode); while loading, it sends once ready
Alt-EnterQueue the draft instead of sending it
Ctrl-SSend a message that names a workflow as a plain message, not as /create-workflow
Ctrl-NOpen the next approval or question waiting on you

Layers#

KeysDoes
Ctrl-PCommand palette; pressed again it keeps the palette and its query
Ctrl-GRuns dashboard; the same chord closes it
Ctrl-RRun palette; the same chord closes it
Ctrl-B / Alt-ISide panel: full, compact, hidden (strip or off under 120 columns)
Alt-H / Alt-Shift-H / Ctrl-Alt-H / Ctrl-Alt-Shift-HNarrow the inspector dock (add Ctrl for a bigger step)
Alt-L / Alt-Shift-L / Ctrl-Alt-L / Ctrl-Alt-Shift-LWiden the inspector dock (add Ctrl for a bigger step)
Alt-0 / Alt-Shift-0 / Ctrl-Alt-0 / Ctrl-Alt-Shift-0Reset the inspector dock to its default width
F2Settings: every setting, provider, search engine, MCP server and key (also /settings)

Edit#

KeysDoes
TabComplete a slash command; while a turn runs, queue the draft behind it
Ctrl-O / Ctrl-J / Shift-EnterInsert a line break without sending (Ctrl-O or Ctrl-J)
Ctrl-XEdit the draft in $VISUAL or $EDITOR; saving and quitting brings it back
↑Up a line; on an empty draft, the previous prompt; up the slash list
↓Down a line; back towards the draft in prompt history; down the slash list
Ctrl-AMove to the start of the line
Ctrl-EMove to the end of the line
Ctrl-WDelete the word before the cursor
Ctrl-UDelete back to the start of the line; on an empty draft, scroll up
Ctrl-ZUndo the last edit
Ctrl-Shift-ZRedo (needs a terminal that reports Ctrl-Shift)
Ctrl-↑Give the composer one more row
Ctrl-↓Take one row back from the composer

Session#

KeysDoes
F1The keyboard help sheet; the same key closes it
Ctrl-CClear the draft, else stop the turn; twice with nothing to stop quits
EscStop the turn that is streaming; the draft stays

Composer, vim NORMAL#

Vim#

KeysDoes
hLeft one character
jDown one line
kUp one line
lRight one character
wForward to the start of the next word
bBack to the start of the previous word
eForward to the end of the word
0Start of the line; after a count, one more digit
^First non-blank character of the line
$End of the line
GEnd of the draft
gg g: start of the draft
1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9Repeat the next motion or operator that many times
dDelete with a motion; d d deletes the line
cDelete with a motion, then INSERT; c c the line
yCopy with a motion; y y copies the line
xDelete the character under the caret
XDelete the character before the caret
DDelete to the end of the line
CDelete to the end of the line, then INSERT
YCopy the line
sDelete the character under the caret, then INSERT
SClear the line, then INSERT
pPut the last deleted or yanked text after the caret
PPut the last deleted or yanked text before the caret
uUndo the last edit
Ctrl-RRedo (Ctrl-R is the run palette outside NORMAL)
iINSERT at the caret
aINSERT after the caret
IINSERT at the first non-blank of the line
AINSERT at the end of the line
oNew line below, then INSERT
ONew line above, then INSERT
vVISUAL: motions select, then d, y or c act on it
VVISUAL with the whole line selected
KeysDoes
PgDnScroll one page down
PgUpScroll one page up

Focus#

KeysDoes
TabMove focus on; from select mode, back into the composer
Ctrl-TSelect mode: j/k move, Enter open, y copy, Esc back to typing

Runs#

KeysDoes
Ctrl-F / Ctrl-SpaceHint mode: a letter opens an agent, a digit a run (not forward-char: Right moves the caret)
Alt-1Switch to the first run tab as drawn
Alt-2Switch to the second run tab as drawn
Alt-3Switch to the third run tab as drawn
Alt-4Switch to the fourth run tab as drawn
]Next inspector tab while the inspector is visible
[Previous inspector tab while the inspector is visible

Act#

KeysDoes
EnterSend the draft (in every vim mode); while loading, it sends once ready
Alt-EnterQueue the draft instead of sending it
Ctrl-SSend a message that names a workflow as a plain message, not as /create-workflow
Ctrl-NOpen the next approval or question waiting on you

Layers#

KeysDoes
Ctrl-PCommand palette; pressed again it keeps the palette and its query
Ctrl-GRuns dashboard; the same chord closes it
Ctrl-B / Alt-ISide panel: full, compact, hidden (strip or off under 120 columns)
Alt-H / Alt-Shift-H / Ctrl-Alt-H / Ctrl-Alt-Shift-HNarrow the inspector dock (add Ctrl for a bigger step)
Alt-L / Alt-Shift-L / Ctrl-Alt-L / Ctrl-Alt-Shift-LWiden the inspector dock (add Ctrl for a bigger step)
Alt-0 / Alt-Shift-0 / Ctrl-Alt-0 / Ctrl-Alt-Shift-0Reset the inspector dock to its default width
F2Settings: every setting, provider, search engine, MCP server and key (also /settings)

Edit#

KeysDoes
Ctrl-XEdit the draft in $VISUAL or $EDITOR; saving and quitting brings it back

Session#

KeysDoes
? / F1The keyboard help sheet; the same key closes it
Ctrl-CClear the draft, else stop the turn; twice with nothing to stop quits
EscClose the top layer, end a vim mode, or leave select mode

Composer, vim VISUAL#

Vim#

KeysDoes
hLeft one character
jDown one line
kUp one line
lRight one character
wForward to the start of the next word
bBack to the start of the previous word
eForward to the end of the word
0Start of the line; after a count, one more digit
^First non-blank character of the line
$End of the line
GEnd of the draft
gg g: start of the draft
1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9Repeat the next motion or operator that many times
d / xDelete the selection
yCopy the selection
cDelete the selection, then INSERT
KeysDoes
PgDnScroll one page down
PgUpScroll one page up

Focus#

KeysDoes
TabMove focus on; from select mode, back into the composer
Ctrl-TSelect mode: j/k move, Enter open, y copy, Esc back to typing

Runs#

KeysDoes
Ctrl-F / Ctrl-SpaceHint mode: a letter opens an agent, a digit a run (not forward-char: Right moves the caret)
Alt-1Switch to the first run tab as drawn
Alt-2Switch to the second run tab as drawn
Alt-3Switch to the third run tab as drawn
Alt-4Switch to the fourth run tab as drawn
]Next inspector tab while the inspector is visible
[Previous inspector tab while the inspector is visible

Act#

KeysDoes
EnterSend the draft (in every vim mode); while loading, it sends once ready
Alt-EnterQueue the draft instead of sending it
Ctrl-SSend a message that names a workflow as a plain message, not as /create-workflow
Ctrl-NOpen the next approval or question waiting on you

Layers#

KeysDoes
Ctrl-PCommand palette; pressed again it keeps the palette and its query
Ctrl-GRuns dashboard; the same chord closes it
Ctrl-B / Alt-ISide panel: full, compact, hidden (strip or off under 120 columns)
Alt-H / Alt-Shift-H / Ctrl-Alt-H / Ctrl-Alt-Shift-HNarrow the inspector dock (add Ctrl for a bigger step)
Alt-L / Alt-Shift-L / Ctrl-Alt-L / Ctrl-Alt-Shift-LWiden the inspector dock (add Ctrl for a bigger step)
Alt-0 / Alt-Shift-0 / Ctrl-Alt-0 / Ctrl-Alt-Shift-0Reset the inspector dock to its default width

Session#

KeysDoes
? / F1The keyboard help sheet; the same key closes it
Ctrl-CClear the draft, else stop the turn; twice with nothing to stop quits
EscClose the top layer, end a vim mode, or leave select mode

Transcript (main)#

KeysDoes
Alt-← / BackspaceGo back to where you came from
gGo-to prefix: g top, G bottom, t / T run tabs
j / ↓Move the selection down
k / ↑Move the selection up
HomeSelect the first item (also g g)
G / EndSelect the last item and follow the stream
PgDnScroll one page down
PgUpScroll one page up
Ctrl-DScroll half a page down
Ctrl-UScroll half a page up
Ctrl-EScroll one line down, keeping the selection
Ctrl-YScroll one line up, keeping the selection
h / ←Collapse the selected item
l / →Expand the selected item
SpaceExpand or collapse the selected item

Focus#

KeysDoes
TabMove focus on; from select mode, back into the composer
Shift-TabMove focus back
Ctrl-TSelect mode: j/k move, Enter open, y copy, Esc back to typing
iFocus the composer (INSERT in vim)

Runs#

KeysDoes
Ctrl-F / Ctrl-SpaceHint mode: a letter opens an agent, a digit a run (not forward-char: Right moves the caret)
Alt-1Switch to the first run tab as drawn
Alt-2Switch to the second run tab as drawn
Alt-3Switch to the third run tab as drawn
Alt-4Switch to the fourth run tab as drawn
]Next inspector tab while the inspector is visible
[Previous inspector tab while the inspector is visible
tOpen the run inspector over this run

Act#

KeysDoes
xStop the current run (asks to confirm)
pPause or continue the current run
mMark the current run as seen
aOpen the action menu for what is selected
yCopy the selected item's text to the clipboard
oOpen the full text of the selected item
EnterActivate what is focused; on an approval card that cuts its command, show all of it
Alt-EnterQueue the draft instead of sending it
nOpen the next approval or question waiting on you, across every run
NOpen the previous approval or question waiting on you

Layers#

KeysDoes
Ctrl-PCommand palette; pressed again it keeps the palette and its query
Ctrl-GRuns dashboard; the same chord closes it
Ctrl-RRun palette; the same chord closes it
Ctrl-B / Alt-ISide panel: full, compact, hidden (strip or off under 120 columns)
Alt-H / Alt-Shift-H / Ctrl-Alt-H / Ctrl-Alt-Shift-HNarrow the inspector dock (add Ctrl for a bigger step)
Alt-L / Alt-Shift-L / Ctrl-Alt-L / Ctrl-Alt-Shift-LWiden the inspector dock (add Ctrl for a bigger step)
Alt-0 / Alt-Shift-0 / Ctrl-Alt-0 / Ctrl-Alt-Shift-0Reset the inspector dock to its default width
F2Settings: every setting, provider, search engine, MCP server and key (also /settings)

Session#

KeysDoes
? / F1The keyboard help sheet; the same key closes it
Ctrl-CClear the draft, else stop the turn; twice with nothing to stop quits
qClose the top layer; in select mode with none open, quit
EscClose the top layer, end a vim mode, or leave select mode
PHand off to the plain presenter

Inspector#

KeysDoes
Alt-← / BackspaceGo back to where you came from
gGo-to prefix: g top, G bottom, t / T run tabs
j / ↓Move the selection down
k / ↑Move the selection up
HomeSelect the first item (also g g)
G / EndSelect the last item and follow the stream
PgDnScroll one page down
PgUpScroll one page up
Ctrl-DScroll half a page down
Ctrl-UScroll half a page up
Ctrl-EScroll one line down, keeping the selection
Ctrl-YScroll one line up, keeping the selection
h / ←Collapse the selected item
l / →Expand the selected item
SpaceExpand or collapse the selected item

Focus#

KeysDoes
TabMove focus on; from select mode, back into the composer
Shift-TabMove focus back
Ctrl-TSelect mode: j/k move, Enter open, y copy, Esc back to typing
iFocus the composer (INSERT in vim)

Runs#

KeysDoes
Ctrl-F / Ctrl-SpaceHint mode: a letter opens an agent, a digit a run (not forward-char: Right moves the caret)
Alt-1Switch to the first run tab as drawn
Alt-2Switch to the second run tab as drawn
Alt-3Switch to the third run tab as drawn
Alt-4Switch to the fourth run tab as drawn
]Next inspector tab while the inspector is visible
[Previous inspector tab while the inspector is visible
tOpen the run inspector over this run

Act#

KeysDoes
xStop the current run (asks to confirm)
pPause or continue the current run
mMark the current run as seen
aOpen the action menu for what is selected
yCopy the selected item's text to the clipboard
oOpen the full text of the selected item
EnterActivate what is focused; on an approval card that cuts its command, show all of it
Alt-EnterQueue the draft instead of sending it
nOpen the next approval or question waiting on you, across every run
NOpen the previous approval or question waiting on you

Layers#

KeysDoes
Ctrl-PCommand palette; pressed again it keeps the palette and its query
Ctrl-GRuns dashboard; the same chord closes it
Ctrl-RRun palette; the same chord closes it
Ctrl-B / Alt-ISide panel: full, compact, hidden (strip or off under 120 columns)
Alt-H / Alt-Shift-H / Ctrl-Alt-H / Ctrl-Alt-Shift-HNarrow the inspector dock (add Ctrl for a bigger step)
Alt-L / Alt-Shift-L / Ctrl-Alt-L / Ctrl-Alt-Shift-LWiden the inspector dock (add Ctrl for a bigger step)
Alt-0 / Alt-Shift-0 / Ctrl-Alt-0 / Ctrl-Alt-Shift-0Reset the inspector dock to its default width
F2Settings: every setting, provider, search engine, MCP server and key (also /settings)

Session#

KeysDoes
? / F1The keyboard help sheet; the same key closes it
Ctrl-CClear the draft, else stop the turn; twice with nothing to stop quits
qClose the top layer; in select mode with none open, quit
EscClose the top layer, end a vim mode, or leave select mode
PHand off to the plain presenter

Pickers: command palette, run palette, runs dashboard, go-to#

KeysDoes
gFrom the go-to popup, jump to the first item
GFrom the go-to popup, jump to the last item
↓ / Ctrl-NNext result
↑Previous result
PgDn / Ctrl-DA screenful further down the list
PgUp / Ctrl-UA screenful further up the list
HomeThe first row of the list
EndThe last row of the list

Focus#

KeysDoes
TabMove focus on; from select mode, back into the composer
Shift-TabMove focus back

Runs#

KeysDoes
tFrom the go-to popup, the next run tab
TFrom the go-to popup, the previous run tab
Alt-1Switch to the first run tab as drawn
Alt-2Switch to the second run tab as drawn
Alt-3Switch to the third run tab as drawn
Alt-4Switch to the fourth run tab as drawn

Act#

KeysDoes
EnterActivate what is focused; on an approval card that cuts its command, show all of it
Alt-EnterQueue the draft instead of sending it

Layers#

KeysDoes
Ctrl-PCommand palette; pressed again it keeps the palette and its query
Ctrl-GRuns dashboard; the same chord closes it
Ctrl-RRun palette; the same chord closes it
Ctrl-B / Alt-ISide panel: full, compact, hidden (strip or off under 120 columns)
Alt-H / Alt-Shift-H / Ctrl-Alt-H / Ctrl-Alt-Shift-HNarrow the inspector dock (add Ctrl for a bigger step)
Alt-L / Alt-Shift-L / Ctrl-Alt-L / Ctrl-Alt-Shift-LWiden the inspector dock (add Ctrl for a bigger step)
Alt-0 / Alt-Shift-0 / Ctrl-Alt-0 / Ctrl-Alt-Shift-0Reset the inspector dock to its default width

Session#

KeysDoes
F1The keyboard help sheet; the same key closes it
Ctrl-CClear the draft, else stop the turn; twice with nothing to stop quits
qClose the top layer; in select mode with none open, quit
EscClose the top layer, end a vim mode, or leave select mode

Text fields inside dialogs#

Focus#

KeysDoes
TabMove focus on; from select mode, back into the composer
Shift-TabMove focus back

Runs#

KeysDoes
Alt-1Switch to the first run tab as drawn
Alt-2Switch to the second run tab as drawn
Alt-3Switch to the third run tab as drawn
Alt-4Switch to the fourth run tab as drawn

Act#

KeysDoes
EnterActivate what is focused; on an approval card that cuts its command, show all of it
Alt-EnterQueue the draft instead of sending it

Layers#

KeysDoes
Ctrl-PCommand palette; pressed again it keeps the palette and its query
Ctrl-GRuns dashboard; the same chord closes it
Ctrl-RRun palette; the same chord closes it
Ctrl-B / Alt-ISide panel: full, compact, hidden (strip or off under 120 columns)
Alt-H / Alt-Shift-H / Ctrl-Alt-H / Ctrl-Alt-Shift-HNarrow the inspector dock (add Ctrl for a bigger step)
Alt-L / Alt-Shift-L / Ctrl-Alt-L / Ctrl-Alt-Shift-LWiden the inspector dock (add Ctrl for a bigger step)
Alt-0 / Alt-Shift-0 / Ctrl-Alt-0 / Ctrl-Alt-Shift-0Reset the inspector dock to its default width

Edit#

KeysDoes
←Move the cursor left, or pick the previous choice
→Move the cursor right, or pick the next choice
Ctrl-O / Ctrl-J / Shift-EnterInsert a line break without sending (Ctrl-O or Ctrl-J)
Ctrl-AMove to the start of the line
Ctrl-EMove to the end of the line
Ctrl-WDelete the word before the cursor
Ctrl-UDelete back to the start of the line
Ctrl-ZUndo the last edit
Ctrl-Shift-ZRedo (needs a terminal that reports Ctrl-Shift)

Session#

KeysDoes
F1The keyboard help sheet; the same key closes it
Ctrl-CClear the draft, else stop the turn; twice with nothing to stop quits
EscClose the top layer, end a vim mode, or leave select mode

Dialogs#

KeysDoes
j / ↓Focus the next control
k / ↑Focus the previous control
→Next question, or the next control
←Previous question, or the previous control
PgDnScroll the dialog down a page
PgUpScroll the dialog up a page
Ctrl-DScroll the dialog down half a page
Ctrl-UScroll the dialog up half a page
HomeScroll the dialog to the top
G / EndScroll the dialog to the bottom

Focus#

KeysDoes
TabMove focus on; from select mode, back into the composer
Shift-TabMove focus back

Runs#

KeysDoes
Ctrl-F / Ctrl-SpaceHint mode: a letter opens an agent, a digit a run (not forward-char: Right moves the caret)
Alt-1Switch to the first run tab as drawn
Alt-2Switch to the second run tab as drawn
Alt-3Switch to the third run tab as drawn
Alt-4Switch to the fourth run tab as drawn
]Next inspector tab while the inspector is visible
[Previous inspector tab while the inspector is visible

Act#

KeysDoes
EnterActivate what is focused; on an approval card that cuts its command, show all of it
Alt-EnterQueue the draft instead of sending it
yConfirm: yes; on an approval, allow it once
YAllow it for the rest of this run
AAlways allow commands of this family in the project
dDeny the pending request; the run goes on without it
DDeny the pending request and stop the run
nConfirm: no; on an approval or question, the next one waiting
1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9Pick a numbered question option
SpaceTick or untick the focused option

Layers#

KeysDoes
Ctrl-PCommand palette; pressed again it keeps the palette and its query
Ctrl-GRuns dashboard; the same chord closes it
Ctrl-RRun palette; the same chord closes it
Ctrl-B / Alt-ISide panel: full, compact, hidden (strip or off under 120 columns)
Alt-H / Alt-Shift-H / Ctrl-Alt-H / Ctrl-Alt-Shift-HNarrow the inspector dock (add Ctrl for a bigger step)
Alt-L / Alt-Shift-L / Ctrl-Alt-L / Ctrl-Alt-Shift-LWiden the inspector dock (add Ctrl for a bigger step)
Alt-0 / Alt-Shift-0 / Ctrl-Alt-0 / Ctrl-Alt-Shift-0Reset the inspector dock to its default width

Session#

KeysDoes
? / F1The keyboard help sheet; the same key closes it
Ctrl-CClear the draft, else stop the turn; twice with nothing to stop quits
qClose the top layer; in select mode with none open, quit
EscClose the top layer, end a vim mode, or leave select mode

Agent overlay#

KeysDoes
]The next agent in panel order, wrapping (types while the composer has text)
[The previous agent in panel order, wrapping
↓Next group of the activity
↑Previous group of the activity
PgDnScroll the activity a page down
PgUpScroll the activity a page up

Focus#

KeysDoes
TabFocus the band, the activity, the composer (and the pages under 120 columns)
Shift-TabMove the overlay's focus back

Runs#

KeysDoes
Ctrl-F / Ctrl-SpaceHint mode: a letter opens an agent, a digit a run (not forward-char: Right moves the caret)
Alt-1Switch to the first run tab as drawn
Alt-2Switch to the second run tab as drawn
Alt-3Switch to the third run tab as drawn
Alt-4Switch to the fourth run tab as drawn

Act#

KeysDoes
oShow every raw operation instead of the grouped activity, and back
xStop the agent the overlay shows (asks to confirm); only while the composer is empty
y / a / Y / A / d / D / ny/a once, Y this run, A always the family, d deny, D deny + stop, n next; only while the composer is empty
EnterIn the composer, steer only this agent; on a group, expand it; on the band, the card
Alt-EnterQueue the draft instead of sending it
Ctrl-NOpen the next approval or question waiting on you

Layers#

KeysDoes
Ctrl-PCommand palette; pressed again it keeps the palette and its query
Ctrl-GRuns dashboard; the same chord closes it
Ctrl-B / Alt-ISide panel: full, compact, hidden (strip or off under 120 columns)
Alt-H / Alt-Shift-H / Ctrl-Alt-H / Ctrl-Alt-Shift-HNarrow the inspector dock (add Ctrl for a bigger step)
Alt-L / Alt-Shift-L / Ctrl-Alt-L / Ctrl-Alt-Shift-LWiden the inspector dock (add Ctrl for a bigger step)
Alt-0 / Alt-Shift-0 / Ctrl-Alt-0 / Ctrl-Alt-Shift-0Reset the inspector dock to its default width

Edit#

KeysDoes
Ctrl-O / Ctrl-J / Shift-EnterInsert a line break without sending (Ctrl-O or Ctrl-J)
Ctrl-XEdit the draft in $VISUAL or $EDITOR; saving and quitting brings it back
Ctrl-AMove to the start of the line
Ctrl-EMove to the end of the line
Ctrl-WDelete the word before the cursor
Ctrl-ZUndo the last edit
Ctrl-Shift-ZRedo (needs a terminal that reports Ctrl-Shift)

Session#

KeysDoes
F1The keyboard help sheet; the same key closes it
EscBack to the chat, at the same scroll and with the same draft
Ctrl-CClear the draft, else stop the turn; twice with nothing to stop quits

Hint mode (Ctrl-F)#

Runs#

KeysDoes
Ctrl-F / Ctrl-SpacePressed again: the next request waiting on you (as Ctrl-N)
s / f / g / h / j / k / l / w / e / r / t / u / i / o / pOpen the agent with this badge in the overlay (two letters past 15 agents)
1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9Show the run with this number in the chat
0The runs dashboard (as Ctrl-G)
Alt-1Switch to the first run tab as drawn
Alt-2Switch to the second run tab as drawn
Alt-3Switch to the third run tab as drawn
Alt-4Switch to the fourth run tab as drawn
]Next inspector tab while the inspector is visible
[Previous inspector tab while the inspector is visible

Act#

KeysDoes
Alt-EnterQueue the draft instead of sending it

Layers#

KeysDoes
Ctrl-PCommand palette; pressed again it keeps the palette and its query
Ctrl-GRuns dashboard; the same chord closes it
Ctrl-B / Alt-ISide panel: full, compact, hidden (strip or off under 120 columns)
Alt-H / Alt-Shift-H / Ctrl-Alt-H / Ctrl-Alt-Shift-HNarrow the inspector dock (add Ctrl for a bigger step)
Alt-L / Alt-Shift-L / Ctrl-Alt-L / Ctrl-Alt-Shift-LWiden the inspector dock (add Ctrl for a bigger step)
Alt-0 / Alt-Shift-0 / Ctrl-Alt-0 / Ctrl-Alt-Shift-0Reset the inspector dock to its default width

Session#

KeysDoes
? / F1The keyboard help sheet; the same key closes it
EscLeave hint mode; hint keys never answer a request
BackspaceTake back the first letter of a two-letter badge
Ctrl-CClear the draft, else stop the turn; twice with nothing to stop quits

Settings#

F2 or /settings (also /config, /prefs) opens Settings over the shell; /settings <words> opens it at the matching section or setting. Esc goes back one level and closes Settings at a section page; q closes it from anywhere. The letters below act on the focused row, and the footer lists only the letters that row answers to, in its own words (t test the connection, R restart now). With the vim keymap j, k, g g and G also move. Ctrl-C clears a text, then cancels; on a page it closes Settings, and a second Ctrl-C quits as in the shell.

Every key except Esc, Enter, the arrows, Ctrl-C, ?/F1 and Ctrl-S can be changed on Settings › Keys & input (stored in cli.json's keys). If a change leaves you without a way back, run ncode config reset terminal.keys in a shell.

Settings: browsing the rail and the pages#

Settings#

KeysDoes
↑The row above (the result above, the option above)
↓The row below (the result below, the option below)
PgUpOne page up; in a number editor one big step up
PgDnOne page down; in a number editor one big step down
HomeThe first row; in a text editor the start of the line
EndThe last row; in a text editor the end of the line
←Back to the rail or step down (an enum or a number on its row; in text the caret left)
→Open the section or step up (an enum or a number on its row; in text the caret right)
Shift-←A number one big step down (Shift-Left)
Shift-→A number one big step up (Shift-Right)
[The section above on the rail
]The section below on the rail
Tab / Shift-TabTab and Shift-Tab walk the rail, the page and the detail (the tabs of the cleanup wizard)
Ctrl-FLetter badges on the rail; the badge's letter opens that section
Esc / q / F2Esc goes back one level and closes Settings at a section page; q and F2 close Settings
EnterOpen, edit or run the focused row (choose the option, press the focused button)
SpaceFlip a toggle, a switch or a checklist item
/Search every setting; in a list of more than 20 rows, filter the list
:The command line: :set key value, :reset key, :go section
? / F1Every key of this page; the same key closes it
iThe detail of the focused row (a page of its own on a small terminal)
Ctrl-RReload this page from the saved settings and cli.json
Ctrl-NClose Settings and go to the run that waits for you
Ctrl-CClear the text, then cancel; on a page close Settings (twice quits, as in the shell)
Ctrl-SCreate the record being drafted; commit a multi-line text
Ctrl-XEdit the text or the file in your editor (terminal.editor, VISUAL, EDITOR)
u / Ctrl-ZUndo the last change made here (not a key: those are never kept)
U / Ctrl-YRedo what undo took back
rReset to the default (revert a staged field)
RRestart an MCP server now; reload the project file
aAdd a record or a list item
+Key bindings: capture an additional key (4 at most)
x / DelDelete the focused item (asks when it cannot be undone)
DDelete the record this page shows (asks)
XRemove every item of a list; unbind every key of a binding (asks)
K / Shift-↑Move the focused item up an ordered list
J / Shift-↓Move the focused item down an ordered list
tTest the connection, the key or the command
fFetch the provider's models
oAn MCP server's output; a file's or a path's folder
cCancel the task running on the focused row
yCopy the setting's key or the path (never a secret)
nLibrary: a new command, skill, agent definition or workflow file
CMemory: clear the file (asks)
eEdit the file in your editor (as Ctrl-X)
AMCP tools: every tool on; storage sessions: pick every one shown
NMCP tools: every tool off
sThe row's second action: treat as secret, sort, save it anyway
gA search result's section (vim: g g is the first row)

Settings: the search row and the : command line#

Settings#

KeysDoes
↑The row above (the result above, the option above)
↓The row below (the result below, the option below)
PgUpOne page up; in a number editor one big step up
PgDnOne page down; in a number editor one big step down
HomeThe first row; in a text editor the start of the line
EndThe last row; in a text editor the end of the line
←Back to the rail or step down (an enum or a number on its row; in text the caret left)
→Open the section or step up (an enum or a number on its row; in text the caret right)
EnterOpen, edit or run the focused row (choose the option, press the focused button)
F1Every key of this page; the same key closes it
Ctrl-NClose Settings and go to the run that waits for you
Ctrl-CClear the text, then cancel; on a page close Settings (twice quits, as in the shell)
EscCancel the editor (the old value stays); clear the search, then leave; close once
TabComplete a key, a path, a model, an env name or an @filter
Ctrl-AThe caret to the start of the line
Ctrl-EThe caret to the end of the line
Ctrl-WDelete the word before the caret
Ctrl-UDelete everything before the caret
BackspaceDelete the character before the caret
DelDelete the character after the caret

Settings: a value being edited#

Settings#

KeysDoes
PgUpOne page up; in a number editor one big step up
PgDnOne page down; in a number editor one big step down
HomeThe first row; in a text editor the start of the line
EndThe last row; in a text editor the end of the line
←Back to the rail or step down (an enum or a number on its row; in text the caret left)
→Open the section or step up (an enum or a number on its row; in text the caret right)
Shift-←A number one big step down (Shift-Left)
Shift-→A number one big step up (Shift-Right)
F1Every key of this page; the same key closes it
Ctrl-CClear the text, then cancel; on a page close Settings (twice quits, as in the shell)
Ctrl-SCreate the record being drafted; commit a multi-line text
Ctrl-XEdit the text or the file in your editor (terminal.editor, VISUAL, EDITOR)
EscCancel the editor (the old value stays); clear the search, then leave; close once
EnterSave the value (a new line in a multi-line text: Ctrl-S saves)
TabComplete a key, a path, a model, an env name or an @filter
Ctrl-AThe caret to the start of the line
Ctrl-EThe caret to the end of the line
Ctrl-WDelete the word before the caret
Ctrl-UDelete everything before the caret
BackspaceDelete the character before the caret
DelDelete the character after the caret

Settings: pasting a key#

Settings#

KeysDoes
F1Every key of this page; the same key closes it
Ctrl-CClear the text, then cancel; on a page close Settings (twice quits, as in the shell)
EscCancel the editor (the old value stays); clear the search, then leave; close once
EnterCheck the pasted key and save it
Ctrl-UDrop what was pasted
Ctrl-TType the key instead of pasting it (never shown)

Settings: capturing a key (Key bindings)#

Settings#

KeysDoes
Ctrl-CClear the text, then cancel; on a page close Settings (twice quits, as in the shell)

Settings: a picker#

Settings#

KeysDoes
↑The row above (the result above, the option above)
↓The row below (the result below, the option below)
PgUpOne page up; in a number editor one big step up
PgDnOne page down; in a number editor one big step down
HomeThe first row; in a text editor the start of the line
EndThe last row; in a text editor the end of the line
EnterOpen, edit or run the focused row (choose the option, press the focused button)
F1Every key of this page; the same key closes it
Ctrl-CClear the text, then cancel; on a page close Settings (twice quits, as in the shell)
EscCancel the editor (the old value stays); clear the search, then leave; close once
Ctrl-WDelete the word before the caret
Ctrl-UDelete everything before the caret
BackspaceDelete the character before the caret
DelDelete the character after the caret

Settings: a confirmation, the key help or the leave question#

Settings#

KeysDoes
↑The row above (the result above, the option above)
↓The row below (the result below, the option below)
←Back to the rail or step down (an enum or a number on its row; in text the caret left)
→Open the section or step up (an enum or a number on its row; in text the caret right)
EnterOpen, edit or run the focused row (choose the option, press the focused button)
Ctrl-CClear the text, then cancel; on a page close Settings (twice quits, as in the shell)
EscCancel the editor (the old value stays); clear the search, then leave; close once
BackspaceDelete the character before the caret
TabThe next button (focus stays inside the popover)
Shift-TabThe previous button