GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • ChatCLI home page
  • Cookbook
  • Releases
  • diillson/chatcli
  • Install
  • Quickstart
  • Docker & Kubernetes
  • Auto-Update
  • Config Migration
  • Command Reference
  • Environment Variables
  • Configuration (.env)
  • MCP Config
  • Architecture

This view

  • Original page
  • New address

GeezerVison is showing chatcli.edilsonfreitas.com — Complete Command Reference - ChatCLI

Quick reference for all ChatCLI commands and flags.

​
Internal Commands (/)

CommandDescription
/help / /help <command>Every command by category, with aliases, context modifiers, one-shot flags and subcommands; /help <command> (e.g. /help session) lists that command’s subcommands and options
/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
/reload (alias /config --reload)Reload settings from .env — covers every provider variable (keys, models, endpoint overrides, BEDROCK_PROVIDER) and the embeddings provider (CHATCLI_EMBED_*); values removed from .env are cleared 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> (or /models)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
/clearClear the conversation: the turns go to a checkpoint (/rewind restores them) while the session binding, attachments and memory stay
/redrawRepaint the screen (prompt corrupted or visual artifacts; also /reset)
/connectConnect to remote server (gRPC)
/disconnectDisconnect from remote server
/contextManage persistent contexts
/pluginManage plugins
/skillManage skills from registries
/<command>Invoke a slash-command template from .chatcli/commands (project or ~/.chatcli/commands, with interop for 9 agent-CLI ecosystems — Claude Code, Devin, Windsurf, Cursor, opencode, Codex, Gemini, Qwen, Copilot): /review-pr 1326. /config commands lists the catalog
/sessionManage sessions (save, load, attach, detach, status, list, delete, new, fork, search)
/nextchunkLoad next file chunk
/retryRetry last failed chunk
/retryallRetry all failed chunks
/skipchunkSkip a file chunk
/versionVersion card: installed build, install channel, latest release and what’s new when an update exists
/updateUpdate ChatCLI through the same channel it was installed with (Homebrew, go install or release binary); /update check only checks. Also available outside the REPL as the chatcli update subcommand
/restartRestart ChatCLI on the version installed now (after /update or a background auto-update), with the same arguments, resuming the conversation. Interactive terminal only
/compactCompact conversation history (auto or guided)
/autocompactSession auto-compaction threshold
/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, timeline [q], compact, export, import, recall, why, links <note>, link <a> -> <b>, unlink <a> -> <b>, vault [status|sync|path])
/graphRenders the knowledge graph to an image (PNG, via embedded go-graphviz). /graph = full graph; /graph <subject> = a node’s local graph
/watchK8s watcher status
/mcpManage MCP servers (status, tools, restart)
/hooksList configured lifecycle hooks
/cost [reset|last|sessions|export]Session cost summary; reset the period, view the previous/recent snapshots, export JSON
/storage [store] / /storage prune [store] [--apply]Inventory of every local store (files, size, policy, what the rules would remove now); prune is a dry run until --apply
/worktreeManage git worktrees (create, list, remove, status)
/channelMCP channels inbox + trigger engine — see /channel subcommands
/websearchManage web search provider (status, list, provider, reset)
/policySession security-policy mode (status, mode auto, mode interactive) — see Session Policy Mode
/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)
/agentsLive agent runs as a tree (list, show <id>, cancel <id>) — see Agent Squad
/boardSquad work board (list, show, create, move, assign, note, archive) — see Agent Squad
/taskgraphTask graph runs (status, show, list, dash, prune, cancel) — watch a DAG execution mid-run, see Task Graph
/dashLive dashboard of the whole runtime (open, url, status, off): a real-time graph of agents, LLM, tools, skills, MCP, the seven patterns, background work and connections across every chatcli process on the machine. Works mid-run and over ACP; chatcli dash serves it from a terminal of its own. See Live Dashboard
/mailSquad mail (list, send <agent> <text>, pending) — see Agent Squad
/parkedList agents parked via @park — prune 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
/park-note/park-note <message> sends a directive to the parked agent — delivered as an instruction when it resumes
/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; every participant gets a chat turn’s briefing + read-only tools (knowledge, CCR recall, memory) (CHATCLI_MOA_MODELS); --layers N adds cross-review rounds where each model revises after reading the others — 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, with the full ChatCLI experience: chat through the complete pipeline (ask_chatcli — memory, contexts, skills, knowledge), the real agent/coder loops (agent_task, coder_task), session management (manage_session), every built-in tool, skills as prompts, local state as chatcli:// resources and conversation-hub continuity. 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): chat/agent/coder session modes, structured tool-call and plan updates, slash commands from the IDE prompt, native permission dialogs and session/load restore (live state or the autosave mirror, with the conversation replayed), for JetBrains IDEs, Zed and any ACP client. See ACP — ChatCLI inside your IDE.

