The shell is the terminal UI. It attaches to the gateway, the local server of a running Nodecode.
Turn
A turn is one prompt and the work the model does to answer it. One turn runs per session at a time.
| Action | Result |
|---|
| Enter, no turn running | Starts a turn. |
| Enter, turn running | Steers. The running turn ends at its next round boundary. Your message runs next. |
| Tab, turn running | Queues the prompt behind the running turn. |
| Up, a prompt is queued | Takes the newest queued prompt back into the composer. |
| Enter on an empty composer, after Up took a prompt back | Drops that prompt. |
| Esc, turn running | Interrupts the turn. |
| Esc, the turn produced nothing | The prompt returns to the composer. Applies to a turn this shell started. |
| Ctrl+C | Clears the composer. Empty composer: interrupts the turn. No turn: quits. |
| Left, empty composer | Leaves the session running. Opens /sessions on a fresh session. |
Global keys
| Key | Action |
|---|
| Enter | Submit. |
| Tab | Queue the prompt while a turn runs. Idle: accept the highlighted suggestion. |
| Shift+Enter, Alt+Enter, Ctrl+J | Insert a newline. |
| Up, Down | Previous or next prompt. In a dropdown: previous or next suggestion. |
| Ctrl+N | Next suggestion. |
| Ctrl+P | Empty composer: insert /. Dropdown open: previous suggestion. |
| Ctrl+R | Open or close the prompt history picker. |
| Ctrl+S | Open or close the sessions picker. |
| Ctrl+O | Switch tool detail between collapsed and expanded. |
| Ctrl+F | Give an open dialog the full window height. |
| PgUp, PgDn | Scroll the transcript. |
| Home, End | Empty composer: jump to the transcript top or bottom. |
? | Empty composer: open keyboard help. |
| Ctrl+V, Ctrl+Alt+V | Paste an image from the clipboard. In a dialog: paste clipboard text. |
| Ctrl+Shift+C | Copy the selection. |
| Esc | Interrupt the turn. Idle: close the newest toast. |
| Esc, Esc within 0.5 s | Idle: open /tree. |
| Ctrl+C | Clear the composer, then interrupt the turn, then quit. |
| Ctrl+Q | Quit. |
| Ctrl+D | Empty composer: quit. With text: delete the character at the cursor. |
Composer editing
| Key | Action |
|---|
| Ctrl+Left, Alt+Left, Alt+B | Back one word. |
| Ctrl+Right, Alt+Right, Alt+F | Forward one word. |
| Ctrl+A, Home | Line start. |
| Ctrl+E, End | Line end. |
| Ctrl+Home, Ctrl+End | Start or end of the text. |
| Ctrl+B, Ctrl+F | Back or forward one character. |
| Up, Down | One visual row up or down. |
| Ctrl+W, Ctrl+Backspace, Alt+Backspace | Delete the previous word. |
| Alt+D, Ctrl+Delete, Alt+Delete | Delete the next word. |
| Ctrl+D, Delete | Delete the character at the cursor. |
| Ctrl+K | Delete to line end. |
| Ctrl+U | Delete to line start. |
| Ctrl+T | Swap two characters. |
| Alt+C, Alt+L, Alt+U | Capitalize, lowercase or uppercase a word. |
| Paste | Shown as |
|---|
| Text over 10 lines or 1000 characters | [Paste #N]. The full text is sent. |
| Image | [Image #N] |
Dialog keys
| Key | Action |
|---|
| Up, Down, Ctrl+P, Ctrl+N | Move the selection. |
| PgUp, PgDn, Home, End | Page the list or jump to an end. |
| Enter | Select. |
| Esc | Clear the search. Empty search: close. |
| Typing | Filter the list. |
| Ctrl+U | Clear the search. |
| Ctrl+W, Ctrl+Backspace | Delete a word of the search. |
| Space | Toggle a mark. In /cells: turn the cell on or off. |
Right, i | Show detail. i works in lists without a search box. |
| Left, Right | Fold or unfold rows in /sessions and /tree. |
| Delete, Ctrl+X | Interrupt an exec in /execs. |
| F2 | Rename the highlighted session in /sessions. |
| Tab, Shift+Tab | Next or previous tab, for example in /usage. |
| Ctrl+F | Full height. |
| Ctrl+V | Paste clipboard text into the field. |
Mouse
| Gesture | Action |
|---|
| Wheel | Scroll. |
| Drag the scrollbar | Scroll. |
| Click a tool card | Expand it. |
| Click a link | Open it. |
| Click the exec band | Open the exec view. Its stop control interrupts the exec. |
| Drag over text | Select. Release copies. |
| Click the × on a toast | Close it. |
| Click a dialog row | Confirm it. |
Composer prefixes
| Prefix | Opens |
|---|
/ | The command dropdown. See Slash commands. |
@ | Workspace file completion. Hidden files and node_modules are skipped. |
$ at the start of a word | The /skills picker. Needs the skills cell. |
| Side | Shows |
|---|
| Left | The session title, then · session-id. Blank on the home screen and in setup. |
| Right | N.N%/WINDOW: context use over the model's window. ctx N when the window is unknown. |
| Right | ↑ input (cache N%): input tokens of the session. |
| Right | ↓ output (reasoning N): output tokens of the session. |
| Right | $cost, when the cost is known. |
Windows under 12 rows have no footer.
| Side | Shows |
|---|
| Left | provider model (effort) · ? help · ← sessions |
| Left, sessions running | ← N running replaces ← sessions. |
| Left, target unknown yet | setting up… |
| Left, no model configured | run /setup to add a model |
| Right | profile · folder · Gateway 127.0.0.1:PORT • state |
State is connected, connecting, reconnecting or failed. A narrow window drops the folder first, then the state.
Turn bar
The bar shows while a turn runs.
| Part | Meaning |
|---|
| Spinner | The turn is running. |
| Model label | Provider, model and effort of this turn. |
| Clock | Elapsed time. |
| Verb | The current activity, waiting, or the retry status. |
| Tally | The turn's tally. |
| Token meter | Tokens of this turn. |
ctx N% | Context use. Shown from 75%. |
| Hint | esc interrupts · type to steer · ctrl+o details |
A failed or interrupted turn leaves a resting bar with elapsed time and outcome.
keybinds.json
Override keys in ~/.nodecode/keybinds.json. The file is one JSON object: action name to chord.
Example: {"toggle_tool_expand": "ctrl+t", "help": "none"}.
| Rule | Detail |
|---|
| Chord | Modifiers ctrl (or mod), alt, shift and one key, joined by +. |
| Key names | enter, tab, esc, backspace, delete, up, down, left, right, space, pgup, pgdn, home, end, f1 to f12, or one character. |
| Override | One chord replaces every default chord of that action. |
"none" | Unbinds the action. |
| Malformed chord | The defaults stay. |
| Unreadable file | Ignored. |
| Action name | Default |
|---|
quit | ctrl+q, ctrl+d |
submit | enter |
submit_turn_queue | tab |
insert_newline | shift+enter, alt+enter, ctrl+j |
accept_suggestion | tab |
history_previous | up |
history_next | down |
history_dialog | ctrl+r |
sessions_dialog | ctrl+s |
rename | f2 |
toggle_tool_expand | ctrl+o |
toggle_dialog_fullscreen | ctrl+f |
page_up | pgup |
page_down | pgdn |
scroll_home | home |
scroll_end | end |
help | ? |
open_command_palette | ctrl+p |
paste_image | ctrl+v, ctrl+alt+v |
copy_selection | ctrl+shift+c |
The composer editing keys and Esc are fixed.