Skip to content

TUI panels

The Manage section of the TUI is nine full panels, and each one is driven almost entirely by single letter keys. This page is the reference for what every key does in every panel, plus the composer controls that sit next to the chat editor.

Open the section with /manage, or jump straight to a panel with its slash command (/tasks, /skills, /memory, /mcp, /integrations, /swarm, /llm, /import, /privacy). /telegram opens the Integrations panel.

Tab / Shift+Tab (or Ctrl+B) step through every surface: chat, the Observe tabs, then the Manage tabs. In chat with the sidebar visible, Tab moves focus to the sidebar first; Ctrl+B always advances one step. Ctrl+G opens the menu, where each destination has a one-letter chord (for example Ctrl+G then y for Integrations, b for Swarm, l for LLM).

Conventions

A few things hold across every panel:

  • j / k and Up / Down move the row cursor. They are interchangeable everywhere.
  • Enter triggers the row’s primary action.
  • Esc closes a detail view, modal, form or search first; pressed again (or with nothing open) it takes you back to the chat.
  • r refreshes; a, where present, toggles auto-refresh.
  • Panels keep the chat editor unfocused, which is why bare letters work as commands. Typing / opens the slash palette instead, except where a panel uses / for its own search (the Tasks list and the Skills hub).

Skills

The Skills panel lists what is installed and, through its built-in hub, browses and installs new skills from ClawHub and your configured GitHub taps.

List

KeyAction
j / k, Up / DownMove the cursor
EnterOpen the skill’s detail view
eEnable or disable the selected skill (writes skills.disabled)
iOpen the remote skill hub
dUninstall the selected skill — opens a confirm
fCycle the filter (all / enabled / disabled)
aToggle auto-refresh
rRefresh the list

Detail

KeyAction
EscClose the detail view
eEnable or disable the displayed skill
rRefresh

Hub

i from the list opens the hub: a browsable catalog of remote skills with download counts for ClawHub entries.

KeyAction
j / k, Up / DownMove the cursor
/Focus the search field
EnterOpen the selected skill’s pre-install card
rRe-browse the catalog
EscReturn to the installed list

While the search field is focused, every printable key types into the query, Enter runs the search, and Esc unfocuses without searching. Navigation hotkeys are swallowed so a stray j never jumps the list mid-query.

Pre-install card

The card shows the skill’s SKILL.md before anything is written to disk.

KeyAction
i, y, or EnterInstall the skill
n or EscClose the card, return to the hub
j / k, Up / DownScroll the body one line
PageUp / PageDownScroll the body one screen

Confirms

Both confirm modals take the same two answers, and both swallow every other key so a stray hotkey cannot act behind them.

KeyAction
y or EnterConfirm
n or EscCancel

The install confirm only appears when the scan flags the skill as risky — typically because it carries runnable scripts. Pressing y there is your acknowledgment of that risk, the same thing --acknowledge-risk does on the CLI. The uninstall confirm appears on every d and ignores input while the delete is in flight.

MCP

The MCP panel is a live view of your configured servers, and it edits them: n adds a server and d removes one.

List

KeyAction
j / k, Up / DownMove the cursor
EnterOpen the server’s detail view
nOpen the add-server modal
d, Delete, or BackspaceRemove the selected server — opens a confirm
aToggle auto-refresh
rRefresh

Detail

KeyAction
EscClose the detail view
j / k, Up / DownMove the cursor within the sub-tab
1Jump to the Tools sub-tab
2Jump to the Resources sub-tab
3Jump to the Prompts sub-tab
[ / ], Left / RightCycle sub-tabs
dRemove this server — opens a confirm
rRefresh

Add-server modal

The modal hands the keyboard to a text editor, so there are no letter hotkeys inside it. Paste one MCP server config as JSON — either a bare server object or the { "mcpServers": { ... } } envelope that Claude Desktop and Cursor use. A top-level command plus args, with no transport wrapper, is accepted too and promoted to stdio.

KeyAction
EnterSubmit the JSON
EscCancel

Because paste delivers its whole payload before the next Enter is read, multi-line JSON pastes cleanly.

Remove confirm

KeyAction
y or EnterRemove the server
n or EscCancel

Keys are ignored while the removal is in flight, so a repeated y cannot queue a second write to config.json.

Tasks

List

KeyAction
j / k, Up / DownMove the cursor
EnterOpen the task’s detail view
nOpen the create-task form
cCancel the selected task
RRun the selected task now
/Open the search field
fCycle the status filter
aToggle auto-refresh
rRefresh
EscClear an active search query

While the search field is open, printable keys type into the query, Enter commits it and closes the caret, and Esc cancels and wipes the query. Every keypress is swallowed there, so list hotkeys never fire mid-search.

Detail

KeyAction
EscClose the detail view
oOpen the task’s session
RRun the task now
cCancel the task (same no-confirm rule as the list)
rRefresh

Create form

Navigation here deliberately uses Tab rather than arrows for field-to-field movement, and the arrows are reserved for the schedule-kind selector.

KeyAction
Tab / Shift+TabMove to the next / previous field
EnterMove to the next field; submit when the cursor is on the submit row
Ctrl+EnterSubmit from anywhere in the form
Left / RightCycle the schedule kind (cron / interval / at) while that field is focused
EscDiscard the form

Every other printable key types into the focused text field. The schedule preview revalidates as you type, so a bad cron expression shows up before you submit.

Cancel confirm

KeyAction
yCancel the task
n or EscKeep it

Memory

The Memory panel is read-only: it browses channels, follows links between notes, and expands a note’s graph neighbours. Nothing here writes.

List

KeyAction
j / k, Up / DownMove the cursor
EnterOpen the row’s detail view. On a links row it jumps to the source note instead
1–6Jump directly to that channel
[ / ]Cycle to the previous / next channel
fCycle the archive filter (notes channel only)
aToggle auto-refresh
rRefresh the current channel

The digits map onto the channel list in display order, so 1 is always the first channel available in your build, not a fixed name.

Detail

KeyAction
EscClose the detail view
gExpand the note’s graph neighbours (notes channel only)
EnterFollow the selected link to its neighbouring note (notes channel only)
rRefresh

Enter walks the note’s outgoing links first, then its incoming ones, then anything g has already expanded — so pressing g before Enter widens what you can reach.

LLM

The LLM tab has four panes, not one: local, cloud, external, and fallback, in that left-to-right order. [ / ] and Left / Right switch between them, and the cursor position is remembered per pane.

Shared keys

These work in every pane.

KeyAction
j / k, Up / DownMove the cursor
EnterTrigger the row’s primary action
[ / ], Left / RightSwitch pane
fFocus the inline model filter (switches to the Cloud pane first)
pCycle the Cloud model list’s price filter: all, free, paid (Cloud pane only)
nAdd a provider (switches to the Cloud pane first)
cConfigure the selected provider (switches to the Cloud pane first)
eActivate the provider’s embedding model
EToggle the embedding master switch
sStart or stop the managed daemon
RRestart the local model server (reloads the model)
aAdd a model from Hugging Face that the catalog does not carry (switches to the Local pane first; on the Fallback pane a adds a link instead)
NReopen “tell me when it lands?” for a download in flight
BPull or update the llama.cpp backend
LJump to the LLM logs tab
rRefresh providers and local models
/Open the slash palette

While the inline model filter is focused, printable keys edit the query, Up / Down walk the filtered results, Enter selects, and Esc unfocuses while keeping the text.

Local pane

On the Local pane, Enter does the next obvious thing for the selected row, and the shared keys above cover the rest. In v0.6.5 some local-model actions have no key in the TUI. Use the CLI for them:

ToRun
Delete a downloaded modelatomic-agent models remove <id>
Pick the GPU for the managed daemonatomic-agent models use-device <auto|cpu|device> (list devices with atomic-agent models devices)
Pull a model, with its vision projectoratomic-agent models pull <id> --mmproj
Stop a background downloadatomic-agent models downloads cancel <id>

See CLI & TUI for the full models command.

Fallback pane

The fallback chain is editable from this pane, and that is worth pausing on: the chain decides where a prompt goes when the head provider fails. Reordering or adding a link can send your next prompt to a different vendor than you expect.

KeyAction
j / k, Up / DownMove the cursor
< / >Move the selected link up / down in priority
a or EnterOpen the add-link picker
dRemove the selected link
lToggle whether the local model is appended as the last resort

In the add-link picker, j / k and Up / Down move, Enter adds the highlighted provider, and Esc cancels. Every other key is swallowed while the picker is open.

Integrations

The Integrations panel is the one place for third-party credentials and channels. It lists, in order: Composio, GitHub, Telegram, Discord and Atomic Mail. Each row shows its status; open one to see its fields and setup steps. Open the panel with /integrations (or /telegram).

List

KeyAction
j / k, Up / DownMove the cursor
EnterOpen the integration’s detail view
rRefresh

Detail

KeyAction
j / k, Up / DownMove between fields
eEdit the selected text field. On an on/off field such as Channel, e toggles it
EnterToggle an on/off field such as Channel
dClear the selected field
EscBack to the list

Each integration also has its own verbs, shown in its detail view:

IntegrationKeys
Telegramp open the 60-second owner-pairing window · s restart the channel
Discords restart the channel
GitHubv verify the token · i import the token from the gh CLI
Atomic Mailr register an inbox · v resend the verification code · x forget the inbox

The Telegram setup flow is in the Telegram guide.

Edit

KeyAction
Printable keysType into the field
BackspaceDelete the last character
EnterSave
EscCancel

While you edit, every key types into the field, so a pasted key full of letters never triggers a hotkey. The value is shown in plain text while you type and masked once saved, so avoid screen-sharing during setup. Saved secrets go to <stateDir>/.env.

Swarm

The Swarm panel lists every Telegram and Discord bot this agent runs, and lets you add more, each with its own token, owner and role. Open it with /swarm. The two primary bots (the Telegram and Discord rows from Integrations) appear here for the full picture but are read-only: edit, pair, restart or switch them in Integrations.

