Skip to main content

The composer

PreviewAvailable on: WindowsShips in the preview channel only. Not a stable release.

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

TUI interaction cheat sheetFour prefixes decide what your input addresses. Slash opens commands, at-sign mentions files agents and entities, hash references tasks and artifacts, and exclamation runs a shell command directly without a model turn. Beyond the prefixes: submitting sends a turn, further input while a turn runs is queued rather than interleaved, slash-stop cancels the in-flight turn, slash-detach releases your terminal while leaving the session running, and slash-desktop hands off to the desktop client on the same daemon.FOUR PREFIXES/ commands80 built-ins@ mentionsfiles · agents · entities# worktasks · artifacts! shellyou, not the agentTURN CONTROLSubmitruns a turnQueuenot interleaved/stopcancels the turn/detachkeeps it running/desktopsame daemon/stop and /detach are near-opposites: stop ends the turn, detach frees your terminal and leaves it working.
Learn the four prefixes and the five turn-control commands, and the rest of the surface follows.

/ — commands

Opens the command list. 80 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

ActionEffect
SubmitSends the turn
QueueAdditional input while a turn runs is queued behind it
/stopCancels the in-flight turn
/clearClears 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 Harmony 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.