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
| Key | Action |
|---|---|
Enter | Send while idle; insert a steering input while working |
Alt+Enter | Queue a follow-up while working; send while idle |
Shift+Enter or Ctrl+J | Insert a newline |
A single trailing \ + Enter | Replace the slash with a newline |
Ctrl+A / Home | Move to start |
Ctrl+E / End | Move to end |
Ctrl+U | Delete to start |
Ctrl+K | Delete to end |
Ctrl+W | Delete the previous word |
Ctrl+C while running | Abort current Session work and keep queued inputs |
Esc while running | Close a local layer first; during retry wait cancel only the wait; during streaming return queued inputs, then interrupt that turn |
Alt+Up | Return all queued inputs to the editor |
Ctrl+C with a draft | Clear the draft |
Ctrl+C on an empty idle composer | Exit |
Ctrl+D | Exit |
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:
| Command | Purpose |
|---|---|
/help | Show TUI help |
/quit | Exit |
/new | Start a new session |
/status | Show current conversation status |
/usage | Show current provider usage and context |
/skills | Choose a Skill command to insert |
/effort | Set session thinking or save the requested global thinking default |
/tree | Navigate 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.
Navigate a conversation tree
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.
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
| Problem | Fix |
|---|---|
| TUI opens setup | Complete model setup for the selected Profile |
| Explicit socket cannot connect | Correct --socket or start the Gateway that owns it |
One-shot anyy chat cannot connect | Run anyy gateway start first |
| A command is unknown | Type / or /help; availability depends on runtime and installed Skills |
| Sessions appear missing | Check --profile, --home, and /sessions |
Ctrl+C exits instead of interrupting | No active turn was running and the composer was empty |