Skip to main content
Quick reference for all ChatCLI commands and flags.

Internal Commands (/)

CommandDescription
/helpShow help
/menu (or /)Opens the interactive command palette — a navigable list of every command (see Command Palette)
/exit or /quitExit ChatCLI
/newsessionStart a new conversation session
/config, /status or /settingsConfiguration panorama (accepts subsections — see below); bare opens the palette with the sections
/reloadReload settings from .env — includes the embeddings provider (CHATCLI_EMBED_*): switching to bedrock/voyage/openai takes effect without restarting
/switchSwitch LLM provider or model (with dynamic autocomplete); bare opens the providers/flags palette
/provider (or /providers)Switch the active LLM provider by name; bare opens the palette with the active providers (same UX as /model)
/model <name>Shorthand for /switch --model <name>; bare opens the palette with the available models
/max-tokens <num>Shorthand for /switch --max-tokens <num>; with no argument, shows the current value
/agent or /runStart agent mode
/coderStart coder mode (code engineering)
/authManage OAuth credentials
/clearRedraw/clear screen
/connectConnect to remote server (gRPC)
/disconnectDisconnect from remote server
/contextManage persistent contexts
/pluginManage plugins
/skillManage skills from registries
/sessionManage sessions (save, load, list, delete, new, fork, search)
/nextchunkLoad next file chunk
/retryRetry last failed chunk
/retryallRetry all failed chunks
/skipchunkSkip a file chunk
/versionCheck version
/compactCompact conversation history (auto or guided)
/rewindRewind to a previous conversation checkpoint
/memoryView/load/edit memory (today, yesterday, week, load, longterm, list, profile, profile set <field>=<value>, remember <fact>, forget <substring>, topics, projects, stats, facts, compact)
/watchK8s watcher status
/mcpManage MCP servers (status, tools, restart)
/hooksList configured lifecycle hooks
/costShow estimated session cost
/worktreeManage git worktrees (create, list, remove, status)
/channelMCP channels inbox + trigger engine — see /channel subcommands
/websearchManage web search provider (status, list, provider, reset)
/thinkingCross-provider reasoning/thinking override (on|off|auto|low|medium|high|max|budget=N) — see #7 Reasoning Backbone
/planForce Plan-and-Solve / ReWOO on next /agent or /coder — see #2 Plan-and-Solve
/refineToggle Self-Refine for the session (on|off|once|auto) — see #5 Self-Refine
/verifyToggle Chain-of-Verification for the session (on|off|once|auto) — see #6 CoVe
/reflectDurable lesson queue (status, list, failed, retry, purge, drain) — see #3 Reflexion
/scheduleSchedule a durable job (cron / relative / interval / wait-until) — see Scheduler
/waitWait for a condition and optionally run an action — see Scheduler
/jobsManage scheduled jobs (list, show, tree, cancel, pause, resume, logs, history, daemon, gc)
/parkedList agents parked via @parkprune removes terminals, gc <dur> removes old ones — see Agent Park & Resume
/resume/resume <token> forces immediate resume of a park (idempotent against auto-resume)
/cancel-park/cancel-park <token> aborts a park: deletes snapshot + cancels scheduler job
/ratelimit or /limitsShow the current provider’s rate limits, parsed from the last response’s x-ratelimit-* headers (remaining requests/tokens and reset)
/exportExport the current session’s agent trajectory as ShareGPT-format JSONL (fine-tuning / analysis)
/moaMixture-of-Agents: several models propose in parallel and an aggregator synthesizes (CHATCLI_MOA_MODELS) — see Mixture-of-Agents
/gatewayRun ChatCLI as a detached messaging daemon (start, status, stop): each message runs through the agent loop and progress is streamed over Telegram/Slack/Discord/WhatsApp/webhook — see Chat Gateway
/hubInspect and manage the shared cross-channel conversation: whoami (principal + active conversation), bind <platform> <userid> [principal], bindings [principal] — see Conversation Hub
/lsp <file>Code diagnostics (errors/warnings) for a file via the Language Server Protocol — see LSP Diagnostics

Interactive Command Palette

