一、什么是 OpenCode?
OpenCode 是一款由社区驱动的 开源 AI 编程代理工具 。它不是单一依赖某个模型厂商,而是支持包括 Anthropic Claude、OpenAI GPT、Google Gemini 等数十种提供商,也可以连接本地模型。
核心特点:
- 多模型、多服务商支持(通过 Models.dev 提供的 provider 列表)
- 终端友好,可作为 CLI 工具也可集成 IDE
- 配置灵活,可通过 JSON 文件修改行为和模型设置
- 开源透明、没有数据锁定
项目地址:
https://github.com/sst/opencode (OpenCode 是一个开源 AI 编程代理工具,支持多模型与提供商自由切换)
二、如何安装 OpenCode
OpenCode 提供了 多种安装方式,你可以根据系统偏好选择:
官方一键安装脚本
macOS / Linux:
bash
curl -fsSL https://opencode.ai/install | bash
这会自动下载并安装最新稳定版。([opencode.ai][3])
npm / Bun / Yarn 安装
bash
npm install -g opencode-ai
或者:
bash
bun install -g opencode-ai
yarn global add opencode-ai
也支持 Homebrew/Brew 安装方式(macOS):
bash
brew install sst/tap/opencode
安装成功后可执行:
bash
opencode --version
检查是否安装成功。
三、OpenCode 配置基础
OpenCode 的行为由一个 JSON 配置文件控制,通常是:
opencode.json
或者支持带注释的:
opencode.jsonc
格式由官方 JSON schema 提供定义。
配置文件可以放在各种位置(按优先级合并加载):
✔ 当前项目根目录
✔ ~/.config/opencode/opencode.json (全局)
四、配置第三方 API(比如 Claude)
OpenCode 支持多种 LLM 提供商,你可以通过配置文件手动添加/覆盖 provider 信息。
1、如何在配置文件里启用 Claude(Anthropic)
假设你已经有 Claude 的 API Key(从 Anthropic 官方获取):
下面是在项目根目录下的 opencode.jsonc 示例:
json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"options": {
"baseURL": "https://api.anthropic.com/v1",
"apiKey": "YOUR_CLAUDE_API_KEY"
},
"models": {
"claude-3-5-sonnet": {
"name": "Claude 3.5 Sonnet"
}
}
}
}
}
解释:
"provider.anthropic":标明 Anthropic (Claude)提供商"options.baseURL":API 请求基础地址"options.apiKey":填入你的 Claude API Key"models":在 OpenCode 内使用该模型的别名及展示名称
这让 OpenCode 能识别并调用 Claude 模型。
2、Claude + OpenAI 兼容第三方 API 混合示例
如果你希望 一个项目中同时使用 Claude + 其他 OpenAI 兼容的第三方API服务,可以这样写:
json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"npm": "@ai-sdk/anthropic",
"name": "Anthropic Claude",
"options": {
"baseURL": "https://api.anthropic.com/v1", // 替换第三方URL
"apiKey": "YOUR_CLAUDE_KEY" // 替换第三方密钥
},
"models": {
"claude-3-5-sonnet": {
"name": "Claude 3.5 Sonnet"
}
}
},
"my-other-provider": {
"npm": "@ai-sdk/openai-compatible",
"name": "My OpenAI Compatible Provider",
"options": {
"baseURL": "https://api.myprovider.ai/v1", // 替换第三方URL
"apiKey": "MY_OTHER_KEY" // 替换第三方密钥
},
"models": {
"my-model-name": {
"name": "模型展示名称"
}
}
}
}
}