Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

opencode2api

opencode2api 是一个本地 HTTP 代理,把 OpenAI Chat Completions、OpenAI Responses 和 Anthropic Messages 风格的请求转发到 OpenCode 上游接口,并提供模型别名、reasoning/thinking 兼容、SOCKS5 / sing-box 代理和一个轻量管理面板。

这个项目不是 OpenAI、Anthropic 或 OpenCode 的官方项目。请遵守上游服务条款,并只在你有权限的环境中使用。

功能

  • OpenAI 兼容接口:/v1/chat/completions/v1/models
  • OpenAI Responses 兼容接口:/v1/responses
  • Anthropic Messages 兼容接口:/v1/messages
  • 流式 SSE 转换和 token 用量统计
  • 模型别名、reasoning effort 映射、强制禁用 thinking
  • 免费模型 -free 后缀隐藏与自动还原,统一走 OpenCode public 免费通道
  • 项目自身 API 密钥管理:/api/apikeys 生成、刷新、删除对外密钥
  • SOCKS5 直连、指定代理和轮询代理,支持 Clash 订阅导入与节点一键测速
  • VLESS / Trojan / SS / VMess / Hysteria2 节点经 sing-box 本地转换,代理节点一键测速
  • Web 管理面板:配置、用量统计、密钥管理、代理测速、版本检测与手动更新指引
  • GitHub Actions 自动构建并发布 Docker 镜像到 GHCR

快速开始

git clone https://github.com/super-mortal/opencode2api.git
cd opencode2api
cp config.example.json config.json
go run . -port 52000 -config config.json -password "change-me"

或使用 Docker 部署(推荐):

docker run -d --name opencode2api --restart unless-stopped \
  -p 52000:52000 \
  -e OPENCODE2API_PASSWORD="change-me" \
  -v opencode2api-data:/data \
  ghcr.io/super-mortal/opencode2api:latest

数据卷 /data 持久化 config.json 与统计,容器重建不丢配置。

健康检查:

curl http://127.0.0.1:52000/health

查看模型:

curl http://127.0.0.1:52000/v1/models

认证模式:

服务统一走 OpenCode public 免费通道,无需携带真实上游 key。客户端访问 /v1/* 接口的鉴权完全由本项目自身负责:

  • 未在管理面板配置任何对外密钥时,鉴权关闭,任意请求放行。
  • 配置了对外密钥后,客户端需携带 Authorization: Bearer <sk-…>x-api-key: <sk-…>,否则返回 401 invalid api key
  • 对外密钥在管理面板「密钥」页维护:支持多个、可删除、可刷新,刷新后旧密钥立即失效。

Chat Completions 示例:

curl http://127.0.0.1:52000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "hello"}],
    "stream": false
  }'

免费模型示例(gpt-4o-mini 会经别名解析为 gpt-4o-mini-free):

curl http://127.0.0.1:52000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-YOUR_API_KEY" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [{"role": "user", "content": "hello"}],
    "stream": false
  }'

命令行参数

-port string
    服务端口,默认 52000
-config string
    配置文件路径,默认 config.json
-password string
    管理面板密码,默认 123456;留空表示不启用登录验证
-debug
    输出调试日志(等价于将 -log-level 提升到 debug)
-log-level string
    日志级别: debug/info/warn/error,默认 info
-log-file string
    日志文件路径,默认 opencode2api.log;配合自动轮换
-log-stdout
    是否同时写 stdout,默认 true
-log-max-size int
    单日志文件最大 MB,默认 100
-log-max-backups int
    保留旧日志个数,默认 7
-log-max-age int
    旧日志保留天数,默认 14
-log-compress
    轮换后 gzip 压缩,默认 true
-log-bodies
    Debug 下记录截断的 body 形状摘要,默认 false
-version
    显示构建版本

第一次部署请务必修改 -password。如果把服务暴露到公网,建议只通过反向代理、访问控制或 VPN 暴露管理面板。

管理面板

打开 http://127.0.0.1:52000/ 可进入管理面板(默认密码 123456,首次部署必须修改)。面板支持:

  • 模型别名、reasoning effort 映射、强制禁用 thinking 配置
  • SOCKS5 / VLESS / Trojan / SS / VMess / Hysteria2 代理的增删改与一键测速
  • Clash / Clash Verge 订阅链接导入,识别节点后批量测速或逐个添加
  • token 用量统计(按模型汇总,可一键清空)
  • 对外 API 密钥管理(生成 / 刷新 / 删除 sk- 密钥)
  • GitHub 最新版本检测与手动更新命令指引

面板后端接口(均受 requireAuth 保护,未设密码时自动放行):

路由 方法 说明
/login /logout POST / GET 管理面板登录登出
/admin GET 管理面板页面
/api/config GET / POST 读取 / 保存配置(含运行时日志字段)
/api/stats GET / DELETE 读取 / 清空 token 统计
/api/reload POST 刷新 OpenCode 会话和模型列表
/api/apikeys GET / POST / DELETE 列出 / 生成 / 删除对外 API 密钥
/api/apikeys/regenerate POST 刷新指定密钥(旧密钥立即失效)
/api/models GET 返回模型列表(面板配置用)
/api/clash/import POST 导入 Clash 订阅链接并识别节点
/api/proxy/test POST 代理节点一键测速
/api/update/check GET GitHub 最新版本检测(仅检测不更新)

排障日志

默认同时写文件与 stdout。每个请求带 request_id(响应头 X-Request-Id),可串联:

request_started → request_plan → upstream_attempt* → upstream_result → stream_result|request_result → request_done

常见排查:

rg 'empty_reply=true' opencode2api.log
rg 'request_id=XXXX' opencode2api.log
rg 'promoted_reasoning=true' opencode2api.log

容器内默认日志路径是 /data/opencode2api.log(挂载卷持久化),可用环境变量覆盖:

  • OPENCODE2API_LOG_FILE
  • OPENCODE2API_LOG_LEVEL
  • OPENCODE2API_LOG_STDOUT

Docker Compose 部署

项目提供单独运行、Tor 代理、WARP 代理三套 compose 模版:

export OPENCODE2API_PASSWORD="change-me"
docker compose -f deploy/compose/compose.yml up -d

代理部署见 Docker Compose 部署模版

文档

许可证

本项目采用 MIT 许可证,自托管网关,代码完全开源,欢迎 Star 与贡献。

About

把 OpenCode 免费模型变成标准 API

Resources

Contributing

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages