DeepSeek Harness Hub
← 返回列表

免费模型代理Dalailalama/zen-proxy

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

让 Claude Code 免密钥调用 Zen 免费模型

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/22 · 已提供中文文档

使用 OpenCode Zen 的免费模型(Ox Alpha、Big Pickle……),即可从 Claude Code 和任何兼容 OpenAI 的客户端调用,无需 API 密钥。零依赖。

综合分
28.2
GitHub 分
28.2
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Dalailalama/zen-proxy
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

Buy Me a Coffee https://buymeacoffee.com/dawgog

zen-proxy

从 Claude Code 以及任何兼容 OpenAI 的客户端(deepseek-harness、Cursor、Continue……)使用 OpenCode Zen 的免费模型——Ox Alpha(x-preview-f-free,100 万上下文)、Big Pickle,以及其他 -free 条目——无需 API 密钥、账户或每日限额。

单个文件,零依赖,Node 18+。

问题所在

Zen 的免费模型托管在 https://opencode.ai/zen/v1/chat/completions,并且完全无需身份验证即可使用。这也是问题所在:对于任何非空的 Authorization 请求头,该端点都会返回 401 Invalid API key——而几乎每个客户端都坚持要发送一个(pi-ai、OpenAI SDK、LiteLLM、claude-code-router……)。粘贴一个占位密钥就会得到 401;留空则客户端拒绝启动。

Claude Code 还有第二个问题:它只使用 Anthropic Messages API,而 Zen 仅以 OpenAI chat-completions 格式提供这些模型。

该代理的作用

Claude Code ──Anthropic /v1/messages──▶ zen-proxy ──OpenAI chat/completions,无 auth 请求头──▶ Zen
OpenAI 风格客户端 ──/v1/chat/completions──▶ zen-proxy ──(剥离 Authorization,修复怪癖)──▶ Zen

| 路由 | 发生的情况 |
|---|---|
| POST /v1/messages | 完整的 Anthropic ⇄ OpenAI 转换:流式事件、工具定义、tool_use/tool_result 往返、系统提示数组、剥离 cache_control、将 reasoning_content 呈现为思考块、映射用量 |
| POST /v1/messages/count_tokens | 本地估算(Zen 没有计数端点) |
| POST /v1/chat/completions | 透明直通,会丢弃 Authorization 请求头并重写 Zen 拒绝的内容:developer 角色 → system,max_completion_tokens → max_tokens,将 reasoning_effort 映射到唯一接受的值 low/high/max |
| GET /v1/models | Zen 的目录,默认仅免费模型(MODELS=all 表示全部),外加 ox-alpha 别名 |

/v1 前缀是可选的,且 CORS 是开放的,因此基于浏览器的客户端也能使用。

快速开始

git clone https://github.com/Dalailalama/zen-proxy
cd zen-proxy
node proxy.js          # 监听 http://127.0.0.1:4040

或者使用 bin/ 中的启动器(如果代理未运行,则在后台启动它):

| | Windows | macOS / Linux |
|---|---|---|
| 启动 / 停止代理 | bin\zen-proxy.cmd · bin\zen-proxy.cmd stop | bin/zen-proxy.sh · bin/zen-proxy.sh stop |
| 在 Ox Alpha 上运行 Claude Code | bin\claude-ox.cmd [claude args] | bin/claude-ox.sh [claude args] |

将 bin/ 添加到你的 PATH,即可将 claude-ox 和 zen-proxy 作为命令使用。在 macOS/Linux 上,运行一次 chmod +x bin/.sh。

Claude Code

claude-ox                      # 在 Ox Alpha 上进行交互式会话
claude-ox -p "explain this repo"
claude-ox --permission-mode acceptEdits
claude-ox 将每个模型别名(opus、sonnet、haiku、子代理、后台任务)都固定到
ox-alpha,这样就不会有任何内容泄漏到付费端点,同时告知 Claude Code 真实的 1M 上下文窗口
(CLAUDE_CODE_MAX_CONTEXT_TOKENS),并且不触碰普通的 claude —— 你正常的登录和
订阅继续正常工作。更喜欢按项目配置?将
examples/claude-code-settings.json 复制到
.claude/settings.local.json。