Commands that have subcommands, flags or values open a navigable palette when typed bare and confirmed with Enter — the same experience Claude Code users get. Instead of just printing a list, the palette lets you arrow through it and select.
How to openResult
/ or /menu + EnterRoot palette: every command grouped by category
A bare “pickable” command (e.g. /model, /config, /provider, /switch) + EnterScoped palette for that command: its real subcommands/flags/values
Items come live from the same autocomplete engine the prompt uses — models, sessions, config sections, providers, files — so the palette and <TAB> always show exactly the same set, with no drift. Palette navigation:
KeyAction
/ (or Ctrl+P / Ctrl+N)Move the selection
TypeFilter (fuzzy)
/ EnterDrill into a sublevel, or select (runs the command)
TabInsert the selection as text
/ Esc / BackspaceGo back one level (or cancel at the root)
Ctrl+CCancel
“Run as-is” entry (): every scoped picker leads with an entry that runs the command with no arguments, preserving the behavior of commands whose bare form already did something — e.g. /config shows the overview, /switch opens the provider picker. That entry’s description summarizes what the command does, so it never looks “empty”. The palette is themed (it follows the active theme, see /config ui theme) and runs only in the interactive REPL — headless runs (scheduler, gateway, one-shot) execute the command as typed.

External subcommand chatcli daemon

chatcli daemon {start|stop|status|ping|install} [--detach] [--socket <path>] — controls the scheduler daemon in the background. Any interactive CLI detects the daemon and becomes a thin client over the UNIX socket. See Scheduler → Daemon mode.

External subcommands chatcli mcp-server and chatcli acp

chatcli mcp-server (alias mcp-serve) — runs ChatCLI as an MCP server over stdio. Beyond chat (ask_chatcli), it exposes the agent loop (agent_task), the coder (coder_task) and the curated built-in tools (read, search, tree, websearch, webfetch), so an MCP client can drive ChatCLI’s real functionality. Use LLM_PROVIDER/LLM_MODEL to pick the backend. See MCP Server (ChatCLI as a server). chatcli acp — runs ChatCLI over the Agent Client Protocol (stdio), for integration with editors that speak ACP.

/config security — mutable rules

/config security is now hierarchical: the bare form still shows the read-only panorama; the new subcommands mutate the PolicyManager live and persist to ~/.chatcli/coder_policy.json. Used by both interactive /coder and the scheduler preflight.
SubcommandDescription
/config securityRead-only dump (previous behavior)
/config security rulesList active rules grouped by action (deny, allow, ask)
/config security allow "<pattern>" [--yes]Add ALLOW rule; prompts if the pattern is broad
/config security deny "<pattern>" [--yes]Add DENY rule; prompts [y/N]
/config security forget "<pattern>" [--yes]Remove rule; prompts [y/N]
/config security reloadForce re-read of the JSON (after external file edit)
Patterns use prefix matching on <toolName> <args> as the PolicyManager normalizes (@coder exec <cmd>). Deny always beats allow.

/channel — MCP channels inbox and triggers

Manages the MCP Channels inbox and the trigger engine (rules in ~/.chatcli/mcp/triggers.json). All subcommands support autocomplete (Tab after /channel ).
SubcommandArgumentDescription
/channel or /channel listLists up to 20 most recent ring messages with seq, timestamp, server, channel and preview. Shows total and unread counters, plus a warning when the engine is paused
/channel <name>channel nameFilters the listing to that channel
/channel ackMarks every message as read, clears the pending notify banner. Returns how many entries were cleared
/channel injectInjects the last 10 messages into history as a system message (legacy behavior). Useful when you want to provide explicit context without waiting for auto-injection of the 5 most recent
/channel pausePauses the trigger engine. Messages keep entering the ring/persistence, but no Action is emitted (zero banners, confirms, autos) while paused
/channel resumeReactivates the trigger engine
/channel rulesLists active rules with name, mode, filters (server/channel/contentRegex) and configs (rate, dedup, tools)
/channel rules reloadRe-reads ~/.chatcli/mcp/triggers.json without restarting ChatCLI. On schema error, keeps the previous rules active and shows the error
/channel confirm <id>id requiredAccepts a pending confirm action (default = yes); fires the agent with the rule template inside an AUTO-AGENT envelope box
/channel confirm <id> noid requiredRefuses a pending confirm action without firing anything
/channel run <seq>seq requiredFires the agent manually against a specific ring message (use the seq shown by /channel list) — useful for investigating a message that came in as notify
Full rule schema and examples: MCP Config — Trigger rules.