​
/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 resealRewrite every store under the state root with the current encryption key (plaintext files get sealed; retired keys are migrated). With CHATCLI_ENCRYPTION_KEY=off it writes every store back in plaintext, the way back to an older version. See Encryption at Rest
/config security reveal [<file>] [--out <path>] [--force]Read one sealed store file in plaintext without unsealing it on disk. With no file, list the sealed files (relative to the state root; Tab completes them). --out writes an opened copy (mode 0600, outside the state root, no overwrite without --force). Interactive terminal only. See Encryption at Rest
/config security use-keychainWith CHATCLI_ENCRYPTION_KEY set, move every store to the OS keychain key, after which the variable can be removed. With the default key still in ~/.chatcli/.auth-key (the keychain held a different key), move that same key into the keychain, keeping the keychain’s previous value as auth-key.previous
/config security recovery-key [--save <file> | --restore <file>]Show the recovery key behind the default keychain key (interactive terminal only); kept outside the machine, it opens your data anywhere as CHATCLI_ENCRYPTION_KEY. --save writes it to a passphrase-protected file; --restore opens such a file and moves your data onto this machine’s keychain key
/config security verify-audit [path]Re-hash the tamper-evident audit trail and report the first broken line, sealed count, rotation origin and torn tail
/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 list—Lists 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 ack—Marks every message as read, clears the pending notify banner. Returns how many entries were cleared
/channel inject—Injects 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 pause—Pauses the trigger engine. Messages keep entering the ring/persistence, but no Action is emitted (zero banners, confirms, autos) while paused
/channel resume—Reactivates the trigger engine
/channel rules—Lists active rules with name, mode, filters (server/channel/contentRegex) and configs (rate, dedup, tools)
/channel rules reload—Re-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 ReAct—always onBase loop
#2 Plan-and-Solve/planauto (complexity ≥ 6)JSON plan + ReWOO
#3 Reflexion/reflecton (on errors)Persisted lessons
#4 RAG + HyDE—offSemantic 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 updateAuto-update policy (CHATCLI_AUTO_UPDATE), detected install channel, current vs. latest release
/config providersEnv vars for each provider (OpenAI, Claude, Bedrock, Copilot, Devin CLI, 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 managedOrganization-managed defaults and locked policies in effect (file path, entries, precedence)
/config retentionLifecycle policy of every on-disk store in one view: machine sessions, transcript journals, park snapshots, cost snapshots and coder checkpoints (all on CHATCLI_SESSION_TTL, swept at boot; a checkpoint whose workspace is gone goes regardless of age), CCR archive TTL and size cap, task-graph runs, memory daily notes and fact cap, hub idle purge
/config memoryMemory injection mode, auto-recall gates, knowledge-graph settings, live graph node/edge stats, explicit link count and the vault (CHATCLI_MEMORY_VAULT, its directory, last sync)
/config selfevolveSkill self-evolution: mode (CHATCLI_SELFEVOLVE_MODE auto/suggest/off) + observability (skills authored by the engine vs. total). See Skill Authoring
/config commandsSlash-command catalog: every loaded template with its source, names refused for shadowing built-ins, scanned directories; reload forces a re-scan. See Slash Commands
/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) 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 compressionContext Compression (CCR): mode, threshold, CCR store, savings. Mutable — off/lossless/lossy/stats
/config outputOutput-token reduction: verbosity steering + effort routing. Mutable — full/concise/minimal, effort on|off
/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)
/modelsAlias of /model
/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. Every provider switch — /switch, /provider or the palette — starts the new provider on its model variable (OPENAI_MODEL, ANTHROPIC_MODEL, BEDROCK_MODEL, …), read from the environment first and then from the persisted configuration, falling back to the provider’s built-in default. It is the same resolution startup uses; see How model selection works.
# 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 (and its /models alias), /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, outline, map, checkpoint, cleanPlugin @coder
@browseropen, show, hide, wait, snapshot, text, find, click, type, clear, press, hover, select, upload, scroll, eval, screenshot, html, pdf, resize, tabs, tab, cookies, console, network, downloads, back, forward, reload, status, closeBrowser Automation
@forgepr-list, pr-view, pr-diff, pr-checks, pr-create, pr-comment, issue-list, issue-view, issue-comment, ci-status, ci-logs, detectGit Forge
@viewview (attach a local image to the conversation via the vision pipeline)Image Input (Vision)
@procstart (with pty:true), stdin, wait (pattern, timeout), status, logs (tail, grep), stop, remove, listAgentic Plugins
@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, add (append tasks), update (reword one), list, markAtomic Tools
@websearchsearchWeb Tools
@webfetchfetchWeb Tools
@schedulerschedule, wait, query, list, cancel, pause, resumeScheduler
@agentslist, show, cancelAgent Squad
@boardcreate, list, show, move, assign, note, link, archiveAgent Squad
@mailsend, inbox, historyAgent Squad
@parkdelay, until, for_url, for_cmd, list, noteAgent Park
@memoryremember, recall, list (facts with ids), forget (match + dry_run, or id), profile, timeline (dated episodes), neighbors (links →, backlinks ← and nearby notes), map (knowledge graph), link / unlink (explicit, persisted links between notes)Bootstrap & Memory
@skillcreate, update, list, show, remove, restore, stats, export, importSkill Authoring
@commandslist, get — the model discovers and expands slash-command templatesSlash Commands
@knowledgesearch (plus linked-document hints), get, toc, links (a document’s links and backlinks), listKnowledge Base
@modellist, use, reset, status, delegateModel Routing
Partial list — the full catalog (32 native tools) is auto-generated: run /plugin list in ChatCLI, or ask an agent for @tools list. Curated highlights live in Agentic Plugins.

