# JoyCodeProxy
**Repository Path**: dihl/JoyCodeProxy
## Basic Information
- **Project Name**: JoyCodeProxy
- **Description**: https://github.com/vibe-coding-labs/JoyCodeProxy/
JoyCode API 代理 — 协议翻译成 Anthropic/OpenAI 兼容格式,让 Claude Code 直接调用 JoyCode支持的模型,比如GLM 5.1等
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-06-16
- **Last Updated**: 2026-06-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# JoyCodeProxy
**一个不太正经的协议翻译器**
让 Claude Code、Cursor 这类工具能直接用上 JoyCode 的模型
JoyAI-Code · GLM-5.1 · Kimi-K2.6 · MiniMax-M2.7 · Doubao-Seed-2.0-pro
[](https://go.dev/)
[](https://react.dev/)
[](./LICENSE)
---
> **免责声明:** 本项目仅供**个人学习和技术研究**使用。禁止用于商业转售、API 中转服务(**中转站属于违法行为**)、大规模薅号或任何黑灰产/违法违规活动。因不当使用造成的一切后果由使用者**自行承担**,与项目作者无关。本项目不是 JoyCode 官方产品。
---
## 起因
事情是这样的:JoyCode(京东的 AI 编程助手)里面有一些不错的模型,GLM、Kimi、MiniMax、Doubao 这些都有。但它的 API 协议跟 Anthropic 和 OpenAI 的不一样,所以 Claude Code、Cursor 这些主流编程工具接不上。
JoyCodeProxy 就是在中间做了一个翻译层,把协议对齐了。改两个环境变量,Claude Code 就能直接用 JoyCode 的模型了。
```
Claude Code / Cursor / Windsurf → JoyCodeProxy → JoyCode API
(协议翻译)
```
说白了就这点事,没有多复杂。做这个东西初衷是学习 Go 和了解 API 协议的差异,顺便给自己用着方便。
## 界面
自带一个管理后台,账号、用量、配置都能在上面看和改。
数据概览 — 请求量、Token 消耗、延迟统计、模型分布
账号管理 — 支持多个 JD 账号,扫码添加
账号详情 — 单个账号的用量、模型分布、请求记录
系统设置 — 默认模型、超时时间、日志保留,改完马上生效
## 能做什么
- **Anthropic + OpenAI 双协议** — 同时兼容 Anthropic Messages API 和 OpenAI Chat Completions API,Claude Code 和 Cursor 各走各的通道
- **Tool Use 完整翻译** — Claude Code 的工具调用(读写文件、执行命令等)完整映射,不影响正常使用
- **SSE 流式输出** — 实时流式返回,打字机效果
- **多模型可选** — JoyAI-Code、GLM-5.1、GLM-5、GLM-4.7、Kimi-K2.6、Kimi-K2.5、MiniMax-M2.7、Doubao-Seed-2.0-pro
- **多账号管理** — Dashboard 上扫码添加多个 JD 账号,每个账号有独立的 API Key
- **智能上下文截断** — 对话过长时自动截断早期消息,不会卡死,`/compact` 正常工作
- **单文件部署** — 前端打包进 Go 二进制,丢一个文件就能跑,也支持 Docker
## 怎么跑起来
### 构建
需要 Go 1.22+ 和 Node.js 18+。
```bash
# 先构建前端
cd web && npm install && npm run build && cd ..
# 再构建后端(前端会自动嵌入)
go build -o joycode_proxy_bin ./cmd/JoyCodeProxy/
```
或者用 Docker:
```bash
docker build -t joycode-proxy .
docker run -p 34891:34891 joycode-proxy
```
### 启动
```bash
./joycode_proxy_bin serve
```
默认监听 `0.0.0.0:34891`。macOS 首次启动会自动从本地 JoyCode 客户端读取凭据,不需要手动配。
### 接到 Claude Code
改两个环境变量就行:
```bash
export ANTHROPIC_BASE_URL=http://localhost:34891
export ANTHROPIC_API_KEY=joycode
claude
```
### 多账号
打开 `http://localhost:34891`,用 JD App 扫码添加账号。每个账号会生成一个独立的 API Key:
```bash
export ANTHROPIC_API_KEY=sk-joy-xxxx
claude
```
## API 端点
| 路径 | 说明 |
|------|------|
| `POST /v1/messages` | Anthropic Messages API,Claude Code 走这个 |
| `POST /v1/chat/completions` | OpenAI Chat Completions API,Cursor 走这个 |
| `POST /v1/web-search` | 网页搜索 |
| `POST /v1/rerank` | 文档重排序 |
| `GET /v1/models` | 拉取可用模型列表 |
| `GET /health` | 健康检查 |
| `GET /` | Dashboard 管理界面 |
## 项目结构
```
cmd/JoyCodeProxy/ 入口,HTTP 服务器
pkg/anthropic/ Anthropic 协议翻译(请求、响应、SSE 流式)
pkg/openai/ OpenAI 协议翻译
pkg/joycode/ JoyCode API 客户端
pkg/auth/ 凭据读取、JD 扫码登录
pkg/store/ SQLite 存储(账号、设置、请求日志)
pkg/dashboard/ Dashboard API
web/ 前端(React + Ant Design)
```
## 使用限制
- 每个用户最多配置 **10 个账号**,超出限制将无法添加或导入
- 使用本项目前,请确保你已了解并遵守 JoyCode 的服务条款
- 如果你觉得 JoyCode 的模型好用,建议去 [JoyCode 官方](https://joycode.jd.com/) 支持正版
## 许可证
Apache 2.0