Slash commands reference
Slash commands run synchronously inside ethos chat and do not count as a turn. They start with / as the first character; anything else is sent to the agent.
Source
The readline mode (ethos chat) handles a subset of commands in apps/ethos/src/commands/chat.ts (handleSlashCommand). The full TUI mode handles the complete set in apps/tui/src/components/App.tsx (handleSlashCommand). Each command below notes which surface implements it.
/help
Show the slash-command list. Available in both surfaces.
Synopsis: /help
/new
Start a fresh session. Resets the session cost counter and (in the TUI) clears the visible message history, timeline, and file-activity panes. The session key gets :<timestamp> appended so the same working directory can host multiple parallel histories. /reset is an alias.
Synopsis: /new (alias: /reset)
> /new
[new session started]
/personality
Show or switch the active personality. /personality prints the current id; /personality list prints built-ins; /personality <id> switches. In the TUI, switching also re-applies the personality's budget cap. The change is session-local — use ethos personality set <id> to persist.
Synopsis: /personality [list | <id>]
> /personality engineer
[personality: engineer]
/model
In the readline CLI, prints the active model — switching takes effect only on next restart, so edit model: in ~/.ethos/config.yaml or set modelRouting.<personality> to persist. In the TUI, opens the model picker modal.
Synopsis: /model [<name>]
/sessions
Open the session picker modal. TUI only.
Synopsis: /sessions
/memory
Print ~/.ethos/MEMORY.md and ~/.ethos/USER.md (markdown mode) or recent chunks (vector mode).
Synopsis: /memory
/learn
Run one agent turn that distills something into memory, a skill proposal, or both. With no argument it learns from the current conversation; with text it learns from that text. A remember: prefix routes the result to memory only; a skill: prefix routes it to a skill proposal only (parseLearnArgs, packages/core/src/learn.ts). Available in both surfaces, and in channel chats through the gateway.
Memory learning is private. In a group chat or any other shared room the gateway runs no turn and replies with a pointer to a direct message instead (LEARN_SHARED_ROOM_REPLY, extensions/gateway/src/index.ts); see Keep memory out of group chats.
Synopsis: /learn [remember: | skill:] [<text>]
> /learn remember: the deploy is on Fridays
In a shared room:
Memory learning works in a private chat with me — send /learn there.
/usage
Print token counts and dollar cost for the current session.
Synopsis: /usage
> /usage
Tokens : 4,213 in · 1,180 out
Cost : $0.04826
/budget
Show running spend against budgetCapUsd. reset clears the counter so the next turn can proceed past the cap.
Also available on channel bots (Telegram, Slack, Discord, WhatsApp, Email), where it reads and resets the chat's current session. In a group chat only the owner set in channel_filter.<platform>.ownerUserId can run /budget reset; a group on a platform with no owner refuses it (Gateway.handleBudgetCommand in extensions/gateway/src/index.ts).
When the cap stops a turn part-way, every surface shows the cap and the reset command in one notice (haltNotice in packages/core/src/agent-loop/budgets.ts).
Synopsis: /budget [reset]
/verbose
Toggle the per-turn timing summary (LLM time, TTFT, tool wall-clock, tokens, cost). Session-local — set verbose: true in ~/.ethos/config.yaml to make it sticky.
Synopsis: /verbose
/readonly
Toggle readonly mode. When on, write-side tools (write_file, patch_file, destructive terminal commands) are blocked. TUI only.
Synopsis: /readonly
/details
Set the visibility for the four TUI detail panes (thinking, tools, subagents, activity). Each pane can be hidden, collapsed, or expanded. With no arguments, prints the current state. TUI only.
Synopsis: /details [hidden | collapsed | expanded] [thinking | tools | subagents | activity]
/skin
List or pick a skin. Built-in names: default, mono, paper. reset clears the user pin and falls back to the engine default. Set skin: in ~/.ethos/config.yaml to persist a pin across sessions.
Synopsis: /skin [list | reset | <name>]
/tools
List the tools available to the current personality, grouped by toolset. TUI only.
Synopsis: /tools
/skills
List installed skills. TUI only.
Synopsis: /skills
/allow
Approve a pending channel sender by pairing code. Readline CLI and chat channels only (surfaces: ['cli', 'gateway'] in packages/surface-kit/src/slash-commands.ts). The TUI has no pairing command and no pairing-approval modal. (Its tool-approval modal is a different thing: see Set up approval gates.)
Synopsis: /allow <code>
/deny
Revoke an approved channel sender. Recognised platforms: telegram, discord, slack, whatsapp, email. Readline CLI only.
Synopsis: /deny <platform> <senderId>
/communications
List approved senders and pending pairing codes. /comms is an alias. Readline CLI only.
Synopsis: /communications (alias: /comms)
/exit
Quit the CLI. /quit is an alias; Ctrl+D does the same.
Synopsis: /exit (alias: /quit)
See also
- CLI reference — the
ethos chatshell that hosts every slash command. config.yamlreference — the userconfig.yamlslash commands like/modeland/skinmutate at runtime.- Personality config reference — the per-personality
config.yaml+toolset.yamlthat/personalityswaps between. - Glossary: session — one-line definition of what
/newclears and/sessionslists.