​
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 (also binds it — turns are written through from then on)
/session load <name>Load a saved conversation (also binds it, and rotates the shared hub thread)
/session attach <name>Bind to a named session — loads it if it exists, creates it if not; every turn syncs both ways with other surfaces (see Cross-surface continuity)
/session detachKeep the conversation, drop the binding — turns stop writing through
/session statusShow whether (and to which session) the conversation is bound
/session listList all sessions
/session delete <name>Delete a session
/session newStart a clean session (unbinds and rotates the shared hub thread, like /newsession)
/session fork <name>Fork current session into an independent copy
/session export <md|jsonl> [path]Export the full transcript journal as Markdown or JSON Lines
/session transcript <search|show|export|stats>BM25 search, replay, export or stats over the transcript journal
/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 or code/infra corpora as a knowledge base)
/context update <name> ...Update existing context
/context attach <name>Attach context to current session (--rag [K] semantic retrieval, --full/-f whole content, --chunk(s), --priority, --weight <n> corpus weight when merging knowledge hits; large contexts auto-upgrade to RAG when embeddings are on)
/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 refresh <name>Re-index from the recorded source paths; only changed files are re-read and only changed passages re-embedded; unchanged corpora leave caches untouched
/context watch <name> [off] / watch list / unwatch <name>Filesystem watch (fsnotify) that refreshes the context automatically after edits settle (1.5 s debounce); outcome printed at the next prompt
/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
/context statusLive inspector: what the last assembled system prompt was made of (section by section, with cached-prefix marks), the conversation history by role, token estimates from the learned chars/token ratio, projected share of the model window and where auto-compact firesThe totals now include the prefix budget (half the window, floor 24K chars): how much of it the last prompt used and which sections were folded for budget (skills → knowledge digests → attachments).

