On this page

Everything adf accepts, and every command and key of the terminal app, generated from the code. For task-oriented guides see the ADF CLI docs.

Command line

Usage: adf [--url <daemon-url>] [--json] <command>
       adf [tui] [--view <id>] [--agent <id>] [--loop <name>]
       adf daemon [start|status|stop|restart|logs|token]

With no command, adf opens the terminal app. Commands that talk to the daemon start a local one in the background first when none answers (not with --no-daemon / ADF_NO_AUTOSTART=1, a remote --url, or next to a running ADF Studio). <agent> is an agent id, handle or name.

Commands

CommandDescription
adf tuiThe terminal app (the default)
adf agentsList loaded agents
adf status <agent>Show runtime status
adf start <agent>Start an agent and fire startup when applicable
adf stop <agent>Stop and unload an agent
adf unload <agent>Alias for stop
adf loops <agent>List the agent’s loops: main plus its inner (side) loops, parallel threads with their own history, e.g. a memory consolidator on a timer
adf interrupt <agent> [--loop <name>]End the running turn; the loop goes idle and keeps accepting chats, timers and triggers
adf abort <agent> [--loop <name>]Hard-abort the current turn without unloading; that loop stays stopped until the agent is reloaded (prefer interrupt)
adf runtime [agent]Show daemon or agent runtime diagnostics
adf providersShow provider configuration and agent resolution
adf authShow auth and credential presence
adf auth login <chatgpt|grok>Sign in to a subscription provider [—relay|—loopback] chooses where the ChatGPT OAuth callback is served; defaults to relay when —url points at a remote daemon
adf auth logout <chatgpt|grok>Clear a subscription provider’s tokens
adf settingsShow sanitized daemon runtime settings
adf networkShow mesh and WebSocket diagnostics
adf network mesh [enable|disable]Control daemon mesh registration
adf network server [start|stop|restart]Control the mesh HTTP server
adf network tools|lan|runtimesShow mesh tools, LAN addresses, or peers
adf usage [agent]Show runtime or agent token usage
adf config <agent>Show agent config
adf files <agent>List agent files
adf file <agent> <path>Print one agent file
adf inbox <agent>List inbox messages
adf outbox <agent>List outbox messages
adf timers <agent>List timers
adf tasks <agent>List tasks and pending approvals
adf task <agent> <taskId>Show one task
adf approve <agent> <taskId>Approve a pending task
adf deny <agent> <taskId> [reason]Deny a pending task
adf asks <agent>List pending ask requests
adf answer <agent> <requestId> <answer>Answer a pending ask request
adf identities <agent>List identity metadata without secret values
adf mcp [agent]Show daemon MCP registrations or agent MCP state
adf adapters [agent]Show daemon adapter registrations or agent adapter state
adf events [agent]Follow daemon SSE events
adf chat <agent> [--loop <name>] <message>Send chat (to main, or an inner loop) and print the accepted turn id
adf identityShow the owner identity status
adf identity newCreate an owner identity; shows the 12-word seed phrase once — write it down
adf identity restoreRestore the owner identity from its seed phrase (typed at a hidden prompt; the same phrase as ADF Studio = the same owner)
adf identity unlock|lockUnlock/lock a passphrase-protected identity (machines without an OS keychain)
adf templatesList agent templates
adf new [name] [--template <id>] [--provider <id>] [--model <id>] [--dir <path>] [--start]Create an agent from a template, sealed with the owner identity (like Studio)

Daemon

CommandDescription
adf daemon [--port <n>] [--host <h>] [--settings <file>]Run the daemon in the foreground (Ctrl+C stops it; also ADF_DAEMON_PORT, ADF_DAEMON_HOST, ADF_DAEMON_SETTINGS, ADF_USER_DATA_DIR)
adf daemon start [--port <n>] [--force]Start it in the background (what adf does on its own); —force skips the ADF Studio check
adf daemon statusIs it running: pid, uptime, version, log file
adf daemon stopStop it gracefully (agents unloaded, containers stopped)
adf daemon restartStop, then start in the background
adf daemon logs [-f] [-n <lines>]Show the background daemon’s log (-f follows)
adf daemon tokenPrint this machine’s daemon access token (for clients on other machines: —token or ADF_DAEMON_TOKEN)

adf daemon --help:

Usage: adf daemon [--port <n>] [--host <h>] [--settings <file>]
       adf daemon start [--port <n>] [--force]
       adf daemon status | stop | restart [--port <n>]
       adf daemon logs [-f] [-n <lines>] [--port <n>]
       adf daemon token

