TUI Guide
Single bubbletea textarea (internal/runtime/tui); slash commands open transient popups that close cleanly back to the prompt.
Shortcuts
| Key | Action |
|---|---|
Enter |
Send the current input. While a run is in flight it queues the text as a steer message instead, delivered to the running loop |
Alt+Enter |
Insert a newline |
/ |
Begin slash-command filter (popup picker — Up / Down to navigate, Tab / Enter to autocomplete into the textarea, Esc to dismiss) |
Up / Down |
Walk input history when the cursor is on the first / last line (per-session .cmd_history file) |
Esc |
Dismiss the command picker; while running, open the cancel-confirmation popup; otherwise clear a non-empty input |
Ctrl+C |
While running, cancel the task; otherwise print ctrl+c again to quit. A second Ctrl+C within 3 seconds quits the TUI |
Single-key toggles fire only when the input is empty and no run is active:
| Key | Action |
|---|---|
Shift+Tab |
Toggle auto mode ([safe] ↔ [auto]) |
Shift+F |
Toggle fast mode — the header shows [fast] while enabled |
Shift+U |
Live provider usage / balance |
Shift+W / Shift+S |
Cycle the dispatcher model backward / forward |
Shift+A / Shift+D |
Cycle the reasoning level down / up |
Shell command mode (Shift+T) was removed; ask the agent to run the command instead. The Shift+M model list was removed; use /model, which lists the registered models.
In list popups, Enter confirms the highlighted entry, d deletes it and t sets its tier where the popup offers those actions. Text-input popups use Ctrl+S to confirm, Enter for a newline, and Esc to cancel.
The TUI auto-tails the active session's action.log (foreign-process writes prefixed with ▌ in warn-purple). Single-session view only.
Modes
The current mode renders at the bottom-left of the TUI:
[safe](default) — tool calls require user confirmation before execution[auto]— all tool calls are automatically approved (allowAll = true); sandbox and validator still apply[fast]— passesprovider.ModeFastthroughgo-llm-routerso supported provider backends request a faster service tier
Auto mode is session-local and resets when the TUI restarts. Fast mode is process-local and is not persisted to config.json.
Slash commands
| Command | Description |
|---|---|
/model |
Lists registered models (Enter picks the session model, d removes one, t sets its tier S / A / B / C / pass) plus the actions add (model from a provider), dispatch, summary, image, stt, tts. Each action also works as a subcommand, e.g. /model add |
/mcp |
List MCP servers · add · per-server login (browser OAuth), reconnect, tools, per-tool permission, remove |
/sessions |
Session picker — Enter switches, d deletes. /sessions <name> switches directly |
/new |
Create a session (name conflict-checked) |
/allow-skill |
Mark a skill always-allow (skip permission), scoped global (~/.config/agenvoy/allow_skill) or project (.agenvoy/allow_skill) |
/compact |
Remove redundant exchanges from history through LLM analysis — confirmation required |
/reset |
Reset the current session — double confirmation; the summary is regenerated first, then history, task history and action.log are dropped |
/bot |
Edit / rename the current session — name, self id, description (persona) |
/rule |
List / add / edit a session-prompt rule — title + description |
/note |
List / add / edit an operator note — title + description. Renamed from /knowledge in v0.35.4 |
/channel |
Enable / disable the Telegram or Discord bot (token validated on enable). Once either is enabled, admin sets the relay for new-chat verification codes. Subcommands: telegram discord admin |
/config |
Searchable settings: Startup on login (launchd agent on macOS, systemd user unit on Linux), Reply language, Output dir |
/schedule |
Recurring (cron) and one-shot (task) entries in one list — Enter fires one now, d deletes it. Add or edit schedules by asking the agent |
/sched-<name> |
Manually dispatch an existing scheduler skill body. Filtered by session — only skills bound to the current session's task / cron entries appear |
/update |
Fetch the latest release, rebuild, and quit the TUI (re-attach with agen) |
/resume |
Reload the visible transcript — last 100 entries from action.log |
/log |
Follow the raw daemon.log through $PAGER (less +F); Ctrl-C stops following |
/usage |
Per-model token usage — current session above, global below — 24 h / 7 d / 28 d |
/pending |
List / resume interrupted tasks — error recovery and ask_user resume |
/key |
Update / rotate a keychain value, picked from the recorded key list |
/clear |
Clear the visible transcript — memory untouched |
/exit |
Exit the TUI (daemon keeps running); /quit is an alias |
There is no /switch; use /sessions. There is no /dangerous; delete a session with d in /sessions and mark skills with /allow-skill. There is no /memory; use /compact and /reset. There are no /discord, /telegram or /admin-channel; use /channel. There is no /startup; use /config. There are no /cron or /task; use /schedule.
There is no /kuradb. The setup / update / reconnect wizard was removed in v0.35.0 — KuraDB is installed on its own and registered like any other MCP server through /mcp.
There is no /voice, removed in v0.34.3. Inbound voice handling is no longer a toggle: it follows whichever speech-to-text model /model stt selects, and outbound voice replies were removed from Telegram and Discord entirely — generate_audio writes a file instead.
There is no /sudo. Elevated mode was removed in v0.32.10 in favor of per-request authorization — a restricted path or a write outside $HOME raises one prompt for that call and asks for the system password there. See the Security page.
Loaded skills appear in the same picker below the built-in commands, labeled with their source; scheduler skills (/sched-<name>) follow them.