​
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)
--rawPlain output without markdown or ANSI colors (for scripts and CI)
--realm <realm> / --agent-id <id>StackSpot realm and agent ID overrides
-v, --versionShow the version card (same output as /version)
-h, --helpPrint usage: every flag and every subcommand

​
Subcommands

chatcli --help lists every subcommand, and chatcli <subcommand> --help shows one.
  • chatcli storage
  • chatcli trust
  • chatcli eval
  • chatcli provider
  • chatcli server
  • chatcli healthcheck
  • chatcli connect
  • chatcli watch
  • chatcli update
The /storage command without a REPL, for cron jobs and scripts. Boots no provider.
FormDescription
chatcli storage [store]Inventory: files, size, policy and what the rules would remove now, per store
chatcli storage prune [store]Dry run: what the rules would remove, with the reason per item group
chatcli storage prune [store] --applyRemove it
--jsonMachine-readable inventory or outcome
Stores: costs, checkpoints, sessions, transcripts, parked, memory-pending, attachments, taskgraph, pulse, ccr, hub; every other store (memory, vault, skills, plugins, contexts, agents, commands, reflexion, scheduler, tokenizers, mcp, cache, logs) is inventoried and never pruned. Rules: the session TTL (CHATCLI_SESSION_TTL) on last write for machine sessions, transcripts, parks, cost snapshots, pending memory, saved attachments (the private copies of images attached in the web UI) and checkpoints; checkpoints whose workspace is a temp directory or no longer exists; cost snapshots started in a burst (four or more in one minute, at most two requests each — a test suite, never a person) on prune only; task-graph runs past 30 days; live-dashboard spools (pulse) of every process that is no longer running, never one that is still recording; the CCR archive’s TTL and size cap and the hub’s idle TTL, swept when applied. Named sessions, distilled memory and user content are never touched. --apply without prune is refused.
Marks a directory as trusted so its workspace files — the project .env, .chatcli/hooks.json and coder_policy.json — are loaded. Without trust, the REPL asks once per folder ([y/N], default No) and non-interactive modes never load them (a warning goes to stderr). See Non-interactive mode and the security hardening upgrade.
FormDescription
chatcli trust [dir]Trust dir (the current directory when omitted)
chatcli trust --listList the directories currently trusted
chatcli trust --revoke [dir]Revoke trust for dir (the current directory when omitted)
Offline evaluation harness: runs a suite of cases through the real binary in throwaway sandboxes, grades them, and gates CI. Full guide: Evals.
FormDescription
chatcli eval run [path]Run, grade, report and gate. path is a suite file or directory, default ./evals
chatcli eval list [path] [--filter …]The cases a run would execute
chatcli eval validate [path]Parse and validate only. Boots no provider and spends nothing
chatcli eval compare <baseline.json> <current.json>Compare two saved reports
Main run flags: --provider/--model (candidate), --judge-provider/--judge-model, --trials, --concurrency (default 2), --filter id,tag:x, --timeout, --max-cost, --out, --markdown, --baseline, --max-regressions, --tolerance, --min-pass-rate (default 1.0), --with-memory, --keep, --json, --quiet, --bin. Exit codes: 0 ok, 1 pass rate below --min-pass-rate, 2 usage or invalid suite, 3 regression against --baseline.
Provider plugins installed in ~/.chatcli/providers, without a REPL. Full guide: Provider Plugins.
FormDescription
chatcli provider install <path|url> [--trust <fingerprint>]Install a signed provider plugin bundle, trusting its publisher once (see Signature Verification)
chatcli provider listInstalled plugins with version, mode and login state, plus any that failed to load
chatcli provider login <name> [--input id=value]…Log in; --input answers prompt fields so CI and servers need no person
chatcli provider logout <name>Revoke the credential upstream (when supported) and delete it
chatcli provider test [flags] <plugin> [args…]Run the conformance kit against a plugin binary over stdin/stdout, exactly as ChatCLI talks to it
test flags: --input id=value (repeatable), --credential-file path (JSON credential instead of logging in), --model id, --timeout (default 30s), --json. Exit codes: 0 success, 1 failure (a check failed, a plugin failed to load, login failed), 2 usage error.
Starts ChatCLI as a gRPC server for remote access (alias chatcli serve). Every flag has an environment variable that sets its default.
FlagEnvDescriptionDefault
--port <int>CHATCLI_SERVER_PORTgRPC port50051
--token <string>CHATCLI_SERVER_TOKENShared bearer token (callers get the admin role)""
--tls-cert <path>CHATCLI_SERVER_TLS_CERTTLS certificate (the server accepts TLS 1.3 only). Needs --tls-key: one without the other refuses to start instead of serving plaintext""
--tls-key <path>CHATCLI_SERVER_TLS_KEYTLS private key. Needs --tls-cert""
--tls-client-ca <path>CHATCLI_SERVER_TLS_CLIENT_CACA bundle for client certificates; enables mTLS, every connection must then present a certificate. Requires --tls-cert and --tls-key""
--provider <name>LLM_PROVIDERDefault LLM providerFirst configured provider
--model <name>—Default modelProvider default
--metrics-port <int>CHATCLI_METRICS_PORTPrometheus /metrics and /healthz over plain HTTP, no authentication, on all interfaces; 0 disables it9090
--shutdown-delay <dur>CHATCLI_SERVER_SHUTDOWN_DELAYHow long the server keeps serving after SIGTERM, with health already NOT_SERVING, before it stops; lets a pod being replaced leave the Service endpoints and DNS before it refuses connections. 0 stops at once0
--enable-reflectionCHATCLI_GRPC_REFLECTION=trueRegisters gRPC server reflection; keep off in productionfalse
--fallback-providers <list>CHATCLI_FALLBACK_PROVIDERSComma-separated provider chain, in order; installed only when at least two of the listed providers resolve""
--fallback-max-retries <n>CHATCLI_FALLBACK_MAX_RETRIESRetries per provider before moving on2
--fallback-cooldown-base <dur>CHATCLI_FALLBACK_COOLDOWN_BASEBase cooldown after a provider failure30s
--fallback-cooldown-max <dur>CHATCLI_FALLBACK_COOLDOWN_MAXMaximum cooldown5m
--mcp-config <path>CHATCLI_MCP_CONFIGMCP servers config JSON (CHATCLI_MCP_ENABLED=true loads the default path)""
--watch-config <path>CHATCLI_WATCH_CONFIGMulti-target watcher config YAML""
--watch-deployment <name>CHATCLI_WATCH_DEPLOYMENTSingle K8s deployment to monitor (enables the watcher)""
--watch-namespace <ns>CHATCLI_WATCH_NAMESPACENamespace of that deployment"default"
--watch-interval <dur>CHATCLI_WATCH_INTERVALCollection interval30s
--watch-window <dur>CHATCLI_WATCH_WINDOWObservation window2h
--watch-max-log-lines <n>CHATCLI_WATCH_MAX_LOG_LINESMax log lines per pod100
--watch-kubeconfig <path>CHATCLI_KUBECONFIGKubeconfigIn-cluster or default
There are no flags for the bind address or for JWT: use CHATCLI_BIND_ADDRESS (unset means 127.0.0.1, or 0.0.0.0 inside Kubernetes) and CHATCLI_JWT_SECRET / CHATCLI_JWT_PUBLIC_KEY / CHATCLI_JWT_ISSUER / CHATCLI_JWT_AUDIENCE. On any bind that is not loopback the server refuses to start without a credential: a token, a client CA (mTLS) or JWT material that loads. JWT material that fails to load also stops the server when it is the only credential. The server answers the standard grpc.health.v1.Health service and /healthz on the metrics port, both without authentication.
One grpc.health.v1.Health/Check against a ChatCLI server; the server image’s HEALTHCHECK. Exit 0 when the answer is SERVING, 1 otherwise (the reason goes to stderr), 2 on a usage error. Boots nothing else.
FlagDefaultDescription
-addr <host:port>the local server’s port and bindServer address
-service <name>"" (the whole server)Service to ask about, e.g. chatcli.v1.ChatCLIService
-timeout <dur>4sHow long to wait for the answer
-tls-cert <path>the local server’s certificateCertificate the server serves; turns TLS on and is the only one trusted
-tls-server-name <name>the certificate’s first DNS name or IPName to verify it by
-tls-client-cert, -tls-client-keyCHATCLI_TLS_CLIENT_CERT, CHATCLI_TLS_CLIENT_KEYClient pair for a server that requires mTLS
The local server’s settings come from its CHATCLI_SERVER_* variables, overridden by the flags of the running chatcli server process, so the check follows a server configured either way. Details in Health checks.
Connects to a remote server via gRPC.
FlagEnvDescriptionDefault
<address>—Address (positional)
--addr <host:port>CHATCLI_REMOTE_ADDRAddress (flag)""
--token <string>CHATCLI_REMOTE_TOKENSent as authorization: Bearer; the shared token or a JWT""
--provider <name>—Override the server’s provider (DEVIN is not offered: the server image has no Devin CLI)""
--model <name>—Override the server’s model""
--llm-key <string>CHATCLI_CLIENT_API_KEYYour own LLM API key or OAuth token, forwarded to the server""
--use-local-auth—Use the credential from ~/.chatcli/auth-profiles.jsonfalse
--tls—TLS 1.3, verified with --ca-cert or the system CAs; the connection is TLS even without itfalse
--ca-cert <path>—CA certificate that verifies the server; implies --tls""
--client-id, --client-key, --realm, --agent-id—StackSpot credentials""
--ollama-url <url>—Ollama base URL""
-p <prompt>—Remote one-shot""
--raw—Unformatted outputfalse
--max-tokens <int>—Max tokens0
Without --tls the client still dials TLS with the system CAs; a plaintext server needs CHATCLI_ALLOW_INSECURE=true. A client certificate for mTLS comes only from CHATCLI_TLS_CLIENT_CERT and CHATCLI_TLS_CLIENT_KEY, together with --tls; there is no flag for it.The interactive session is bound to the server like the in-REPL /connect: the server’s plugins run remotely, /agent list and /agent skills add the server’s entries, /session offers remote sessions, /watch status queries the server’s watcher and /disconnect returns to the local provider. See Remote Connection.
Monitors K8s workloads with AI.
FlagEnvDescriptionDefault
--deployment <name>CHATCLI_WATCH_DEPLOYMENTDeployment (required unless --config)""
--config <path>—Multi-target watch config YAML""
--namespace <ns>CHATCLI_WATCH_NAMESPACENamespace"default"
--interval <dur>CHATCLI_WATCH_INTERVALCollection interval30s
--window <dur>CHATCLI_WATCH_WINDOWObservation window2h
--max-log-lines <n>CHATCLI_WATCH_MAX_LOG_LINESMax log lines per pod100
--kubeconfig <path>CHATCLI_KUBECONFIGKubeconfigIn-cluster or default
--provider <name>LLM_PROVIDERLLM provider.env
--model <name>—LLM modelProvider default
-p <prompt>—One-shot with K8s context""
--max-tokens <int>—Max tokens0
One-shot self-update for scripts and automation — the same flow as /update, without entering the REPL. Updates through the detected install channel (Homebrew, go install or verified binary self-replace); manual channels (Docker, source build) get instructions instead.
ArgumentDescription
(none)Check and apply through the detected channel
checkReport only — never applies
Exit codes: 0 updated or already on the latest version (including check), 1 check/apply failure or a manual channel with a pending update, 2 invalid usage. See Auto-Update for channel detection and the verified self-replace pipeline.