Without a subcommand the daemon runs in the foreground (Ctrl+C stops it).
start runs it in the background, like adf does on its own when it needs one;
the log goes to <data dir>/logs/adf-daemon.log. stop is graceful: agents are
unloaded and compute containers stopped.

Every request but GET /health needs the daemon's access token. adf reads it
on this machine by itself (<data dir>/daemon-token, created on first start);
token prints it for a client elsewhere (--token or ADF_DAEMON_TOKEN there).
ADF_DAEMON_TOKEN overrides the file, and is required with a non-loopback
--host (plus ADF_DAEMON_ALLOWED_HOSTS for host names clients use).
Behind a reverse proxy on this host set ADF_DAEMON_BEHIND_PROXY=1: identity
secrets and stop then work only from adf on this host, against its loopback port.

Environment: ADF_DAEMON_PORT, ADF_DAEMON_HOST, ADF_DAEMON_SETTINGS,
ADF_USER_DATA_DIR, ADF_DAEMON_PIDFILE, ADF_DAEMON_TOKEN,
ADF_DAEMON_ALLOWED_HOSTS, ADF_DAEMON_BEHIND_PROXY

Options

OptionDescription
--url, -u <url>Daemon URL
--token <token>Daemon access token (default: ADF_DAEMON_TOKEN, else the local daemon’s token file)
--jsonJSON output
--no-daemonNever start the daemon automatically
--version, -vPrint the version

Terminal app options

adf [tui] [options] (adf tui --help). Any of these flags opens the terminal app.

