Features

June 5, 2026 · View on GitHub

The complete feature table. The README carries a condensed one-line-per-row version; this page keeps the full detail for every feature. Many rows also have a dedicated deep-dive guide — linked inline below and indexed in the README Documentation section.

FeatureDetails
Multi-providerAnthropic · OpenAI · Gemini · Kimi · Qwen · Zhipu · DeepSeek · MiniMax · Ollama · LM Studio · Custom endpoint
Interactive REPLreadline history, Tab-complete slash commands with descriptions + subcommand hints; Bracketed Paste Mode for reliable multi-line paste
Agent loopStreaming API + automatic tool-use loop
27 built-in toolsRead · Write · Edit · Bash · Glob · Grep · WebFetch · WebSearch · NotebookEdit · GetDiagnostics · MemorySave · MemoryDelete · MemorySearch · MemoryList · Agent · SendMessage · CheckAgentResult · ListAgentTasks · ListAgentTypes · Skill · SkillList · AskUserQuestion · TaskCreate/Update/Get/List · SleepTimer · EnterPlanMode · ExitPlanMode · (MCP + plugin tools auto-added at startup)
MCP integrationConnect any MCP server (stdio/SSE/HTTP), tools auto-registered and callable by Claude
Plugin systemInstall/uninstall/enable/disable/update plugins from git URLs or local paths; multi-scope (user/project); recommendation engine
AskUserQuestionClaude can pause and ask the user a clarifying question mid-task, with optional numbered choices
Task managementTaskCreate/Update/Get/List tools; sequential IDs; dependency edges; metadata; persisted to .cheetahclaws/tasks.json; /tasks REPL command
Diff viewGit-style red/green diff display for Edit and Write
Context compressionAuto-compact long conversations to stay within model limits. Four cooperating layers: (1) per-call dynamic max_tokens cap based on actual prompt size — input + output + 1024 safety ≤ ctx; (2) per-model context-window registry for Qwen 2.5/3, Llama 3.x, Mistral/Mixtral, Phi, Gemma, DeepSeek local variants — small-context local models no longer fall through to a stale 128k default; (3) two-layer compaction (snip + AI summarize) at 70% threshold; (4) auto-fanout when a single tool output exceeds 0.4 × ctx — split + parallel sub-LLM map calls + reduce. Custom-endpoint live /v1/models lookup backfills the real max_model_len. A per-session context_window override (/config context_window=<N>, 0 = model default) corrects a wrong default and feeds the prompt %, the compaction trigger, and the per-call output cap consistently — kept distinct from max_tokens (the output cap), and read live so switching model or window updates the % with no restart.
Auto-fanoutWhen a single tool result (Read on a 6.6 MB PDF, Grep over a giant tree, WebFetch of a long article) is too big to fit in the model's context window, instead of letting the next API call overflow, split it into chunks at paragraph boundaries with token overlap, dispatch parallel sub-LLM map calls (default cap 5 subagents), merge with one reduce call. Substitutes the merged summary in the conversation history. Transparent UX: [Auto-fanout: <Tool> returned ~N chars → dispatching K parallel sub-summaries]. Configurable: auto_fanout_enabled / _threshold / _max_subagents / _chunk_overlap_tokens. Critical for 32 K local models reading large source material.
Persistent memoryDual-scope memory (user + project) with 4 types, confidence/source metadata, conflict detection, recency-weighted search, last_used_at tracking, and /memory consolidate for auto-extraction
Multi-agentSpawn typed sub-agents (coder/reviewer/researcher/…), git worktree isolation, background mode
SkillsBuilt-in /commit · /review + custom markdown skills with argument substitution and fork/inline execution
Plugin toolsRegister custom tools via tool_registry.py
Permission systemauto / accept-all / manual / plan modes
CheckpointsAuto-snapshot conversation + file state after each turn; /checkpoint to list, /checkpoint <id> to rewind; /rewind alias; 100-snapshot sliding window
Plan mode/plan <desc> enters read-only analysis mode; Claude writes only to the plan file; EnterPlanMode / ExitPlanMode agent tools for autonomous planning
50+ slash commands/model · /config · /save · /cost · /memory · /skills · /agents · /voice · /proactive · /checkpoint · /plan · /compact · /status · /doctor · /theme · …
Console themes/theme lists 15 curated palettes (default · dracula · nord · gruvbox · solarized · tokyo-night · catppuccin · matrix · synthwave · midnight · ocean · monokai · cheetah · mono · none); each row shows a live info / ok / warn / err swatch in the theme's own colors. /theme <name> applies and persists the choice — also drives Rich's Markdown code-block style.
Voice inputRecord → transcribe → auto-submit. Backends: sounddevice / arecord / SoX + faster-whisper / openai-whisper / OpenAI API. Works fully offline.
Brainstorm/brainstorm [topic] generates N expert personas suited to the topic (2–100, default 5, chosen interactively), runs an iterative debate, saves results to brainstorm_outputs/, and synthesizes a Master Plan + auto-generates brainstorm_outputs/todo_list.txt.
SSJ Developer Mode/ssj opens a persistent interactive power menu with 15 shortcuts: Brainstorm, TODO viewer, Worker, Expert Debate, Propose, Review, Readme, Commit, Scan, Promote, Video factory, TTS factory, Monitor, Trading, Agent. Stays open between actions; /command passthrough supported.
Trading agent v3.1Automatic candidate discovery: /trading discover all scans an S&P 100 universe and surfaces tickers from four orthogonal sources — SEC EDGAR Form 4 insider clusters, recent ≥10% earnings beats with post-print drift, momentum-quality factor intersection, leading sector ETFs' top holdings — then merges with a cross-source confluence bonus. /trading rank composite-ranks candidates by factor + discovery + calibration tilt. /trading anomaly flags unusual volume / price gaps / vol regime spikes. /trading monitor scan --notify telegram slack wechat runs anomaly + stop-loss + earnings + new-insider-filing detection and dispatches alerts to bridges. Single-name analysis: /trading analyze <SYMBOL> runs a multi-agent pipeline (Bull/Bear → Judge → Risk Panel → PM) with macro / earnings / insider / sentiment / trends / book context auto-injected. /trading review runs incremental HOLD/ADD/TRIM/EXIT debate on existing positions. Autonomous mode: /trading manage start hundred 100 creates a virtual $100 portfolio that the agent allocates + rebalances via mean-variance optimization (step / report). Persistent paper-trade tracker → /trading calibration answers "is the agent any good?" with hit-rate by confidence + t-stat vs zero. Hard risk verifier enforces position / sector / stop / earnings-blackout caps. /trading walkforward does honest OOS rolling-chunk backtesting. /trading ml train builds a LightGBM stacker. Broker abstraction: PaperBroker works out of the box, IBKRBroker stub for pip install ib_insync + IB Gateway. Supports US/HK/A-share stocks and 20+ cryptos. See trading.md.
Monitor/monitor (no args → wizard) subscribes to AI-monitored topics on a schedule and pushes reports to Telegram/Slack/console. Topics: ai_research (arxiv), stock_<TICKER>, crypto_<SYMBOL>, world_news (Reuters/BBC/AP), custom:<query>. Schedules: 15m to weekly. Background scheduler daemon with /monitor start/stop/status. See extensions.md.
Research (multi-source)/research <topic> fans out to 20 sources in parallel and synthesizes a brief with inline citations, a cross-platform attention heat table, top-mentioned entities (models / benchmarks / orgs / people), and a 12-month publication trend sparkline: arXiv · Semantic Scholar · OpenAlex · HuggingFace Papers · alphaXiv · Google Scholar · HackerNews · GitHub · Reddit · StackOverflow · Google News · Polymarket · SEC EDGAR · Tavily · Brave · Twitter/X · 知乎 Zhihu · B站 Bilibili · 微博 Weibo · 小红书 Xiaohongshu. Supports --range 30d|6m|1y|… / --since YYYY-MM-DD / --until YYYY-MM-DD — each source translates to its native date filter. --citations surfaces "Notable citing authors" with ≥10k total citations. --expand asks the model for 2-6 sibling subqueries and merges their results for broader coverage. /research compare "A" vs "B" [vs "C"] produces a side-by-side comparative brief with [A-N]/[B-N]/[C-N]-prefixed citations. Every run auto-saves to ~/.cheetahclaws/research_reports/; /reports list|open|delete|path to browse, --save-as PATH to export. Weekly trend tracking: /subscribe research:<topic> weekly (or /ssj17. Trend Track) re-runs the whole pipeline automatically and pushes digests to Telegram / Slack / console. One-click wizard via /ssj16. Research / 17. Trend Track / 18. Reports. 13/20 sources zero-config; 7 optional (Tavily · Brave · Twitter · Zhihu · Weibo · Xiaohongshu · Google Scholar). See research.md.
Autonomous Agents/agent (no args → wizard) launches autonomous background agent loops driven by Markdown task templates. 4 built-in templates: research_assistant, auto_bug_fixer, paper_writer, auto_coder. Iteration summaries pushed via bridge. Custom templates: drop a .md file into ~/.cheetahclaws/agent_templates/. Output paths under ~/.cheetahclaws/: relative output filenames (e.g. research_notes.md) are auto-resolved to ~/.cheetahclaws/agents/<name>/output/<filename> so generated artifacts stay out of your CWD; absolute paths pass through unchanged. The Summary block + post-start info show the resolved absolute path in green so you always know where the file landed. Stagnation-stop: when the model emits the same summary N iterations in a row (default 3, whitespace-normalized), the loop stops with a clear notification instead of burning thousands of API calls — controlled by auto_agent_dup_summary_limit (0 disables). See extensions.md.
Remote Control job queueAll four bridges (Telegram/Slack/WeChat/QQ) maintain a per-bridge FIFO job queue when the AI is busy. !jobs / !j — dashboard; !job <id> — detail; !retry <id> — re-run a failed job; !cancel [id] — stop current job. Tool step tracking with on_tool_start/on_tool_end hooks. Persistent log at ~/.cheetahclaws/jobs.json. See bridges.md.
Worker/worker [task#s] reads brainstorm_outputs/todo_list.txt, implements each pending task with a dedicated model prompt, and marks it done (- [x]). Supports task selection (/worker 1,4,6), custom path (--path), and worker count limit (--workers). Detects and redirects accidental brainstorm .md paths.
Telegram bridge/telegram <token> <chat_id> starts a bot bridge: receive messages from Telegram, run the model, and reply — all from your phone. Typing indicator, slash command passthrough (including interactive menus), and auto-start on launch if configured. See bridges.md.
WeChat bridge/wechat login authenticates via QR code scan (same as WeixinClawBot / openclaw-weixin plugin), then starts the iLink long-poll bridge. context_token echoed per peer, typing indicator, slash command passthrough, session expiry auto-recovery. Credentials saved for auto-start on next launch. See bridges.md.
Slack bridge/slack <xoxb-token> <channel_id> connects to a Slack channel via the Web API (no external packages). Polls conversations.history every 2 s; replies update an in-place "Thinking…" placeholder. Slash command passthrough, interactive menu routing, auth validation on start, auto-start on next launch. See bridges.md.
QQ bridge/qq <appid> (secret via $QQ_SECRET) connects to QQ groups (@-mention) and C2C private chats through the official qq-botpy WebSocket SDK (pip install cheetahclaws[qq]). Replies stream as new messages (QQ has no edit API); per-target job queues, slash command passthrough, image input, supervisor reconnect with backoff, and permission prompts scoped to the originating chat. Secret precedence $QQ_SECRET > REPL arg > config; env secret never persisted. Auto-start on next launch. See bridges.md.
Video factory/video [topic] runs the full AI video pipeline: story generation (active model) → TTS narration (Edge/Gemini/ElevenLabs) → AI images (Gemini Web free or placeholders) → subtitle burn (Whisper) → FFmpeg assembly → final .mp4. 10 viral content niches, landscape or short format, zero-cost path available. See voice-and-video.md.
TTS factory/tts interactive wizard: AI writes script (or paste your own) → synthesize to MP3 in any voice style (narrator, newsreader, storyteller, ASMR, motivational, documentary, children, podcast, meditation, custom). Engine auto-selects: Gemini TTS → ElevenLabs → Edge TTS (always-free). CJK text auto-switches to a matching voice. See voice-and-video.md.
Vision input/image (or /img) captures the clipboard image and sends it to any vision-capable model — Ollama (llava, gemma4, llama3.2-vision) via native format, or cloud models (GPT-4o, Gemini 2.0 Flash, …) via OpenAI image_url multipart format. Requires pip install cheetahclaws[vision]; Linux also needs xclip.
Tmux integration11 tmux tools for direct terminal control: create sessions/windows/panes, send commands, capture output. Auto-detected; zero impact if tmux is absent. Enables long-running tasks that outlive Bash tool timeouts. Cross-platform (tmux on Unix, psmux on Windows).
Shell escapeType !command in the REPL to execute any shell command directly without AI involvement (!git status, !ls, !python --version). Output prints inline.
Proactive monitoring/proactive [duration] starts a background sentinel daemon; agent wakes automatically after inactivity, enabling continuous monitoring loops without user prompts
Force quit3× Ctrl+C within 2 seconds triggers os._exit(1) — kills the process immediately regardless of blocking I/O
Adaptive Markdown streamingResponses render as live Markdown, with the rendering tier auto-selected per device so streaming stays correct everywhere — no duplicated/stale frames over SSH, on macOS Terminal, or with wide (CJK / emoji) text. Three tiers: live — full in-place Rich redraw, used on terminals known to handle cursor-up reliably (local TTYs and modern emulators incl. over SSH: iTerm2, WezTerm, Windows Terminal, VSCode, kitty, Alacritty, Ghostty); commit — append-only progressive Markdown, the safe default for SSH/Apple Terminal/pipes, where each completed block renders and prints permanently (zero cursor movement, so it can never leave a duplicate frame) while the in-progress block appears when it closes; plain — raw tokens, only when rich is unavailable. Detection lives in ui.render.auto_stream_mode; override with /config stream_mode=live|commit|plain (legacy /config rich_live=true|false still works).
Spinner tipsWhile the model works, the spinner shows an elapsed timer plus a rotating Claude-Code-style "Tip:" line surfacing handy commands (/compact, /checkpoint, /research, …). Auto-disabled on dumb / macOS Terminal where multi-line cursor moves misbehave; toggle with /config spinner_tips=false.
Compact tool displayClaude-Code-style quiet output (on by default). Instead of printing a ⚙ Tool(...) line and a ✓ → N lines line for every tool call, the per-tool execution is hidden — the spinner conveys live activity and one summary line is emitted at the tool→text boundary (Read 2 files, ran 3 shell commands), sitting just above the reply. Errors and denials still surface so a mid-turn failure is never silent. In quiet mode the permission prompt also collapses a multi-line command to one line (Run: python3 << 'PYEOF' … (+59 行)) instead of dumping the whole script. /verbose overrides it (full per-tool lines + inputs + token counts); toggle with /quiet or launch with --show-tools (alias --no-quiet). The banner shows the active mode as Output: quiet / Output: full. Live status: while the model works, the spinner shows elapsed time plus a running token estimate (Thinking… (7s · ↓ 435 tokens), char-based since providers only report real usage at the end); each quiet turn then closes with a real-usage footer — ✻ Worked for 7.2s · ↑ 1.2k · ↓ 435 — using the true counts from TurnDone.
Context injectionAuto-loads CLAUDE.md, git status, cwd, persistent memory
Session persistenceAutosave on exit to daily/YYYY-MM-DD/ (per-day limit) + history.json (master, all sessions) + session_latest.json (/resume); sessions include session_id and saved_at metadata; /load grouped by date
Cloud sync/cloudsave syncs sessions to private GitHub Gists; auto-sync on exit; load from cloud by Gist ID. No new dependencies (stdlib urllib).
Extended ThinkingToggle on/off for Claude models; native <think> block streaming for local Ollama reasoning models (deepseek-r1, qwen3, gemma4)
Cost trackingToken usage + estimated USD cost
Token / cost budgets/budget sets and views spend caps — per-session or per-day, in tokens or USD (/budget \$5, /budget 200k, /budget daily \$20, /budget clear; or --budget \$5 at startup). One budget per scope: a new cap replaces the other unit for that scope (so switching tokens↔USD just works, no stale cap left blocking). Enforced before each model call, and tight — it projects the next request's input and clamps its output cap, so a single tool-heavy turn can't overshoot the budget. Warns at ≥80%/95%. When a cap is hit the session is auto-saved and you're shown how to /resume later or raise the same cap (the hint matches the breached unit) and continue — nothing is lost. Backed by quota.py; the daemon ships conservative defaults (200k tok / $2 per session) in serve mode.
Non-interactive mode--print flag for scripting / CI
Web UI--web opens the browser. Multi-user accounts (bcrypt + JWT), SQLite-persisted history, session CRUD + markdown export, light/dark/system theme, /health + /metrics, auto-picks a free port if 8080 is busy. pip install 'cheetahclaws[web]'. See web-ui.md.