​
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 profileUser profile (name, role, company, location, skills, certifications, goals, interests, directives, stances, milestones, environment; 🔒 marks sensitive fields)
/memory profile set <field>=<value>Set/update a profile field. Lists upsert (restating supersedes the old entry); suffixes rewrite: goals_replace= overwrites all, goals_done=/goals_remove= delete. New keys: stance=position :: reason, milestone=, env_<key>=, directives=[scope:<project>] rule, sensitive_mark=
/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 timeline [q]Dated episode history; q filters by time (“3 meses atrás”, “april”, “2026-04”) and/or content
/memory compactForce memory compaction (LLM + old note cleanup)
/memory export [path]Export facts, episodes, topics, projects, profile and explicit links as JSONL (sealed only with a key from CHATCLI_ENCRYPTION_KEY; plaintext with the default keychain key)
/memory import <path>Merge a memory export; nothing is deleted
/memory recall <query>Dry-run auto-recall with the reason behind each fact
/memory whyWhy the last turn recalled what it recalled
/memory links <note>Links (→), backlinks (←) and nearby notes of a note of the knowledge graph; the note is a node id, a fact id, a title/alias or [[a wikilink]] (completion offers the graph’s hubs)
/memory link <from> -> <to> [--rel <relation>] [--note <why>]Draw an explicit link between two notes (persisted in links.json; → and quoted "a" "b" work too). An ambiguous name is refused with the candidate ids
/memory unlink <from> -> <to> [--rel <relation>]Remove links you drew (both directions). Links derived from the data (tags, projects, wikilinks, mentions) are explained instead
/memory vault [status|sync [--force]|path]The Obsidian vault of the graph (~/.chatcli/vault): last sync report, sync now (--force also regenerates notes you edited by hand), or print its directory