OptionDescription
--url, -u <url>Daemon URL (default ADF_DAEMON_URL or http://127.0.0.1:7385)
--token <token>Bearer token (default: ADF_DAEMON_TOKEN, else the local daemon’s token file)
--view <id>Start view: chat | files | loops | inspect | fleet | runtime
--agent <id|handle>Preselect an agent
--loop <name>Preselect one of its loops (default main)
--theme <name>adf (dark) | adf-light | adf-contrast | adf-mono (also ADF_TUI_THEME)
--monoNo color (also NO_COLOR=1)
--asciiASCII glyphs (also ADF_TUI_ASCII=1)
--no-alt-screenRender in the main screen buffer (also turns mouse mode off)
--mouseMouse mode, the default: the wheel scrolls what is under the pointer, a click expands a tool call or thinking, drag selects and copies, right-click pastes (Shift+drag, Option+drag in iTerm2: the terminal’s own selection)
--no-mouseThe terminal’s own mouse (also ADF_TUI_MOUSE=0, /mouse off; remembered)
--no-kittyNever enable the kitty keyboard protocol (Shift+Enter; also ADF_TUI_KITTY=0)
-h, --helpShow this help

Environment

VariableUsed byEffect
ADF_DAEMON_URLCLI, terminal appDaemon URL (default http://127.0.0.1:7385); --url wins
ADF_DAEMON_TOKENCLI, terminal appDaemon access token. Clients: sent as the bearer token (--token wins). Daemon: used instead of the <data dir>/daemon-token file; required with a non-loopback --host
ADF_NO_AUTOSTARTCLI, terminal app1: never start the daemon automatically (same as --no-daemon)
ADF_DAEMON_PORTdaemonPort for adf daemon (default 7385); adf daemon <sub> also uses it when no --url / --port is given
ADF_DAEMON_HOSTdaemonBind address for adf daemon (default 127.0.0.1). Non-loopback needs ADF_DAEMON_TOKEN
ADF_DAEMON_SETTINGSdaemonSettings file path; its folder is the data dir (token, pid file, logs, identity file). Clients use it to find the local token file
ADF_USER_DATA_DIRdaemonOverrides the user data folder that holds the default settings file (shared with ADF Studio)
ADF_DAEMON_PIDFILEdaemonPid file path (default <data dir>/adf-daemon.pid, adf-daemon-<port>.pid for other ports)
ADF_DAEMON_ALLOWED_HOSTSdaemonExtra Host names a non-loopback daemon accepts (comma or space separated, name or name:port): the names remote clients or a proxy use
ADF_DAEMON_BEHIND_PROXYdaemon1: a reverse proxy on this host forwards to the daemon. Owner identity secrets and daemon stop then also need <data dir>/daemon-local-proof, which only adf on this host sends: run them on the host against its loopback port
ADF_OWNER_PASSPHRASEdaemonUnlocks a passphrase-file owner identity at daemon start (machines without an OS keychain)
ADF_OWNER_PASSPHRASE_FILEdaemonSame, read from the first line of this file
ADF_SECRET_STOREdaemonfile or keychain: where the owner phrase and provider keys are kept (default: the OS keychain when usable, else the passphrase file)
ADF_KEYCHAINdaemon0 or off: never use the OS keychain
ADF_TUI_THEMEterminal appSame as --theme
ADF_TUI_ASCIIterminal app1: same as --ascii
ADF_TUI_MOUSEterminal app0: the terminal’s own mouse, 1: mouse mode; wins over the saved /mouse choice
ADF_TUI_KITTYterminal app0: same as --no-kitty
ADF_TUI_SHIFT_ENTERterminal app1: treat Shift+Enter as working from the start (your terminal sends it through a keybinding)
ADF_TUI_FULL_HEIGHTterminal app1: Windows: also use the bottom terminal row
ADF_TUI_CLIPBOARDterminal apposc52: copy only through the terminal (OSC 52), never pbcopy / clip / wl-copy / xclip
ADF_TUI_PREFSterminal appWhere sidebar, mouse, stopped-agents filter and welcome choices are kept (default <config dir>/adf-studio/tui-prefs.json); off: session only
ADF_EDITORterminal appExternal editor, before VISUAL and EDITOR (default notepad on Windows, else nano, then vi)
VISUALterminal appExternal editor when ADF_EDITOR is not set
EDITORterminal appExternal editor when ADF_EDITOR and VISUAL are not set
NO_COLORterminal appAny value: no color (same as --mono); wins over --theme
TERMterminal appdumb: no color

Terminal app

Views

KeyViewId (--view, /view)
1Chatchat
2Filesfiles
3Loopsloops
4Inspectinspect
5Fleetfleet
6Runtimeruntime

Slash commands

Type / in the prompt; Tab completes names and arguments. Commands work from any view (some need a selected agent); the group is the view that owns it, and usually the one it opens. Unknown commands are reported, never sent to an agent.

Shell (every view)

CommandAliasesDescription
/help/?Keys, commands and what loops are
/quit/exit /qLeave the terminal app (agents keep running in the daemon)
/view <chat|files|loops|inspect|fleet|runtime>Switch the main pane
/agent <handle|id> [loop]/aSelect an agent, and optionally one of its loops (default main)
/refresh/rRe-read agents, loops and approvals from the daemon
/theme [adf|adf-light|adf-contrast|adf-mono|next]Pick a color theme (no argument opens the picker)
/url [daemon-url] [--token <token>]Show the daemon URL, or reconnect to another daemon (for a remote daemon pass —token or set ADF_DAEMON_TOKEN)
/authProvider sign-in: ChatGPT and Grok status, sign in, sign out
/login [chatgpt|grok]Sign the daemon in to ChatGPT (browser) or Grok (device code)
/logout <chatgpt|grok>Sign the daemon out of ChatGPT or Grok (asks)
/json [on|off]Toggle raw JSON in Inspect and Runtime pages
/sidebar [on|off]Show or hide the fleet sidebar (Ctrl+B); remembered across launches
/mouse [on|off]Mouse mode (on, the default: click expands, drag selects + copies, right-click pastes, the wheel scrolls under the pointer; off: the terminal’s own mouse); remembered
/terminal-setup/terminalShift+Enter for a newline in this terminal: what works now and how to set it up
/identity [create|restore|unlock|lock]Owner identity: status, create, restore from the 12 words, unlock, lock
/new [name]Create a new agent from a template (sealed under your owner identity)
/web [on|off]The daemon’s web server that serves agent websites / APIs: status, start (on), stop (off, asks)
/open-site [agent]/siteOpen an agent’s website in the browser (starts the web server if it is stopped)
/copy-site [agent]Copy an agent’s website URL
/welcomeWhat ADF is, and the getting-started checklist
/channels [add [telegram|discord|slack|email|whatsapp] | remove <channel>]The selected agent’s channels (Telegram, Discord, Slack, email, WhatsApp): state, add, remove
/provider [add [preset] | list | remove <id>]Model providers: add one with an API key (stored in the daemon’s secret store), list, remove. Subscriptions: /login
/mcp [add [catalog-name | npm:pkg | python:pkg | https://url] | remove <name> | restart <name> | logs <name>]The selected agent’s MCP servers: state, add (catalog, npm, Python, remote URL), restart, credentials, tools, logs, remove
/templates [template-id]Agent templates: list, details, new, duplicate, rename, notes, default, review, reset, delete, edit in $EDITOR
/skills [add [name | https-url | ./path] | mute|unmute|remove <name> | sources [add|remove <url>]]The selected agent’s skills: preview, mute, edit, remove; add from the catalog, a URL or a local folder
/context [loop]Context usage of the selected loop: total vs the auto-compact threshold, what fills it (prompt, files, tools, MCP, conversation), compact now

Chat view

CommandAliasesDescription
/interrupt/abortEnd the selected loop’s running turn; the loop goes idle and keeps working (Esc)
/clearClear the selected loop’s history (archived per the agent’s audit settings)
/compactSummarize the selected loop’s history now to free context (not while it is mid-turn)
/trigger <type> [json-data]Fire an ADF event into the selected loop (bypasses trigger config)
/copy [n]Copy the last (or n-th last) reply of the selected loop to the clipboard
/thinkingExpand or collapse thinking blocks in chat (t)
/approve [all|always]Approve the selected loop’s pending tool call · all: every gated call (never protection overrides) · always: always approve that tool (asks)
/reject [feedback]Reject the selected loop’s pending tool call; the agent sees the feedback

Files view

CommandAliasesDescription
/filesBrowse the selected agent’s document, mind and files
/open <path>Open a file of the agent in the viewer (fuzzy path; also document, mind)
/edit <path>Edit a file of the agent in $VISUAL/$EDITOR, then confirm the write
/doc/documentShow the agent document
/mindShow the agent’s mind (its memory; inner loops such as a consolidator tend it)
/new-file [path]Create a file in the agent (opens $EDITOR)
/rm <path>Delete a file of the agent (asks first)
/mv <from> <to>Rename or move a file of the agent

Loops view

CommandAliasesDescription
/loop [<name> | new [template | <name> <goal…>] | edit|rm|on|off <name> | send <name> <msg…> | chat <name> | schedule <name>]Loops: switch, create (templates), edit, enable/disable, delete, message or schedule an inner loop
/mainBack to the main loop
/loopsLoops manager: this agent’s loops, timers, triggers and history
/timers [all]Timers of this agent, or all agents’ upcoming timers
/timer add [--loop <name>] | edit <id> | rm <id>Create, edit or delete a timer (a timer with a loop runs that loop on a schedule)
/triggersTriggers of this agent: enable/disable, edit targets and the loop each target wakes
/history [loop]Browse a loop’s persisted history (tokens per entry, filters)

Inspect view

CommandAliasesDescription
/inspect [diag|settings|config|usage|mcp|channels|identity|logs|tables|tasks|events]Inspect the selected agent: status, settings, config, usage, MCP, channels, identities, logs, tables, its events
/model [[provider/]model | inherit]Change the selected agent › loop’s model (main: the agent config; an inner loop: its override, inherit clears it). No argument: picker
/config [edit]The selected agent’s config (Inspect › Config); edit opens it in $EDITOR
/tasks [pending|active|all]The selected agent’s tasks (Inspect › Tasks): approvals and async tool calls; y/n/a act on a call waiting for approval
/instructions [edit]Edit the selected agent’s instructions (a dialog; edit opens $EDITOR)
/tools [filter]The selected agent’s tools: enable, show, require approval, lock (built-in and MCP)
/compaction [tokens|default]Compaction threshold of the selected agent › loop (80000, 80k; default = main’s default / an inner loop inherits). No argument: every loop

Fleet view

CommandAliasesDescription
/agents [running|all | interrupt|abort <agent> [loop] | refresh]Fleet overview; running/all: hide or show stopped tracked agents (remembered); interrupt an agent’s running turns (abort = hard stop until reload); refresh
/start [agent]Start an agent (runs its startup turn when it starts active); a stopped tracked agent is loaded first
/stop [agent]/unloadStop and unload an agent and all its loops (asks first)
/load [path.adf] [--review] [--start]Load an .adf into the daemon (no path: file picker with Tab completion)
/switch <agent>[/loop]/swJump to an agent (fuzzy) or one of its loops and open the chat
/autostart [dir…]Scan tracked directories and start every reviewed autostart agent (asks first)
/track [dir]Track a folder of agents (its reviewed autostart agents load now and at every daemon start); no dir: folder picker
/untrack <dir>Stop tracking a folder (asks; files are not touched; optionally unload its agents)

Runtime view

CommandAliasesDescription
/runtime [status|folders|identity|auth|providers|usage|network|compute|mcp|channels|settings|events]The daemon: status, owner identity, sign-in, providers, usage, network, compute, MCP, channels, settings, every agent’s events
/statusDaemon health, version, uptime and every agent’s loops (Runtime › Status)
/usageToken usage across agents, by model (Runtime › Usage)
/providersLLM providers and which agents use them (Runtime › Providers)
/networkMesh, LAN and WebSocket status; mesh and server on/off (Runtime › Network)
/computeContainer runtime and containers (Runtime › Compute)
/settingsDaemon settings (secrets redacted) (Runtime › Settings)
/events [type-filter…] [--agent] [--loop] [--all]Every agent’s live umbilical events (tail -f), e.g. /events tool. -turn.delta —agent (Runtime › Events)

Palette actions

Ctrl+K (or Ctrl+P, or : outside the prompt) searches these, plus views, agents, loops, slash commands and recent files.

Shell (every view)

ActionGroupShortcut
Refresh from daemonActions
Keys & commandsActions?
Next color themeActions
Toggle raw JSON in Inspect and RuntimeActions
Show / hide the sidebarActionsCtrl+B
Mouse mode on / offActions
Terminal setup: Shift+Enter newlineActions
Quit TUI (agents keep running)ActionsCtrl+C
Owner identityActions
Create owner identityActions
Restore owner identity from seed phraseActions
Unlock owner identityActions
New agentActionsn
Provider sign-inActions
Sign in to ChatGPTActions
Sign in to GrokActions
Open agent websiteWebw
Copy agent website URLWebShift+w
Start web serverWeb
Stop web server…Web
MCP servers of this agentActions
Add an MCP serverActions
Welcome & getting startedActions
Channels of this agentActions
Add Telegram channelActions
Add Discord channelActions
Add Slack channelActions
Add Email channelActions
Add WhatsApp channelActions
Connect a model providerActions
Agent templatesActions
Skills of this agentActions
Add a skillActions
Context usageActions

Chat view

ActionGroupShortcut
Interrupt running turnChatEsc
Next loopChatShift+→
Previous loopChatShift+←
Toggle thinking blocksChatt
Copy last replyChatc
Fire a trigger into this loop…Chat
Compact this loop’s history nowChat
Clear this loop’s history…Chat
Approve the pending tool callChat
Approve all pending tool callsChat
Always approve this tool…Chat
Reject the pending tool call with feedback…Chat

Files view

ActionGroupShortcut
Show agent documentFiles
Show agent mindFiles
Edit agent mind in $EDITORFiles
New file…Files
Browse filesFiles
Show inboxFiles
Show outboxFiles
Show metaFiles

Loops view

ActionGroupShortcut
New inner loop…Loops
New loop from template: Memory consolidatorLoops
New loop from template: ResearcherLoops
New loop from template: Critic / reviewerLoops
New loop from template: ReflectorLoops
Manage loopsLoops
Schedule the selected loop…Loops
TimersLoops
Upcoming timers (all agents)Loops
TriggersLoops
Loop historyLoops
Edit the selected loop…Loops

Inspect view

ActionGroupShortcut
Agent settingsInspect
Edit agent instructionsInspect
Agent toolsInspect
Compaction thresholdInspect
Show tasksInspect
Change modelInspect
Edit agent config in $EDITORInspect
Events of the selected loop onlyInspect
Inspect: StatusInspect
Inspect: SettingsInspect
Inspect: ConfigInspect
Inspect: UsageInspect
Inspect: MCPInspect
Inspect: ChannelsInspect
Inspect: IdentitiesInspect
Inspect: LogsInspect
Inspect: TablesInspect
Inspect: TasksInspect
Inspect: EventsInspect

Fleet view

ActionGroupShortcut
Track a folder…Fleetf
Untrack folder…Fleet
Load agent file (.adf)…Fleeto
Start selected agentFleets
Stop + unload selected agent…Fleetx
Interrupt running turns of selected agent…Fleeta
Hard abort selected agent’s running loops (stopped until reload)…Fleet
Autostart agents from tracked directories…FleetShift+a
Hide / show stopped agents (tracked, not loaded)FleetShift+h
Refresh fleet (agents, timers, inbox, runtime)Fleetr
Open selected agent + loop in chatFleetEnter

Runtime view

ActionGroupShortcut
Runtime: StatusRuntime
Runtime: FoldersRuntime
Runtime: IdentityRuntime
Runtime: Sign-inRuntime
Runtime: ProvidersRuntime
Runtime: UsageRuntime
Runtime: NetworkRuntime
Runtime: ComputeRuntime
Runtime: MCPRuntime
Runtime: ChannelsRuntime
Runtime: SettingsRuntime
Runtime: EventsRuntime

Keys

The same lists as ? / /help in the app.

Global

KeysAction
Ctrl+K Ctrl+PCommand palette (also : when the prompt is not focused)
Tab Shift+TabCycle focus: sidebar → main → prompt (a hidden sidebar is skipped); from the tab bar Tab goes to the first pane
Ctrl+BHide / show the fleet sidebar: full-width chat (also /sidebar; remembered)
1-6 Alt+1-6Switch view. The selected agent: 1 Chat 2 Files 3 Loops 4 Inspect · the app: 5 Fleet (every agent) 6 Runtime (the daemon) (bare digits outside the prompt)
Shift+← Shift+→Previous / next loop of the selected agent, from anywhere (also Ctrl+←/→, except in a prompt with text)
Alt+← Alt+→In the prompt: word left / right (also Alt+B / Alt+F, and Ctrl+←/→ while there is text)
Home EndIn the prompt: line start / end (also Ctrl+A / Ctrl+E, Cmd+← / Cmd+→)
Ctrl+Backspace Alt+Backspace Ctrl+WIn the prompt: delete the word before the caret (Option+Backspace on a Mac)
Ctrl+Delete Alt+dIn the prompt: delete the word after the caret
Cmd+Backspace Ctrl+UIn the prompt: delete to the line start (Terminal.app sends nothing for Cmd+Backspace: use Ctrl+U)
/Slash command (focuses the prompt)
?This help (when the prompt is not focused)
EscIn order: close the dialog or completion menu · end a view’s own mode (filter, search, viewer, a selected chat item) · (chat) interrupt the running turn · then focus the tab bar (from the sidebar, the main pane, or an empty prompt)
← →Files, Loops, Inspect, Runtime: the view’s tabs (from its lists; not while typing a filter)
Enter BackspaceIn a list: open the item (file, message, entry, task, row, event) · back one level (Esc too). Backspace never deletes
Esc EscClear a prompt that has text (the next Esc goes to the tab bar)
Ctrl+CCancel dialog · clear the prompt · press twice to quit (agents keep running)
EnterSend the prompt (to the selected agent › loop unless it starts with /). With a completion menu open: take the highlighted item; a /command with all its required arguments runs, else it is inserted to type them
Shift+Enter Alt+Enter Ctrl+JNewline in the prompt (or end a line with ). Shift+Enter needs a terminal that tells it apart: /terminal-setup
Ctrl+↑ Ctrl+↓Prompt history (per agent › loop in Chat); ↑ ↓ too on the first / last line of text
↑ ↓Chat, empty prompt: select the previous / next transcript item (Enter expands, Esc lets go; PgUp PgDn Home End scroll) · otherwise move in the text / completion menu
MouseMouse mode (default): the wheel scrolls what is under the pointer; click selects / expands a tool call; drag selects + copies (double-click word, triple-click line); right-click pastes. Shift+drag (Option+drag iTerm2, Fn+drag Terminal.app): the terminal’s own selection. /mouse off: the terminal’s mouse
wFleet, Inspect › Status, Chat transcript: open the agent’s website (W copies the URL) · on the tab bar: web server on / off
TabIn the prompt with a menu open: complete /commands, their arguments, @files (Chat) without running

Tab bar

Esc focuses the view tabs in the header once nothing else takes it.

KeysAction
← →Previous / next view: switches as you move (h l too; Home / End first / last). Left of 1 Chat is the agent label
EnterOn the agent label: switch agent / loop (also a click on it in mouse mode)
Enter ↓Into the view (Chat: its prompt)
1-6Jump straight into a view
Tab Shift+TabBack into the panes (first / last)
wWeb server on / off (stopping asks); also a click on the header’s web badge in mouse mode, /web on|off
KeysAction
↑ ↓Move; selects that agent › loop everywhere (PgUp PgDn Home End too)
→ ←Expand an agent into its loops · collapse / back to the agent
SpaceExpand or collapse the agent
EnterOpen the agent › loop in Chat
a-zType to filter agents and loops (Backspace edits, Esc clears)

Dialogs

KeysAction
y EnterConfirm
n EscCancel

1 Chat

KeysAction
EnterSend to the selected loop (queued while it runs)
Shift+← Shift+→Previous / next loop tab (also Ctrl+←/→ on an empty prompt; ← → in the transcript)
↑ ↓Select the previous / next transcript item (message, reply, thinking, tool call, notice, approval, marker): from an empty prompt or the transcript (j k). An item taller than the view scrolls inside first
Enter SpaceExpand / collapse the selected item (tool call input + result, thinking, context, approval, wake). Mouse mode: click the item
EscLet go of the selected item (before interrupting)
PgUp PgDnScroll by pages (also while typing); the mouse wheel scrolls by lines
Home EndWith an empty prompt: top, loading older history · follow live (g G in the transcript)
Ctrl+↑ Ctrl+↓Prompt history of this agent › loop (↑ ↓ too once the prompt has text, on its first / last line)
Shift+Enter Alt+EnterNewline in the prompt (Ctrl+J, or \ then Enter; /terminal-setup for Shift+Enter)
tExpand / collapse all thinking
cCopy the selected item, else the last reply
wOpen the agent’s website (when it serves one; starts the web server if stopped)
EscInterrupt this loop’s running turn: it goes idle and keeps working (not a stop)
Esc EscClear the prompt
Tab Shift+TabLeave the prompt for the transcript / sidebar (Esc never does)
@In the prompt: complete an agent file path (Tab)

Approvals and questions (the card under the transcript):

KeysAction
yApprove: press twice, or once on a selected approval · resume a suspended agent. Mouse mode: click the card’s buttons
aAlways approve this tool for the agent (twice, then confirm; it won’t ask again). Not offered for protection overrides: those are one-time only · on a question card: answer it
nReject · shut a suspended agent down (asks)
fReject with feedback: the agent sees your text
vFull details of the tool call
/approve/approve [all|always] · /reject [feedback]: the same from the prompt

2 Files

Files tab (tree):

KeysAction
↑ ↓Move; the viewer previews the highlighted entry
EnterOpen the file in the viewer · open / close a folder
BackspaceClose the folder · go to the parent folder (never deletes)
← →Tabs: Files · Inbox · Outbox · Meta
SpaceToggle a folder
/Filter by path (fuzzy)
eEdit in $EDITOR, then confirm the write (diff shown)
nNew file
mRename / move (a folder moves with its files)
d DeleteDelete (asks)
pProtection: none → read_only → no_delete
aToggle authorized
rReload

Viewer:

KeysAction
Backspace EscBack to the list (the entry stays selected)
↑ ↓Scroll (j k; PgUp PgDn Space page; g G top/bottom)
/Search, then n N next / previous hit
eEdit this file

Inbox · Outbox · Meta (read-only):

KeysAction
EnterRead the message / entry (Backspace or Esc: back)
/Filter
fStatus filter (inbox, outbox)
rReload

3 Loops

KeysAction
← →Tabs: Loops · Timers · Triggers · History

Loops tab:

KeysAction
↑ ↓Select a loop (also selects it for Chat)
EnterChat with the loop
nNew inner loop: memory consolidator, researcher, critic, reflector or blank
eEdit goal, tools, model, flags (diff + confirm)
xEnable / disable
sSend a one-off message
tSchedule: a timer that wakes this loop
cClear its history (asks)
d DeleteDelete (asks; history archived to the audit log)
hIts history
rRefresh

Timers tab:

KeysAction
nnew
Enter eedit
ddelete
fall agents
rrefresh
oselect that agent (all-agents list)

Triggers tab:

KeysAction
xenable/disable
Enter eedit targets
rrefresh

History tab:

KeysAction
Enteropen entry
/filter text/tool
frole
< >older/newer
lnext loop
cclear
Lprevious loop
ientry details
rreload

Loop and timer forms:

KeysAction
↑ ↓Field
← →Change a choice / toggle
Ctrl+OOpen the goal in $EDITOR
Ctrl+SReview, then Enter / y applies
EscCancel (from review: back to the form)

4 Inspect

KeysAction
← →The selected agent’s tabs: Status Settings Config Usage MCP Channels Identities Logs Tables Tasks Events

Other tabs:

KeysAction
eConfig: edit in $EDITOR (validated, changed keys confirmed; also /config edit)
wStatus: open the agent’s website (W copies its URL)
EnterLogs / Tables: details · row
fLogs: follow
n pTables: next / previous page
rReload

Settings (instructions, tools, compaction, autonomy, messaging, host access):

KeysAction
Enter SpaceOpen the dialog (Instructions, Tools, Compaction, Visibility, Send mode) or flip the switch; Autonomous and Host access ask first
eEdit the instructions in $EDITOR (also /instructions edit)
lLock / unlock that section for the agent (its sys_update_config; you can always change it)
rReload config and context use

Tools dialog (/tools [filter]):

KeysAction
Space EnterEnable / disable (on a group header: the whole group, locked tools skipped)
vShow / hide in the agent’s tool list (hidden tools stay callable from code)
rRequire approval (restricted): an LLM call waits for you
lLock / unlock a built-in tool for the agent (locked: enable and show are fixed until unlocked)
/Filter by name or description (Enter keeps it, Esc clears)

Instructions dialog (/instructions):

KeysAction
Ctrl+SSave (re-reads first; asks if they changed on the daemon meanwhile)
EnterNew line
Ctrl+OContinue in $EDITOR
EscCancel (asks when there are unsaved changes)

Compaction dialog (/compaction [tokens|default]):

KeysAction
Enter eSet the threshold of main or an inner loop (80000 or 80k; default / inherit resets; empty keeps it)
dBack to the default (main) or main’s threshold (an inner loop)
cCompact that loop now (asks)

Tasks (approvals and async tool calls; also /tasks):

KeysAction
fFilter: pending · active (+ running) · all
/Search tool, status, reason, loop, origin, args
Enter EscDetail (args, result, error, timestamps) · back
y nApprove · reject the highlighted call waiting for approval
aAlways approve its tool (confirmed; not offered for one-time approvals)
NReject with feedback (the agent sees the text)
AApprove all waiting calls (confirmed; protection overrides skipped)

Events (this agent’s live umbilical events; every agent: Runtime › Events):

KeysAction
↑ ↓Move; ↑ stops following (the wheel scrolls too)
EndFollow the newest again (also G)
tType filter, e.g. tool. -turn.delta
lAll loops / the selected loop
/Search text (Esc clears)
SpacePause / resume
fFollow on / off
EnterFull event
cClear
xReset filters

5 Fleet

KeysAction
nNew agent from a template (sets up your owner identity first if needed)
iOwner identity: status, create, restore, unlock (I hides the banner)
c r uWith no agents and no ready identity: create, restore, unlock the owner identity
↑ ↓Select an agent (j k)
← →Select one of its loops (h l)
EnterOpen the agent › loop in Chat
sStart the agent (a stopped one: load it into the daemon, then start it; one that needs review: review it first)
HHide / show stopped agents: tracked agents that are not loaded (also /agents running|all; remembered)
xStop and unload the agent (asks; the .adf is kept)
aInterrupt the turns running now (asks)
wOpen the agent’s website (starts the web server if it is stopped)
WCopy the agent’s website URL
oLoad an .adf (Tab completes, ^R require review, ^S start after load)
fTrack a folder of agents (Tab completes folders): its reviewed autostart agents load now and at every daemon start · /untrack stops
AAutostart: scan tracked directories (asks)
rRefresh agents, timers, inbox and the daemon line

6 Runtime

KeysAction
← →The daemon’s tabs: Status Folders Identity Sign-in Providers Usage Network Compute MCP Channels Settings Events

Pages:

KeysAction
rReload the page
EnterIdentity: the identity dialog · Sign-in: the sign-in dialog
c r uIdentity: create / restore / unlock (when offered)
EnterFolders: the selected folder’s agents (loaded, needs review, errors): review + accept + load, or load
a dFolders: track a folder (its reviewed autostart agents load now) / stop tracking the selected one (asks; files untouched, optionally unload its agents)
mNetwork: mesh on / off (asks)
sNetwork: web server (serves agent sites, APIs, mesh delivery) start / stop (stopping asks)
RNetwork: restart the web server (asks)

Events (every agent’s live umbilical events):

KeysAction
↑ ↓Move; ↑ stops following (the wheel scrolls too)
EndFollow the newest again (also G)
tType filter, e.g. tool. -turn.delta
aAll agents / the selected agent (Runtime only)
lAll loops / the selected loop
/Search text (Esc clears)
SpacePause / resume
fFollow on / off
EnterFull event
cClear
xReset filters

Legend

GlyphMeaning
● (*)Running: a turn is in progress (agent: in any of its loops; loop: in that loop)
○ (o)Idle: loaded and waiting for work
✗ (x)Disabled loop, or an agent in error / stopped
↻ (@)A loop: ↻main is the agent itself, the rest are inner (side) loops
!NN approvals or questions waiting for you
«NN unread inbox messages
in 1hNext timer wake of that loop
● live / offlineHeader: live event stream to the daemon, or the daemon is not answering
● web :7295 / ○ web offHeader: the web server that serves agent websites / APIs (w on the tab bar, /web on|off)