Documentation

TUI Guide

Single bubbletea textarea (internal/runtime/tui); slash commands open transient popups that close cleanly back to the prompt.

Shortcuts

Key Action
Ctrl+S Submit current textarea content (Enter inserts a newline; Alt+Enter also inserts newline)
/ Begin slash-command filter (popup picker — Up / Down to navigate, Tab / Enter to autocomplete into the textarea, Esc to dismiss)
Up / Down (on empty / single-line input) Walk input history (per-session input_history file)
Esc Cancel running exec (if running) or dismiss the active popup
Ctrl+C Exit TUI (daemon keeps running)

The TUI auto-tails the active session's action.log (foreign-process writes prefixed with in warn-purple). Single-session view only — multi-session dashboard archived.

Auto mode

Press Shift+Tab to toggle auto mode. The current mode is shown at the bottom-left of the TUI:

Auto mode is session-local and resets when the TUI restarts. It can also be set at launch via agen --allow-all.

Slash commands

Command Description
/switch Pick a session (current pre-selected; (new session) sentinel at the bottom).
/new [name] Create a session; optional name pins it to the registry (conflict-checked).
/bot [name body...] Edit bot persona — two-popup form (name then multiline body), or inline parts>=3 for fast path.
/model [global|session|dispatch|summary|reasoning] global — add / remove from registry, session — pick from cfg.Models, dispatch — set dispatcher model, summary — set summary model (or (use dispatcher) to fall back), reasoning — set reasoning depth (low / medium / high).
/mcp [add|remove] Chained popup form for MCP server config; restart daemon to apply.
/feature [voice|image2|kuradb] voice — enable / disable voice message handling, image2 — enable / disable gpt-image-2 generation, kuradb — toggle KuraDB RAG.
/discord [enable|disable] Toggle Discord bot connection (in-TUI popup chain: token entry, verification, keychain write, daemon fsnotify reload).
/telegram [enable|disable] Toggle Telegram bot connection (same in-TUI popup chain as /discord; first chat to message the bot must pass an in-chat 6-digit OTP, then chat ID is appended to ~/.config/agenvoy/.telegram).
/cron [add|remove|edit] Recurring schedules. add — multiline requirement, dispatches /scheduler-skill-creator <requirement> (skill asks for missing when/what via ask_user). remove — list, confirm, runtime.RemoveCron + trashes skill dir. edit — list, requirement, agent picks patch_schedule(target=cron) or rewrites SKILL body. Picker is session-scoped — only shows entries with session_id == currentSessionID.
/task [add|remove|edit] One-shot tasks (mirrors /cron; uses add_schedule / patch_schedule / remove_schedule with target=task). Session-scoped picker.
/sched-<name> Surfaced in the slash picker after regular skills (warn-purple label) — picks an existing scheduler skill and dispatches its body with an explicit "execute, do NOT activate scheduler-skill-creator" preamble. Filtered by session — only skills bound to the current session's task/cron entries appear.
/dangerous [remove-session|allow-skill|allow-cmd|allow-report] remove-session — delete current session (double-confirm), allow-skill — mark skill as always-allow (bypasses confirm gate), allow-cmd — append binary to white_list, allow-report — enable / disable error report upload.
/history Reload visible transcript — clear screen, reprint header, render last 100 entries from session action.log.
/log Open raw action.log in $PAGER (fallback less -Rf +G, jumps to bottom). \x1F markers expanded to newlines for readability.
/cmd Run a shell command directly in the current workDir (sh -c).
/update Confirm, then agen stop && agen update via tea.ExecProcess, quit (re-attach with agen to pick up the new binary).
/clear Clear terminal display only — memory untouched.
/exit, /quit Exit TUI.

[!NOTE] This document was auto-generated by Claude after reading the full source code.