Skip to main content

CLI Reference

Complete reference for the ethos command-line interface.

Usage

ethos [options]
pnpm dev [options]

Options

FlagDescriptionDefault
--adapter <name>Platform adapter to use (cli, telegram, discord, slack)cli
--personality <id>Start with this personality activeFrom config
--config <path>Config file path~/.ethos/config.yaml
--session <key>Override the session keycli:<cwd-basename>
--no-memoryDisable memory loading and savingfalse
--debugShow debug output (hook events, token counts)false

Slash commands (in chat)

These commands are typed directly in the interactive prompt.

Session management

CommandDescription
/newStart a new session (appends :timestamp to session key)
/clearClear the current session history (cannot be undone)

Personality

CommandDescription
/personalityShow active personality
/personality <id>Switch to a different personality
/personalitiesList all available personalities

Information

CommandDescription
/usageShow token usage and estimated cost for this session
/toolsList all tools available to the current personality
/modelShow the active model
/memoryShow current MEMORY.md and USER.md content
/statusShow session key, personality, model, and tool count

Control

CommandDescription
/helpShow available slash commands
Ctrl+CInterrupt the current response
Ctrl+DExit the CLI

~/.ethos/config.yaml

The main configuration file. Created automatically on first run.

# LLM provider
provider: anthropic # anthropic | openai-compat
model: claude-sonnet-4-6 # model ID for the provider

# Default personality (optional)
personality: engineer

# Active adapters
adapters:
- cli

# Platform-specific config (see Platforms docs)
telegram:
token: "..."

discord:
token: "..."
clientId: "..."

slack:
token: "..."
signingSecret: "..."

# Plugins to load
plugins:
- "@myorg/ethos-plugin-weather"

Environment variables

VariableDescription
ANTHROPIC_API_KEYAPI key for Anthropic provider
OPENAI_API_KEYAPI key for OpenAI-compatible provider
OPENROUTER_API_KEYAPI key for OpenRouter
ETHOS_CONFIGOverride config file path
ETHOS_SESSIONOverride session key
ETHOS_DEBUGEnable debug output (same as --debug)

Personality files

Personalities live in ~/.ethos/personalities/<id>/:

<id>/
├── ETHOS.md identity document
├── config.yaml name, model, memoryScope
└── toolset.yaml allowed tool names

config.yaml fields:

KeyTypeDescription
namestringDisplay name
descriptionstringOne-line summary
modelstringOverride the default model for this personality
memoryScopeglobal | per-personalityMemory isolation mode

toolset.yaml format:

tools:
- search_web
- read_file
- write_file
- run_shell

Memory files

FileDescription
~/.ethos/MEMORY.mdRolling project context — updated each session
~/.ethos/USER.mdWho you are — persistent, rarely changes

Session storage

Sessions are stored in ~/.ethos/sessions.db (SQLite, WAL mode).

To inspect sessions directly:

sqlite3 ~/.ethos/sessions.db
sqlite> .tables
sqlite> SELECT session_id, COUNT(*) FROM messages GROUP BY session_id;

To export a session:

sqlite3 ~/.ethos/sessions.db \
"SELECT role, content FROM messages WHERE session_id = 'cli:myproject' ORDER BY timestamp"