OpenCode 接入
OpenCode 是开源的终端 AI 编码代理,仓库见 github.com/sst/opencode 。它支持任何 OpenAI 兼容的上游,把 provider 配成 ttttt.ai 即可。
1. 准备 API Key
登录 app.ttttt.ai → API 密钥 → 创建密钥(命名 opencode)。
2. 配置 ~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ttttt": {
"npm": "@ai-sdk/openai-compatible",
"name": "ttttt.ai",
"options": {
"baseURL": "https://api.ttttt.ai/v1",
"apiKey": "{env:TTTTT_API_KEY}"
},
"models": {
"gpt-6.1-sol": { "name": "GPT-6.1 Sol" },
"gpt-6-luna": { "name": "GPT-6 Luna" }
}
}
},
"model": "ttttt/gpt-6.1-sol"
}把密钥放到环境变量里更安全,避免 commit 进仓库:
export TTTTT_API_KEY="owo-..."
opencode3. 环境变量直跑(最快)
不想写配置文件,也可以直接走 OPENAI_* 环境变量:
export OPENAI_API_KEY="owo-..."
export OPENAI_BASE_URL="https://api.ttttt.ai/v1"
opencode --model openai/gpt-6.1-solOpenCode 在没有 opencode.json 的情况下会用 OPENAI_* 启动一个临时 provider。
4. 项目级覆盖
opencode.json 也可以放在仓库根目录(记得加进 .gitignore),
里面只覆盖 model 字段就够了:
{
"$schema": "https://opencode.ai/config.json",
"model": "ttttt/gpt-6-luna"
}这样不同项目可以用不同模型 —— 比如核心仓库用 gpt-6.1-sol,文档仓库用 gpt-6-luna 更省钱。
5. 验证
opencode --version
opencode "把这个文件里的 console.log 全改成结构化 logger"回到 app.ttttt.ai/dashboard/usage 按客户端筛选 OpenCode。
6. 常见问题
Q: 启动报 “provider not found”?
A: provider.ttttt.npm 必须是 @ai-sdk/openai-compatible;OpenCode 用的是 Vercel AI SDK 的 provider 系统,
名字必须完全匹配。
Q: 我想用 Anthropic 协议跑 Claude 系列?
A: 先通过 模型清单 或 GET /v1/models 确认目标模型在线且支持 Anthropic 协议。
确认后把上面的 npm 改成 @ai-sdk/anthropic、baseURL 改成 https://api.ttttt.ai,
并将 models 列表改成对应的在线模型 ID。协议配置示例不代表 Claude 系列模型已开放。
Q: OpenCode 的 sub-agent / tool 调用计费吗? A: 每次模型推理(包括 tool use 时的中间轮次)都按 token 计费。 OpenCode 本地的 shell / 文件读写不经过 ttttt.ai。