把 WorkBuddy/CodeBuddy 桌面端登录态转成本地 OpenAI/Anthropic 兼容 API
FastAPI 提供本地服务与三协议端点,httpx 转发腾讯后端,读取桌面端 auth 文件注入鉴权头,协议互转。
方案简介
workbuddy2api 是一个本地协议转换器,把已经登录好的 WorkBuddy / CodeBuddy(腾讯代码助手)桌面端登录态,转成你本机可直接使用的 OpenAI / Anthropic 兼容 API。
它不负责登录,不模拟桌面端,也不替你执行工具。它只做三件事:读取本机登录态并注入鉴权头、在 OpenAI / Anthropic 协议和腾讯后端协议之间转换、对 Codex CLI 这类长上下文 agent 请求做后端友好的压缩投影。
适合人群:想复用 WorkBuddy 订阅的 OpenAI 兼容客户端用户、想让 Codex CLI 直接接腾讯后端的用户、想让 Claude Code 通过 CC Switch 复用 WorkBuddy 支持的模型的用户。
亮点与能力
- 暴露
POST /v1/chat/completions、POST /v1/responses、POST /v1/messages、GET /v1/models、GET /health五个本地接口 - 用 Codex CLI 走
/v1/responses,适配 Responses 协议 - 用 Claude Code / CC Switch 走
/v1/messages,适配 Anthropic 协议 - 用 Cherry Studio / ZCode / LobeChat / NextChat / Open WebUI 走
/v1/chat/completions - 保留原生
tools/tool_calls/ 流式 SSE / 多轮工具调用 --desensitize压缩运行时提示、去掉 tool description、零宽脱敏高风险关键词- 附带中文 Web 管理后台:多账号自动轮转、冷却与积分耗尽避让、凭据刷新、每日自动签到、API Key 管理、概览页统计
组成与分工
- WorkBuddy / CodeBuddy 桌面端:登录态来源,提供
*.infoauth 凭据文件 - copilot.tencent.com:腾讯后端,转换器把请求转发到这里
- FastAPI:转换核心,
core/converter.py是主入口的 FastAPI 服务 - Uvicorn:本地服务运行载体(依赖之一)
- httpx:依赖清单声明的 HTTP 客户端,负责对腾讯后端的转发
- Codex CLI:通过
/v1/responses接入的 agent 客户端 - Claude Code / CC Switch:通过
/v1/messages接入的 Anthropic 协议客户端 - Cherry Studio / LobeChat 等:通过
/v1/chat/completions接入的 OpenAI 兼容客户端
前置要求
你需要先满足这 3 个条件:
- 本机已经安装并登录 WorkBuddy / CodeBuddy 桌面端
- 本机有 Python 3.8+
- 已安装依赖
fastapi、uvicorn、httpx
默认登录态位置:
- macOS:
~/Library/Application Support/CodeBuddyExtension/Data/Public/auth/*.info - Windows:
%LOCALAPPDATA%\CodeBuddyExtension\Data\Public\auth\*.info - Linux:
~/.local/share/CodeBuddyExtension/Data/Public/auth/*.info
实施步骤
1. 克隆并安装依赖
推荐用 uv:
bash
git clone https://github.com/ShouZhuo0413/codebuddy2openai.git workbuddy2api
cd workbuddy2api
uv venv
uv pip install -r requirements.txt
也可以用虚拟环境:
bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
2. 启动服务
bash
uv run python -m core.converter --desensitize --log converter.log
看到监听 http://127.0.0.1:8787 就说明已经起来了。
3. 接入 Codex CLI
把下面配置合并到 ~/.codex/config.toml:
toml
[model_providers.workbuddy]
name = "WorkBuddy (via local converter)"
base_url = "http://127.0.0.1:8787/v1"
wire_api = "responses"
env_key = "CODEBUDDY2OPENAI_KEY"
[profiles.workbuddy]
model = "glm-5.2"
model_provider = "workbuddy"
设置占位环境变量并启动:
bash
export CODEBUDDY2OPENAI_KEY=any-value
bash
codex --profile workbuddy "你的任务描述"
4. 接入 Claude Code / CC Switch
在 CC Switch 里配置 base_url 为 http://127.0.0.1:8787/v1/messages,模型名必须填写腾讯后端支持的真实模型名。
5. Docker 部署(可选)
bash
bash deploy/one-click/deploy.sh
或独立转换器:
bash
docker run -d --name workbuddy2api -p 8787:8787 \
-v ~/Library/Application Support/CodeBuddyExtension/Data/Public/auth:/data/auth:ro \
-e CODEBUDDY_AUTH_DIR=/data/auth \
workbuddy2api
使用与配置要点
快速自检:
bash
curl http://127.0.0.1:8787/health
curl http://127.0.0.1:8787/v1/models
如果这两条能通,说明本地服务、登录态、基本路由都没问题。
常用启动参数:
bash
python3 -m core.converter --desensitize
python3 -m core.converter --api-key mysecret
python3 -m core.converter --port 9000
--host默认127.0.0.1,--port默认8787--api-key给本地客户端加一层鉴权--log记录请求与响应日志--desensitize压缩运行时提示、去掉 tool description、零宽脱敏高风险关键词--no-compact配合--desensitize使用,保留更完整的原始 system prompt
其他 OpenAI 兼容客户端配置:Base URL http://127.0.0.1:8787/v1,API Key 留空或填 --api-key 设置值,模型名如 glm-5.2 / deepseek-v4-pro / kimi-k2.7 / auto。
注意事项与常见问题
- 找不到登录文件:桌面端没登录,或登录目录不在默认路径,先确认桌面端已真正完成登录
- 本地 401:启用了
--api-key但客户端没带同一个 key;后端 401:腾讯 token 失效,重新打开桌面端登录 - 被"敏感内容"拦截:是腾讯后端的内容审核,很多时候是 agent runtime 文本(如
DoS、exploit、credential)触发的;排查顺序:开--log→ 看请求体 → 看RESPONSES PROJECTION→ 开--desensitize→ 尝试--desensitize --no-compact --desensitize --no-compact下若仍命中审核,当前实现会自动退回紧凑模式重试一次- 模型名必须填腾讯后端支持的真实模型名,不做自动映射
- 管理后台为单进程设计,正式对外部署必须放在 HTTPS 反向代理之后
- Docker 部署需把宿主机登录态目录挂进去,容器里拿不到桌面端 auth 文件
优缺点
- ✓ 一套服务同时兼容 OpenAI 与 An
- ✓ 保留原生 tools/tool_call
- ✕ 不做 Anthropic 模型名到腾讯模
- ✕ 依赖腾讯后端内容审核,agent 文本易
出处
本方案挖掘自开源项目 ShouZhuo0413/codebuddy2api,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。