已在 Claude Code v2.1.205 上验证:工具调用(Write、Read、Bash)、流式传输、
上下文窗口显示以及 --permission-mode auto 均正常工作。请注意,在自动模式下,
“分类器”调用由 Ox Alpha 自身通过代理来应答 —— 将其视为便利功能,而非
Anthropic 的安全分类器。/model 提供一个“Ox Alpha (Zen, free)”条目;你输入的任何其他
模型名称都会原样传递给 Zen(/model big-pickle)。

deepseek-harness

该 harness 的 LLM 层(pi-ai)无法直接与 Zen 的免费端点通信 —— 它总是发送
Authorization 头,并使用 developer 角色 / max_completion_tokens。启动 zen-proxy,
然后将 examples/deepseek-harness.settings.yaml
合并到 ~/.dsh/settings.yaml(或在 Settings → Models 中添加自定义提供商,基础 URL 为
http://127.0.0.1:4040/v1,协议为 openai-completions,任意占位密钥,模型为
x-preview-f-free)。已在 deepseek-harness 0.1.1-rc.2 上验证,包括无头配置文件。

任何 OpenAI 兼容客户端

Base URL : http://127.0.0.1:4040/v1
API key  : anything non-empty (stripped before the request reaches Zen)
Model    : x-preview-f-free      (GET /v1/models lists the other free ones)

配置

全部通过环境变量进行;默认值在方括号中。

| 变量 | 含义 |
|---|---|
| PROXY_HOST / PROXY_PORT | 绑定地址 [127.0.0.1] / 端口 [4040] |
| UPSTREAM_URL | OpenAI 兼容端点 [https://opencode.ai/zen/v1/chat/completions] |
| UPSTREAM_MODEL | ox-alpha 以及每个 claude-* id 映射到的模型 [x-preview-f-free] —— 当 stealth 预览轮换时,将其指向任何其他免费 Zen 模型 |
| UPSTREAM_API_KEY | 对于 Zen 的免费模型留空;将其设置为通过同一代理使用付费 Zen 密钥 |
| MODEL_ALIAS | Claude Code 使用的名称 [ox-alpha] |
| REASONING_EFFORT | low / high / max,当客户端未发送时发送(Ox Alpha 无法禁用思考) |
| IMAGES | strip [default] 将图像块替换为文本占位符;forward 发送它们(Zen 的免费端点在长时间挂起后返回 503) |
| MODELS | free [default] 或 all 用于 GET /v1/models |
| DEBUG | 1 将每个请求/响应 JSON 转储到 /zen-proxy/ |

测试

npm test

在端口 4041 上启动代理,并针对 Zen 运行两个实时测试套件(需要网络):Anthropic
转换(流式帧、双向工具使用、带图像和过期内容的工具结果
思考块、count_tokens、错误映射)以及 OpenAI 直通(占位密钥
被剥离、developer 角色、max_completion_tokens、流式传输、工具、CORS)。

已知限制

- 图像:Zen 的免费端点会拒绝它们(503),因此默认情况下会被剥离。
- Zen 的免费端点偶尔会返回 500/503 或空流;代理会在暴露可重试错误之前最多重试三次,因此客户端可能会看到暂停而不是失败。
- count_tokens 是估算值;每次响应都会报告实际用量。
- Claude Code 的费用显示使用 Anthropic 的价格——Zen 不收取任何费用。
- 网页搜索 / 抓取服务器工具由 Anthropic 托管,无法通过网关使用。
- 隐身预览是临时的:提供商可以随时重命名、限流或撤回该模型,
并且你的提示词会发送给匿名第三方。不要发送机密或你
无法分享的代码。

为什么不直接用 OpenRouter?

你可以——OpenRouter 以 Anthropic 格式暴露相同的模型(stealth/ox-alpha),因此 Claude
Code 只需设置 ANTHROPIC_BASE_URL=https://openrouter.ai/api 和一个 OpenRouter 密钥即可工作。这个
代理适用于你不想创建账户,或触及免费层级请求限制的情况。

与 OpenCode、Anthropic 或 DeepSeek 无关联。MIT 许可。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群