​
Compaction and Rewind

CommandDescription
/compactAutomatic compaction (3-level pipeline)
/compact <instruction>Guided compaction — preserves specific information
/autocompact [60% | 0.6 | 150k | default]Show or set, for this session, how full the window gets before auto-compact fires (percent, fraction or token count; default restores the mode default: 75% in chat, 60% in coder)Precedence: this override > the catalog’s per-model threshold > the mode default (0.75 chat, 0.60 agent/coder).
/rewindDisplay checkpoint menu for restoration
/rewind compactUndo the latest compaction (auto, /compact or recovery); journal-backed after a resume
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

  • Navigation
  • Editing
  • Paste
ShortcutAction
Alt/Option + arrowsMove cursor by word
Ctrl + arrowsMove cursor by word
Cmd + arrows / Home/EndBeginning/end of line
Esc+EscOpen rewind menu (double Esc within 500ms, only when input is empty)
/ or /menu + EnterOpen the command palette (arrows to navigate)
ShortcutAction
Alt + BackspaceDelete word to the left
Ctrl + WDelete word to the left
Ctrl + KDelete from cursor to end of line
Automatic detection via Bracketed Paste Mode:
  • Small pastes (150 chars or less): rendered normally
  • Large pastes (more than 150 chars): placeholder «N chars | M lines»
The actual content is preserved and sent when pressing Enter.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.