Harness/Quality Pipeline — At a Glance

ChatCLI ships seven LLM-agent patterns that can be toggled per session via slashes:
PatternSlashDefaultWhat it does
#1 ReActalways onBase loop
#2 Plan-and-Solve/planauto (complexity ≥ 6)JSON plan + ReWOO
#3 Reflexion/reflecton (on errors)Persisted lessons
#4 RAG + HyDEoffSemantic retrieval
#5 Self-Refine/refine onoffCritique + rewrite
#6 CoVe/verify onoffChain-of-Verification
#7 Reasoning/thinking onauto (planner, refiner, verifier, reflexion)Cross-provider
Full reference: Agent Harness/Quality Pipeline · Configuration

/reflect — subcommands

The durable Reflexion queue exposes observability and DLQ triage operations. All have Tab autocomplete:
SubcommandWhat it does
/reflectStatus: queue depth + DLQ size + subcommands hint
/reflect <free text>Persist manual lesson to memory.Fact (no LLM)
/reflect listList pending + DLQ with trigger, attempts, age, task preview
/reflect failedDLQ only, with last error — ideal for triage
/reflect retry <job-id>Re-queue a DLQ job (resets Attempts=0) — Tab autocompletes live IDs
/reflect purge <job-id>Remove permanently from the DLQ — Tab autocompletes live IDs
/reflect drainForce WAL replay (pending items from a previous session)
Tab on /reflect retry or /reflect purge queries the live DLQ and shows IDs with task preview + last error.

/config — Panorama and Sections

/config (aliases: /status, /settings) has two modes: short panorama (no argument — default) and drill-down by section. /config <TAB> autocomplete lists the sections.
CommandDescription
/configShort panorama: provider, model, session (messages, tokens, cost, duration), active persona, counters (plugins, MCP servers, hooks), websearch chain, remote connection if active
/config allFull dump — all sections in sequence
/config general.env path, locale, logging, version check, history file
/config providersEnv vars for each provider (OpenAI, Claude, Bedrock, Copilot, GitHub Models, OpenRouter, ZAI, MiniMax, Moonshot, StackSpot, Ollama) + API key presence (no value leaked)
/config agentAgent runtime: coder UI, workers, subagents, timeouts, tmpdir, denial caps, per-agent overrides, active persona
/config resiliencePayload caps, recovery ladder, stream timeout, global TLS trust (CA bundle, skip-verify), Bedrock proxy (CA bundle, IMDS), compaction
/config sessionCurrent session (name, messages, cost, budget), attached contexts, memory system
/config integrationsMCP (servers + tool count), hooks, plugins, skill registries, websearch (active chain), worktrees (if in a git repo), K8s watcher, remote connection
/config authOAuth status per provider (anthropic, openai-codex, github-copilot, github-models) with token expiry, keychain backend
/config securityCommand policy (allow/denylist, sudo), workspace sandbox, Coder policy, TLS/proxy, redaction
/config qualitySeven-pattern pipeline: Self-Refine, CoVe, Reflexion, Plan-First, HyDE (vectors + provider + count), Reasoning backbone — see full overview
/config serverConditional — only renders when any server-mode env is set (gRPC, JWT, rate limit, fallback chain, watcher, audit, operator)
/config hubConversation Hub: the effective value of each setting (with its source — setting/env/default), bindings, and session state. Mutable — see below
The panorama shows a numeric summary (“MCP servers: 2 (6 tools)”, “Hooks: 3”, “Web search chain: duckduckgo → searxng”) and lists the available sections in the footer. Use /config <section> for full detail.

/config hub — mutable settings

Unlike bare /config hub (a read-only panorama), the subcommands change hub settings at runtime — persisted in hub.db and read live by the gateway daemon (cross-process, no restart):
CommandEffect
/config hub set enabled <on|off>Turn the hub on/off
/config hub set principal <name>Set the shared conversation identity
/config hub set isolate <on|off>Isolate each channel (multi-user bot) vs. collapse to the principal
/config hub set ttl_hours <n>Hours before pruning an idle conversation (0 disables)
/config hub reset <key>Drop the override; back to env var/default
Precedence: setting (db) > env var > default. /config hub reprints immediately after each set/reset, showing the new value and its source. Mutation requires local hub mode or /connect.

