The composer
The four-character interaction language: slash commands, mentions, work references, and direct shell.
The composer is where you type. Four prefixes decide what your input addresses, and learning them is most of learning the TUI.
At a glance
/ — commands
Opens the command list. 49 commands are registered, grouped by purpose, with argument autocomplete.
/tasks
/mode safe
/provider
Commands are the only way to change mode, switch route, or open an overlay without leaving the keyboard. The full list is at TUI slash commands.
@ — files, agents, and entities
Mentions bring something into the conversation by reference rather than by pasting it.
Explain what @src/config.ts does and why it fails on an empty file.
Mentioning a file is better than pasting its contents: the agent resolves the current version, and your transcript stays readable.
@ also addresses other agents and workspace entities, which is how you direct
a message at a specific fleet member rather than broadcasting.
# — tasks and artifacts
References durable work.
Summarize what changed in #task-id and write it as an artifact.
Because tasks and artifacts live in the daemon, a # reference survives the
session that created it. This is the difference between "the thing we discussed
earlier" and a reference that still resolves tomorrow.
! — your shell, directly
Runs a command without involving a model.
!git status
!npm test
IMPORTANT
! is you running a command, not the agent running one. It does not go
through approvals, because you are the one asking. Use it to check state
cheaply instead of spending a model turn on what does git status say.
Submitting, queueing, and stopping
| Action | Effect |
|---|---|
| Submit | Sends the turn |
| Queue | Additional input while a turn runs is queued behind it |
/stop | Cancels the in-flight turn |
/clear | Clears the composer |
NOTE
Queued is not started. If you submit three messages while a turn runs, they
queue — they do not interleave. See
delivery lifecycle for how NALA reports the
difference, including the needs_enter state where text is staged but never
submitted.
Context is finite
Long sessions fill the context window. Two commands manage it:
/context
/compact
/context shows what is currently loaded. /compact summarizes and compacts
the conversation to reclaim budget.
TIP
Compact before you hit the wall, not after. Compacting at a natural boundary — a finished task — preserves far more useful state than compacting mid-debug.
Voice input
/voice and /speak route dictation and speech through the daemon. Models
never load in the TUI process, so dictation does not slow your terminal down.
/bark submits a prompt and prepares a short spoken summary for when the run
finishes; press Enter to play it.