将本地 opencode CLI 封装为 OpenAI 兼容 API,支持流式/非流式聊天和工具调用(tool calling),智能体拥有完整能力(读写文件、执行命令等)。
opencode-api-deploy/
├── session-proxy.js # OpenAI 兼容代理(核心)
├── opencode-api-setup.md # 完整部署指南(博客风,另一台机器可读)
├── systemd/
│ ├── opencode-api.service # opencode serve 原生 API
│ └── opencode-session-proxy.service # session proxy(OpenAI 兼容层)
└── README.md
- 确保已安装 opencode 和 Node.js(推荐通过 mise 管理)
- 部署 opencode serve:
mkdir -p ~/.config/systemd/user cp systemd/opencode-api.service ~/.config/systemd/user/ systemctl --user daemon-reload systemctl --user start opencode-api.service systemctl --user enable opencode-api.service
- 部署 session proxy:
mkdir -p ~/.opencode-cli-proxy/bin cp session-proxy.js ~/.opencode-cli-proxy/bin/opencode-session-proxy.js cp systemd/opencode-session-proxy.service ~/.config/systemd/user/ systemctl --user daemon-reload systemctl --user start opencode-session-proxy.service systemctl --user enable opencode-session-proxy.service
- 测试:
curl -s http://127.0.0.1:18081/v1/models \ -H "Authorization: Bearer sk-gw-demo"
| 变量 | 默认值 | 说明 |
|---|---|---|
MODELS |
(自动获取) | 静态覆盖模型列表,用逗号分隔。设置了则跳过自动获取 |
OPENCODE_BIN |
(自动探测) | opencode 二进制路径。自动在 mise shims/ 和 PATH 中查找 |
OPCODE_HOST |
127.0.0.1 |
opencode serve 监听地址 |
OPCODE_PORT |
4096 |
opencode serve 端口 |
PROXY_PORT |
18081 |
代理服务端口 |
API_KEY |
sk-gw-demo |
客户端认证密钥 |
代理启动时自动执行
opencode models获取最新可用模型列表,无需手动配置。
详细说明见 opencode-api-setup.md。
- 不是
opencode run(一次性问答,无 agent 能力) - 而是 通过
/sessionAPI +/global/eventSSE 流直接调用 opencode serve 的会话引擎 - 工具调用:文本标记协议(
[TOOL_CALL: name] {json} [/TOOL_CALL]),转换为主流 OpenAItool_calls格式