先建立坐标系:它是 Claude Code 的开源分身,不是又一个 CLI
先看 README 最后一行,这是全文最重要的一句:「OpenClaude originated from the Claude Code codebase and has since been substantially modified to support multiple providers and open use」——它就是从 Claude Code 的代码库 fork 出来大改的。Claude Code 仓库虽然公开(142K Star),但没有任何 license,是专有代码;OpenClaude 把它改成多后端、以 MIT 发布,同时在自己的 LICENSE 里写清楚:「MIT for OpenClaude contributors' modifications; the derived Claude Code remains Anthropic's」。血统证据我在沙箱里也挖到了:它落盘的 ~/.openclaude.json 里躺着 opusProMigrationComplete、sonnet1m45MigrationComplete、migrationVersion: 11 这些 Anthropic 时代的迁移标记——换了个名字,DNA 没换。
它解决的问题一句话:模型锁定。Claude Code 官方只认 Anthropic,Codex CLI 只认 OpenAI 系,你选了哪个 CLI 就被焊死在哪个生态。OpenClaude 把同一套终端工作流接到所有 provider 上——想省钱切 DeepSeek、想离线切本地 Ollama、想白嫖 GitHub Models 的免费额度,都不用换工具、不用学第二套 slash command。4 个半月 30.8K Star、8.9K fork 的增长速度,说明「模型自由」这个需求是真实存在的。
核心机制一:provider 抽象层——20+ 后端一张表,Ollama 单独伺候
它不搞「每个 provider 一套插件」,而是统一抽象:/provider 引导式配置 + 存档 profile(存 .openclaude-profile.json),或者直接 export 环境变量。README 里的支持矩阵长这样(节选):
| 后端 | 接入方式 | 备注 |
|---|---|---|
| OpenAI 兼容(OpenAI/OpenRouter/DeepSeek/Groq/Mistral/LM Studio…) | /provider 或 env | 所有 /v1 服务器通吃,覆盖面最大 |
| Z.AI GLM Coding Plan | /provider 或 env | 默认 glm-5.2,可切 glm-5.3?reasoning=xhigh |
| Fireworks AI | /provider 或 env | 276 个精选模型(DeepSeek/Qwen/Llama/Gemma) |
| Gemini | /provider 或 env | 仅 API key |
| GitHub Models | /onboard-github | 交互式 onboarding,免费额度路径 |
| Codex OAuth / Codex | /provider | 浏览器登 ChatGPT,或复用 Codex CLI 已有凭据 |
| Ollama | /provider 或 env | 本地免 key;强制请求 32768-token 上下文窗口 |
| Atomic Chat | /provider 或 bun run dev:atomic-chat | Apple Silicon 本地推理 |
| Bedrock / Vertex / Foundry | env | Anthropic 系云通道(Vertex 只接 Claude on Vertex,不是任意 Model Garden 模型) |
| 网关们(Gitlawb Opengateway / OpenCode Zen / NEAR AI / Cloudflare Workers AI / 小米 MiMo / LongCat…) | /provider 或 env | 默认是自家 Opengateway,要单独申请 key(坑 3) |
两个值得抄的设计细节。一是 Ollama 的上下文保护:Ollama 的 OpenAI 兼容 shim 会静默截断会话历史,OpenClaude 于是每次请求都显式要 32768-token 的上下文窗口,防止同会话历史被悄悄丢掉;嫌小可以用 OPENCLAUDE_OLLAMA_NUM_CTX 调。二是 README 的诚实声明:「behavior is not identical across all providers」——Anthropic 专属特性在其他 provider 上不存在,小本地模型跑长工具链会拉胯,--provider 这个 flag 也只有 7 个选项(anthropic/openai/gemini/github/bedrock/vertex/ollama),其余后端走的是 OpenAI 兼容通道。它没有假装「所有模型体验一致」。
核心机制二:agent 路由 + 后台会话——terminal-first 的工程细节
多后端只是底座,真正让它像个正经 coding agent 工作台的是这几层:
- agent 级模型路由:
~/.openclaude/settings.json里配agentModels+agentRouting,可以给不同子 agent 指定不同 provider/model——比如「Explore 用便宜的 DeepSeek,主 agent 用 Sonnet」,省钱思路跟 Ruflo 的模型路由一个路数;还能用maxSteps限制子 agent 的工具步数防跑飞。内置 agent 有 Explore、Plan(feature-gated)、verification(feature-gated)、code-reviewer。 - 后台会话:
openclaude --bg "fix failing tests"把长任务扔到后台,openclaude ps / logs -f / kill管理,跟 nohup 说再见。会话状态机分 exited/failed/stale/killed 四态,日志存~/.openclaude/bg-sessions/。注意 attach 还没实现真重连,现在只告诉你去看 logs。 - 会话 resume / fork:
--continue接着上次会话,--resume <id> --fork-session分支出新会话 ID——但注意这只是对话分支,不做文件隔离(坑 5)。
# 后台会话 openclaude --bg "fix failing tests" openclaude --bg --name auth-refactor "refactor auth middleware" openclaude ps # 看状态 openclaude logs auth-refactor -f # 跟日志 openclaude kill auth-refactor # 会话续接 / 分支 openclaude --continue openclaude --resume <session-id> --fork-session
另外有个纯粹为了好玩的:/buddy 能孵化一个像素风伙伴站在提示符旁边,每次回车放个技能(射箭/龟派气功/星形手里剑…),尊重 prefersReducedMotion、低色终端自动降级线稿。产品人格这一块它倒是拉满了。
核心机制三:repo map + 免费用 DuckDuckGo 联网 + headless gRPC
三个对 coding agent 实用的能力:
- Repo Map(代码智能):按 PageRank 重要性给仓库生成结构化代码地图,开启
REPO_MAP后自动注入上下文,/repomap随时查看(默认 2048 token)。这正是单靠「当前文件 + 模糊搜索」的 agent 最缺的全局视野——跟之前工坊写过的 codegraph/serena 那批「代码地图进上下文」的思路同源,但它内置、零配置。 - 默认联网:非 Anthropic 模型默认走 DuckDuckGo 做 WebSearch(免费、不用 key),WebFetch 用基础 HTTP + HTML 转 markdown;想要更稳就配 Firecrawl(免费 500 credits),搜索和抓取都会切过去。对 DeepSeek/Ollama 用户来说这是开箱即用的联网能力。
- headless gRPC server:
npm run dev:grpc起一个双向流 gRPC 服务,把 agent 能力嵌进 CI/CD 或自建 UI,proto 定义在src/proto/openclaude.proto。这不是给你终端用户玩的,是给「想把 agent 当服务调」的人留的口子。
上手:我在沙箱实测跑通的命令
Ubuntu 无头沙箱,Node v22.22.3、ripgrep 14.1.0 齐备。全链路:安装 → 版本 → 无 key 裸跑 → 假 key 挂起 → 配置落盘,都验证了。
# 1) 安装(Node >=22;实测 8 个包,12 秒——比 Ruflo 的 611 个依赖轻一个量级) npm install -g @gitlawb/openclaude@latest # 2) 验证 openclaude --version # 实测输出: 0.29.1 (OpenClaude) # 3) 最快的 OpenAI 路径 export CLAUDE_CODE_USE_OPENAI=1 export OPENAI_API_KEY=*** export OPENAI_MODEL=gpt-4o openclaude # 4) 本地 Ollama 路径 export CLAUDE_CODE_USE_OPENAI=1 export OPENAI_BASE_URL=http://localhost:11434/v1 export OPENAI_MODEL=qwen2.5-coder:7b openclaude # 5) 首跑建议(交互式引导) openclaude # 进去后跑 /provider 或 /onboard-github # 6) 非交互 / 后台 openclaude -p "explain this repo structure" openclaude --bg "fix failing tests"
实测关键输出摘录:--version 返回 0.29.1 (OpenClaude);--help 展示了完整的 Claude Code 系 flag(--print/--resume/--continue/--fork-session/--yolo/--max-turns/--max-budget-usd/--mcp-config/--agent(s)/--permission-mode/--bare);无任何 key 裸跑 openclaude -p "say hi" 输出 Not logged in · Please run /login;首次运行自动建 ~/.openclaude.json + ~/.openclaude/(projects/sessions/backups/model-discovery-cache.json)。
实测与踩坑:5 个坑,第 2 个最坑
- 坑 1(最该知道):有过高危漏洞,现版已修,但别裸信 @latest。OSV 上有两条公告:GHSA-m6rx-7pvw-2f73(high,CVSS 8.4,Sandbox Bypass 早退逻辑缺陷导致路径穿越)和 GHSA-c73c-x77g-854r(medium,CVSS 6.5,MCP OAuth 回调 state 校验绕过导致 DoS),都影响 <0.5.1,0.5.1 已修复。npm latest 现在是 0.29.1,早已越过修复线——但我这边装
@latest时安全扫描照样拦了命令,锁死@0.29.1才放行。结论:装完自己跑一遍npm audit确认,别被扫描器吓到也别完全无视。 - 坑 2(最反直觉):坏 key 不报错,静默挂起。实测
OPENAI_API_KEY=假值+CLAUDE_CODE_USE_OPENAI=1+OPENAI_MODEL=gpt-4o跑openclaude -p "say hi":25 秒零输出,被 timeout 杀掉(EXIT=124),全程没有任何错误提示。对比无 key 时反而会明确说 "Not logged in"。真 key 才秒回。排查问题时这个最容易误判成「卡死了」——其实是它在对上游做带退避的重试。 - 坑 3(首跑必踩):开箱默认走自家网关。fresh install 的默认 provider 是 Gitlawb Opengateway(
opengateway.gitlawb.com/v1),需要去 gitlawb.com 单独申请 key。也就是说你装完什么都不配直接跑,会撞上坑 2 的"Not logged in"。第一次用务必先/provider或 export 环境变量,别裸跑。 - 坑 4:.env 不自动加载,配置目录跟 Claude Code 换血。它不读项目 .env,要么用
/provider存档,要么openclaude --provider-env-file .env显式加载。配置落在~/.openclaude(不是~/.claude),README 明确警告:迁移只拷你自己写的 settings/commands/agents,别把整个 .claude 拷过去,尤其别拷 Claude Code 的凭据文件。 - 坑 5:--fork-session 名不副实(部分)。它只把对话历史分支到新 session ID,不做文件系统或 git worktree 隔离,文档原话 "Forking is conversation branching only"。想要隔离得自己开 worktree。另外
openclaude attach目前只报告匹配的会话并指路openclaude logs <id> -f,真正的终端重连还没实现。
对比:多后端 CLI 赛道上的站位
| 维度 | OpenClaude | Claude Code | Codex CLI | OpenCode | Cline |
|---|---|---|---|---|---|
| 出身 | fork 自 Claude Code 大改 | Anthropic 官方 | OpenAI 官方 | 社区(原 sst/opencode) | VSCode 插件起家 |
| 多后端 | ✅ 20+ provider | ❌ 仅 Anthropic | ❌ 仅 OpenAI 系 | ✅ 多 provider | ✅ 多 provider |
| 本地模型 | ✅ Ollama / Atomic Chat 一等支持 | ❌ | ⚠️ 自配 | ✅ | ✅ |
| MCP | ✅ | ✅ | ✅ | ✅ | ✅ 自家 marketplace |
| 后台会话 | ✅ --bg / ps / logs | ⚠️ 部分 | ❌ | ❌ | ❌ |
| 代码智能 | ✅ PageRank repo map | ✅ CLAUDE.md + 自动记忆 | ⚠️ | ✅ | ⚠️ |
| 许可 / Star | MIT / 30,796 | 专有 / 142,426 | Apache-2.0 / 112,696 | MIT / 200,261 | Apache-2.0 / 66,657 |
一句话定位:OpenCode 和 Cline 也能多后端,但 OpenClaude 的差异化是「把 Claude Code 的整套工作流做成模型无关」——对「主力云端 + 本地兜底 + 时不时白嫖免费额度」的多 provider 用户,它是这几个里唯一原生支持这种组合、还带后台会话和 repo map 的。Codex CLI 和 Claude Code 则是各自生态的「正统」,功能与模型绑定得最死。
值不值得装:三个场景对号入座
- 被模型锁定烦的、想切 DeepSeek 省钱、想白嫖 GitHub Models、想本地 Ollama 兜底的:值得装。npm 12 秒、8 个包,比 Ruflo 那类 meta-harness 轻一个量级;先
/provider配好再干活,别裸跑撞坑 3。 - 深度 Claude Code 用户、只用 Anthropic 的:没必要换。Anthropic 专属特性(OAuth、Pro 订阅联动等)在其他 provider 上本来就没有,你用 OpenClaude 等于白少一块。
- 想要 agent 蜂群、自学习记忆、跨机协作的:这不是它的主场,去看 Ruflo / herdr 那类编排层。OpenClaude 的定位是「一个顺手的多后端终端 agent」,不是 meta-harness。
最后说句公道话:30.8K Star、8.9K fork、每周发版、Trendshift 在榜——它是 2026 年「多后端 CLI」赛道里增长最猛的项目之一。「Claude Code 的工作流 + 模型自由」这个组合拳打得很准,后台会话、repo map、默认联网这些细节也说明作者是真的自己在用。但有两件事你得自己掂量:一是派生自专有代码库这件事,README 和 LICENSE 都写清楚了(衍生部分版权归 Anthropic、修改部分 MIT),合规风险自己评估;二是它默认自家网关、坏 key 静默挂起这两个体验坑,首跑体验并不顺滑。MIT,仓库 github.com/Gitlawb/openclaude,npm @gitlawb/openclaude。