Skip to main content

Terminal Interface

Run anyy with no command to open the interactive terminal interface (TUI):

anyy

It provides persistent chat, streaming tool activity, session selection, provider/model controls, clarifications, Skills, and pending-message controls without a browser.

Startup Behavior​

On a fresh Profile, the TUI guides you into setup before chat. When the default Gateway socket is unavailable, it can start an in-process Gateway for the TUI session and stop that in-process runtime when you exit.

If you pass an explicit --socket, Anyy uses that socket and does not silently replace it with a local fallback:

anyy --socket /path/to/anyy.sock

For an always-on runtime used by Dashboard, messaging, or one-shot CLI calls, start the resident service instead:

anyy gateway start

Sending and Editing​

KeyAction
EnterSend while idle; insert a steering input while working
Alt+EnterQueue a follow-up while working; send while idle
Shift+Enter or Ctrl+JInsert a newline
A single trailing \ + EnterReplace the slash with a newline
Ctrl+A / HomeMove to start
Ctrl+E / EndMove to end
Ctrl+UDelete to start
Ctrl+KDelete to end
Ctrl+WDelete the previous word
Ctrl+C while runningAbort current Session work and keep queued inputs
Esc while runningClose a local layer first; during retry wait cancel only the wait; during streaming return queued inputs, then interrupt that turn
Alt+UpReturn all queued inputs to the editor
Ctrl+C with a draftClear the draft
Ctrl+C on an empty idle composerExit
Ctrl+DExit

Type / to open command completion. Use the arrow keys to select a command and Enter to accept or run it.

Local Commands​

These commands are handled directly by the TUI:

CommandPurpose
/helpShow TUI help
/quitExit
/newStart a new session
/statusShow current conversation status
/usageShow current provider usage and context
/skillsChoose a Skill command to insert
/effortSet session thinking or save the requested global thinking default
/treeNavigate the current conversation tree while idle

The live Gateway command catalog adds commands such as /sessions, /provider, and /model. Installed Skills can add more. Use /help and completion as the authoritative list for the running version.

Sessions​

Use /sessions to open recent conversations, or launch a known session directly:

anyy --resume SESSION_ID

Use /new when you want a clean context. Session history is stored in the selected Profile, so changing --profile or --home changes the conversations you see.

Pending Messages​

While a turn is active, Enter inserts a steering input and Alt+Enter adds a follow-up in the same session. The queue view displays any steering inputs first, then follow-ups.

Press Alt+Up to return all waiting inputs to the editor. Their text appears before your current draft with blank lines between inputs; attachments return with it. The queue is cleared only after the Gateway confirms the operation. This does not abort active work. Press Enter to send the revised draft as a new input.

When no local picker or overlay handles it, Esc during streaming returns steering inputs, then follow-ups, before your existing draft, with their attachments. After the Gateway confirms the return, it interrupts the turn corresponding to that keypress. A delayed response does not clear or interrupt a later turn. With no queued input it still requests interruption of that turn.

Ctrl+C aborts active work and waits for it to settle, keeping both pending queues and committed history. Streaming Esc is a separate return-to-editor operation; it does not change the queue-preserving Session abort API. See Sessions for queue controls and the distinction between stopping and returning inputs.

During a retry wait, Esc only cancels backoff. The editor and queued inputs stay unchanged; normal post-run handling may still consume pending inputs. This differs from streaming Esc and from whole-Session Ctrl+C/Dashboard Escape.

Compaction and branch summaries have their own retry wait and cancellation lifecycle, using the same Profile retry budget. Canceling summary work awaits model settlement without applying an incomplete summary. Retry-only Esc above concerns the agent backoff and adds no separate summary-cancel key.

Clarifications​

Clarification overlays accept an offered option or a typed response. Esc or Ctrl+C closes ordinary overlays when allowed; an active execution can still require an explicit answer or interruption.

Provider, Model, and Effort​

Use:

/provider
/model
/effort

The first two open live provider/model pickers. /effort uses a horizontal picker with the current model's supported named reasoning levels. The composer displays the effective level after clamping to the model's range. Non-reasoning models have no effort picker.

  • Enter applies the choice to this session and saves the requested global thinking preference. It preserves the Profile's saved provider/model.
  • Alt+S applies the choice only to this session.

Neither action writes a per-model preference. Feedback distinguishes the level applied to the session from a different saved global request. An Off request retains the named level for re-enabling. See thinking defaults for new/switch/resume priority.

Run /tree while idle. Up/Down chooses an entry; Enter navigates; s toggles a summary of the branch being left; Esc cancels. The current entry is marked in the list.

Selecting a user message moves before it and returns its text when the composer is empty. Handle your existing draft first if you want that text. Navigation stays in the same Session, retains earlier and sibling history, and starts no reply. Forking a separate session remains an RPC capability. See Context compaction for branch summaries and automatic context recovery.

Effort changes can increase token cost

Changing effort can affect prompt-cache reuse for the session. Use /new when cache reuse and predictable input-token cost matter.

Non-Interactive Alternatives​

Send one prompt through an already running resident Gateway:

anyy chat "Summarize today's priorities"

Use --json for machine-readable output. anyy chat does not start the resident Gateway for you.

Troubleshooting​

ProblemFix
TUI opens setupComplete model setup for the selected Profile
Explicit socket cannot connectCorrect --socket or start the Gateway that owns it
One-shot anyy chat cannot connectRun anyy gateway start first
A command is unknownType / or /help; availability depends on runtime and installed Skills
Sessions appear missingCheck --profile, --home, and /sessions
Ctrl+C exits instead of interruptingNo active turn was running and the composer was empty