/websearch — Web Search Provider

CommandDescription
/websearch or /websearch statusShow current provider + active fallback chain
/websearch listList known providers and which are configured
/websearch provider <searxng|duckduckgo|brave|mojeek|auto>Set preferred provider for the session (sets CHATCLI_WEBSEARCH_PROVIDER)
/websearch resetRemove override and return to auto mode
Supported providers are keyless: duckduckgo (default, HTML scraping), searxng (self-hosted via SEARXNG_URL), brave and mojeek (independent indexes, HTML scraping). Default chain: duckduckgo → searxng → brave → mojeek. See Web Tools for details.

Provider and Model Switching (/switch)

CommandDescription
/switchBare opens the palette of providers/flags; also accepts the flags below
/switch --model <name>Switch model for the active provider
/switch --modelList all available models (dynamic from API)
/switch --max-tokens <num>Set max tokens for responses
/switch --realm <name>Change realm/tenant (StackSpot only)
/switch --agent-id <id>Change agent (StackSpot only)
/provider <name>Switch the active provider by name (case-insensitive); bare opens the palette with the active providers
/providersAlias of /provider
/model <name>Shorthand for /switch --model <name> (bare opens the palette with the models)
/max-tokens <num>Shorthand for /switch --max-tokens <num> (no argument shows the current value)
The /switch --model (and /model) autocomplete fetches models directly from the provider’s API using the active token/key. Each suggestion shows [API] (dynamic) or [catalog] (static). /model and /max-tokens delegate to /switch, so they share exactly the same validation and behavior. /provider is the navigable counterpart to the provider picker: type /provider and Enter to open the palette with the active providers (the current one marked), pick one and the switch is applied — the same switch logic as /switch, just by name instead of a numeric index.
# Examples
/switch                      # Providers/flags palette
/switch --model gpt-4o       # Switch to GPT-4o
/provider                    # Palette with the active providers
/provider OPENAI             # Switch straight to the OPENAI provider
/model gpt-4o-mini           # Same as /switch --model gpt-4o-mini
/model                       # Palette with the available models (source: API or catalog)
/max-tokens 4096             # Same as /switch --max-tokens 4096
/max-tokens                  # Show the current max-tokens limit
The /model, /provider and /max-tokens shorthands appear in the command menu (<TAB> after /) and have their own autocomplete — /model <TAB> suggests the active provider’s models, /provider <TAB> lists the providers and /max-tokens <TAB> offers presets (0, 1024, 4096, 8192, 16384, 32768).

Context Commands (@)

CommandDescription
@file <path>Attach file content or directory structure
@file --mode <mode>Mode: full, summary, chunked, smart
@command <cmd>Execute command and attach output as context
@command --aiSend output directly to AI for analysis
@command -iInteractive mode (e.g., ssh, vim)
@gitInject Git repository status, diff, and log
@envInject environment variables (sensitive ones redacted)
@historyInject shell command history

LLM-callable plugins (@<tool>)

Tools the agent can invoke via <tool_call> (in /agent, /coder modes). Full catalog in Plugin System and Atomic Tools.
PluginSubcommandsDocs
@coderread, write, patch, multipatch, tree, search, exec, test, rollback, git-status, git-diff, git-log, git-changed, git-branch, cleanPlugin @coder
@read(flat) file, from_line, to_line, head, tail, encodingAtomic Tools
@search(flat) term, dir, max_results, includeAtomic Tools
@tree(flat) dir, depth, excludeAtomic Tools
@todowrite, list, markAtomic Tools
@websearchsearchWeb Tools
@webfetchfetchWeb Tools
@schedulerschedule, wait, query, list, cancelScheduler
@parkdelay, until, for_url, for_cmdAgent Park

Agent Mode — Actions

ActionDescription
[N]Execute command number N
aExecute all pending commands
eNEdit command N
tNSimulate (dry-run) command N
cNAsk AI to continue with output from N
pcNAdd pre-execution context
acNAdd post-execution context
vNView full output in pager
wNSave output to temporary file
pToggle compact/full view
rRedraw the screen
qExit agent mode

Sessions (/session)