List

KeyAction
j / k, Up / DownMove the cursor
aAdd a bot
eEdit the selected bot
Enter or xSwitch the selected bot on or off
pPair an owner (Telegram bots; the bot must be on). Discord bots do not pair: set the owner id with e
sRestart the selected bot
dRemove the selected bot (opens a confirm)
rRefresh

Add a bot

The add form walks through five steps: kind, label, role, token, owner.

KeyAction
Left / Right, TabSwitch the kind between Telegram and Discord (kind step)
t / dPick Telegram / Discord (kind step)
Printable keysType into the current step
BackspaceDelete the last character
EnterNext step; on the owner step, add the bot
EscGo back

Edit and remove

In the edit view, j / k move between the label, role, owner and token fields, Enter or e starts typing a new value, Enter saves it and Esc backs out. The remove confirm takes y; any other key cancels.

As in Integrations, a token is visible while you type it and masked once saved.

Privacy

KeyAction
aToggle anonymous analytics and error reporting
rRefresh the persisted snapshot

Anonymous analytics are on by default. From the editor, /privacy analytics on|off|status (or /analytics on|off|status) does the same as a. You can also set "analytics": { "enabled": false } in config.json.

Approvals moved to the composer

The Privacy panel no longer sets the approval level: the 1 to 5 keys and /privacy level / /privacy approve were removed. There are now two separate controls:

  • For this session: the coding-mode chip in the composer. /mode (or Ctrl+G then M) opens it: default, plan, auto and bypass permissions. It changes approvals for the current session only and never writes config.json. See Coding mode below.
  • Persisted: agent.approvalLevel in config.json (1 to 5, default 1). The default coding mode follows this level.

See Approvals for what each level covers.

Import

The Import panel migrates from Claude Code, Codex, Hermes, OpenClaw, Pi or Oh-My-Pi, bringing whatever that source supports (see the Import guide). It runs in three stages: configure, preview, execute.

Configure form

Navigation uses Up / Down rather than Tab on purpose — the global Tab keeps cycling between panels, so the form never traps you.

KeyAction
Up / DownMove between fields
EnterToggle the focused switch, flip the source, or start the dry run from the run row
Space, Left / RightFlip the focused toggle or switch the source
Ctrl+EnterStart the dry run from anywhere in the form
BackspaceDelete the last character in a text field

Letters type into the two text fields, source and limit. On toggle and source rows, stray letters are swallowed rather than typed.

Preview

The dry run reports what would be imported without writing anything.

KeyAction
y or EnterExecute the import for real
n, e, or EscDiscard and return to the form

While the import is running every key is swallowed. When it finishes, Enter or Esc resets the panel.

Composer controls

These controls live next to the chat editor rather than in a Manage panel. Each is a slash command, and several have a chip in the composer or a key.

Coding mode: /mode

/mode opens the coding-mode menu; /mode <name> sets one directly. Ctrl+G then M and clicking the chip open the same menu.

ModeWhat it does
defaultApprovals follow agent.approvalLevel from config
planThe agent reads and proposes; every tool that would change something is refused
autoFile writes inside the working directory stop asking (level 2, or your configured level if it is higher)
bypass permissionsNothing asks (level 5) for the rest of the session. Hardline shell-guard rules still block

The mode applies to the current session only. Switching back to default restores your configured level.

Where it runs: /runmode

/runmode opens the switch between local, cloud and fusion (Ctrl+G then 1, 2, 3 pick them from the menu). /runmode local|cloud|fusion sets one directly, /runmode status shows the current setup, /runmode swap trades the orchestrator and worker roles in Fusion, and /runmode workers N sets the Fusion worker count. The choice is saved to config.json.

Messages while a turn runs: /steer and /queue

When you press Enter while the agent is working, the message either steers the running turn (the default) or is queued to run after it.

  • Ctrl+T flips between steer and queue. The choice is saved.
  • /steer <message> sends one message into the running turn. Bare /steer makes Enter steer.
  • /queue <message> parks one message for later. Bare /queue lists what is parked, /queue clear empties it, and /queue mode makes Enter queue.

A second window: /window

/window (or Ctrl+N) opens a new terminal window running Atomic Agent in the same working directory.

Other commands

  • /sidebar hides or shows the session sidebar.
  • /context shows where the session’s context window went.
  • /mouse on|off|status toggles mouse support (off restores the terminal’s drag-to-select).
  • /theme <name> or /theme list switches the UI theme.
  • /onboarding runs first-time setup again, keeping your providers, keys, sessions and memory.
  • /report files a GitHub issue with your logs attached; you choose what to include.
  • /uninstall removes Atomic Agent and all of its data from this machine. It is permanent.

/help lists every slash command.

Where to go next

  • CLI & TUI — the surrounding TUI: Run, Observe, sidebar, and global shortcuts.
  • Telegram guide: setting up the Telegram channel from Integrations.
  • Skills — what skills are and how installation works.
  • Approvals — what each rung of the approval ladder allows.