CodeWhale
Section 02 · 文档

文档Documentation

工作原理简述。完整架构请参阅仓库中的 docs/ARCHITECTURE.md

模式Modes

三种运行模式——与审批系统正交。按 Tab 切换。

Plan 计划

只读调查。可以 grep、读文件、列目录、抓取 URL——不能写入或执行 shell。

Agent 代理

默认模式。多步工具调用。Shell 和有副作用的工具按 approval_mode 设置审批。

YOLO 全权

自动批准所有操作并启用信任模式。工作区边界解除。请谨慎使用。

工具Tools

精选工具集——设计思路详见 docs/TOOL_SURFACE.md

文件操作
read_file · list_dir · write_file · edit_file · apply_patch
搜索
grep_files · file_search · web_search · fetch_url
Shell
exec_shell · exec_shell_wait · exec_shell_interact
Git / 诊断 / 测试
git_status · git_diff · diagnostics · run_tests
子 Agent
agent_open · agent_eval · agent_close —— 持久会话,并行执行,通过 var_handle 读取大结果
递归 LM (RLM)
rlm_open · rlm_eval · rlm_configure · rlm_close —— 沙箱 Python REPL,内置 peek/search/chunk/sub_query_batch
MCP
mcp_<server>_<tool>——从 ~/.codewhale/mcp.json 自动注册

审批与沙箱Approval

模式与审批是两个独立的维度。通过 /config 设置。

suggest 建议

默认——按模式规则执行。危险操作前询问。

auto 自动

自动批准所有工具调用。等同于无信任的 YOLO。

never 拒绝

阻止任何非安全 / 非只读操作。仅限调查。

沙箱: bwrap、landlock (Linux)、process_hardening、seatbelt (macOS)、seccomp. 工作区边界默认为 --workspace/trust 可解除边界限制。

配置Configuration

# ~/.codewhale/config.toml
api_key = "sk-..."
base_url = "https://api.deepseek.com"
default_text_model = "deepseek-v4-pro"

[ui]
default_mode = "agent"      # plan | agent | yolo
approval_mode = "suggest"   # suggest | auto | never
reasoning_effort = "high"   # off | high | max

[hooks]
enabled = true
default_timeout_secs = 30

[[hooks.hooks]]
event = "session_start"     # tool_call_before / tool_call_after / message_submit / mode_change / on_error / shell_env
command = "~/.codewhale/hooks/pre.sh"

完整参考:config.example.toml

MCP 服务器MCP

codewhale 双向支持模型上下文协议:作为客户端从 ~/.codewhale/mcp.json 加载服务器,同时也可作为服务器暴露工具 (codewhale mcp)。工具以 mcp_<server>_<tool> 形式呈现。

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me"]
    },
    "sqlite": {
      "command": "uvx",
      "args": ["mcp-server-sqlite", "--db-path", "./data.db"]
    }
  }
}

技能Skills

技能是 ~/.codewhale/skills/<name>/ 下的一个文件夹,根目录包含 SKILL.md。Agent 启动时加载技能名称和描述, 在需要时通过 Skill 工具拉取完整内容。

Fin智能路由

Fin 是 CodeWhale 的模型自动路由层。它会分析每个任务的特征——复杂度、上下文大小、工具需求——然后自动将请求分发到最合适的模型后端。

Fast lane 快速通道

轻量任务(文件查找、fetch、简单 shell 命令)自动路由到 flash 级模型,降低延迟与成本。

Deep lane 深度通道

复杂推理、大型重构、多步规划自动升级到全尺寸推理模型。

提供商Providers

使用 codewhale auth set --provider <id> 切换。下表为 crates/tui/src/config.rs ApiProvider 枚举的实时投影,目前共 12 个。

DeepSeek
deepseek
DEEPSEEK_API_KEY
NVIDIA NIM
nvidia-nim
NVIDIA_API_KEY / NVIDIA_NIM_API_KEY
OpenAI-compatible
openai
OPENAI_API_KEY
AtlasCloud
atlascloud
ATLASCLOUD_API_KEY
Wanjie Ark
wanjie-ark
WANJIE_ARK_API_KEY / WANJIE_API_KEY / WANJIE_MAAS_API_KEY
OpenRouter
openrouter
OPENROUTER_API_KEY
Novita AI
novita
NOVITA_API_KEY
Fireworks AI
fireworks
FIREWORKS_API_KEY
Moonshot/Kimi
moonshot
MOONSHOT_API_KEY / KIMI_API_KEY
SGLang
sglang
SGLANG_API_KEY
vLLM
vllm
VLLM_API_KEY
Ollama
ollama
OLLAMA_API_KEY

开放模型方向:CodeWhale 正在扩展对 OpenRouterHugging Face 自托管 模型的支持——从云端 API 到本地部署均可覆盖。

快捷键Shortcuts

Tab切换模式(Plan / Agent / YOLO)
Shift+Tab切换推理强度
Ctrl+L清屏,保留会话
Ctrl+C取消当前轮次
Ctrl+D退出
/help斜杠命令面板
/config交互式编辑配置
/trust解除本会话的工作区边界