CommandDescription
/session save <name>Save the current conversation
/session load <name>Load a saved conversation
/session listList all sessions
/session delete <name>Delete a session
/session newStart a clean session
/session fork <name>Fork current session into an independent copy
/session search <term>Full-text search across saved sessions, showing snippets with the term highlighted
When connected to a remote server, sessions can be saved/loaded locally, remotely, or both.

Persistent Contexts (/context)

CommandDescription
/context create <name> ...Create snapshot of files/directories (--mode knowledge indexes documentation corpora as a knowledge base)
/context update <name> ...Update existing context
/context attach <name>Attach context to current session
/context detach <name>Detach context
/context listList saved contexts
/context show <name>Show details and files
/context inspect <name>Detailed statistics
/context delete <name>Delete permanently
/context merge <new> <c1> <c2>Combine contexts
/context attachedShow attached contexts with token estimates and cache hints
/context export <name> <file>Export to JSON
/context import <file>Import from JSON
/context metricsUsage statistics

Skills (/skill)

CommandDescription
/skill search <query>Search across all registries (parallel fan-out)
/skill install <name> [--from <reg>]Install skill from a registry (specific or auto-detect)
/skill uninstall <name>Remove installed skill (disambiguates if multiple sources)
/skill listList installed skills with source and version
/skill info <name> [--from <reg>]Full metadata (installs, security audits)
/skill registriesShow configured registries and status
/skill registry enable <name>Enable a registry (immediate hot-reload)
/skill registry disable <name>Disable a registry (immediate hot-reload)
/skill prefer [name] [source]Set/show preferred source for conflicting skills
/skill prefer <name> --resetRemove preference (revert to default: local wins)
/skill pin <name>Pin a skill for the session — injected on every turn until /skill unpin
/skill unpin <name>Remove a skill from the pinned set
/skill pinnedList skills pinned for the current session
/skill helpHelp for the /skill command

Command-Line Flags (One-Shot)

FlagDescription
-p, --promptExecute a prompt and exit
--provider <name>Override provider (e.g., CLAUDEAI)
--model <name>Override model
--timeout <duration>Time limit (e.g., 10s, 1m)
--max-tokens <num>Limit tokens in response
--agent-auto-execExecute first safe command in agent mode
--no-animDisable animations (useful in scripts)
-v, --versionShow version
-h, --helpShow help

Subcommands

Starts as a gRPC server for remote access.
FlagDescriptionDefault
--port <int>gRPC port50051
--token <string>Authentication token""
--tls-cert <path>TLS certificate""
--tls-key <path>TLS key""
--provider <name>Default LLM providerAuto
--model <name>Default modelAuto
--watch-deployment <name>K8s deployment to monitor""
--watch-namespace <ns>Namespace"default"
--watch-interval <dur>Collection interval30s
--watch-window <dur>Observation window2h
--watch-max-log-lines <n>Max log lines per pod100
--watch-kubeconfig <path>KubeconfigAuto

Memory

CommandDescription
/memory or /memory todayShow today’s notes
/memory yesterdayShow yesterday’s notes
/memory <date>Show notes from a date (YYYY-MM-DD, YYYYMMDD, DD/MM/YYYY)
/memory weekNotes from the last 7 days
/memory longtermMEMORY.md content (long-term facts)
/memory listList all memory files (includes structured JSONs)
/memory load <date>Load notes into conversation context
/memory profileAutomatically detected user profile (name, role, company, location, skills, certifications, goals)
/memory profile set <field>=<value>Set/update a profile field manually (e.g. certifications=CKA, company=ACME). List fields accumulate and dedupe
/memory remember <fact>Explicitly add a long-term fact (accepts a [category] prefix)
/memory forget <substring>Remove long-term facts containing the given substring
/memory topicsTracked recurring topics
/memory projectsTracked projects with status
/memory statsUsage statistics (sessions, peak hours, errors, features)
/memory facts [category]Facts with scores (filter: architecture, pattern, preference, gotcha, project, personal)
/memory compactForce memory compaction (LLM + old note cleanup)

Compaction and Rewind

CommandDescription
/compactAutomatic compaction (3-level pipeline)
/compact <instruction>Guided compaction — preserves specific information
/rewindDisplay checkpoint menu for restoration
Esc+EscQuick shortcut for /rewind (2x Esc within 500ms, only when input is empty)
/compact accepts a natural language instruction. Example: /compact preserve file paths and decisions.

Keyboard Shortcuts