OpenCode 安装与使用
OpenCode 是一个具备代理能力的编码工具。该工具可作为终端应用、桌面应用和 IDE 插件使用。
AI-School 建议 OpenCode 尤其适用于具有丰富编程经验的教师、管理员和学生。OpenCode 可以比 Aider 更独立地工作,因此能够更快地执行大量修改。
更多信息请参阅 OpenCode 官网 和 OpenCode 官方文档。
何时选择 OpenCode?
当用户具备以下条件时选择 OpenCode:
- 具备终端、代码编辑器和 git 的经验
- 理解本地文件如何被修改
- 能在使用前检查修改
- 想要实现更复杂的编程任务
对于带领初学者进行分组编程的课堂教学,通常更适合使用 Aider。
安装
按照 OpenCode 文档 的最简单安装方法为:
curl -fsSL https://opencode.ai/install | bash
你也可以通过 Node.js 安装 OpenCode:
npm install -g opencode-ai
或在 macOS 与 Linux 上使用 Homebrew:
brew install anomalyco/tap/opencode
连接到 Coderen
OpenCode 支持 自定义的 OpenAI 兼容提供者。在项目目录中创建一个文件 opencode.json。
在其中使用 Coderen 端点和允许的模型:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ai-school-coderen": {
"npm": "@ai-sdk/openai-compatible",
"name": "AI-School Coderen",
"options": {
"baseURL": "https://europe-west1-ai-school-pro.cloudfunctions.net/coderenOpenAiCompatibleApi/v1",
"apiKey": "{env:AI_SCHOOL_CODEREN_API_KEY}"
},
"models": {
"gpt-5.6-luna": {
"name": "GPT-5.6 Luna"
},
"gpt-5.6-terra": {
"name": "GPT-5.6 Terra"
},
"gpt-5.6-sol": {
"name": "GPT-5.6 Sol"
}
}
}
},
"model": "ai-school-coderen/gpt-5.6-luna",
"small_model": "ai-school-coderen/gpt-5.6-luna"
}
之后将 API 密钥设为环境变量。
你也可以在项目目录中使用一个 .env 文件:
AI_SCHOOL_CODEREN_API_KEY=ais.你的-api密钥
打开一个新终端后,检查 OpenCode 是否能够读取该变量。如果 OpenCode 未发送密钥,AI-School 将返回错误信息,指示需要 Authorization header 携带 Bearer token。
macOS 与 Linux
export AI_SCHOOL_CODEREN_API_KEY="ais.你的-api密钥"
Windows
setx AI_SCHOOL_CODEREN_API_KEY "ais.你的-api密钥"
之后再打开一个新终端。
启动 OpenCode
进入项目目录:
cd 路径/到/你的/项目
启动 OpenCode:
opencode
在 OpenCode 中使用模型选择来选择 AI-School Coderen 模型(如果尚未自动选择)。
解决问题
Authorization header with Bearer token is required
这条信息通常意味着 OpenCode 未发送 API 密钥。请检查:
AI_SCHOOL_CODEREN_API_KEY是否正是这个名称- 值是否以
ais.开头 - 是否在执行
setx之后打开了新的终端 - 项目目录中是否存在启动 OpenCode 的
.env文件
Unknown parameter
某些工具会额外发送提供者特定参数。如果收到如 “Unknown parameter” 的提示,请从 OpenCode 配置中移除此设置,或使用更简单的提供者配置。Coderen 端点期望的是符合 OpenAI 的聊天请求,包含模型、消息和常用的基础设置。
使用 OpenCode 的安全实践
由于 OpenCode 具备代理能力,检查修改内容非常重要。
推荐做法:
- 在 git 仓库中工作。
- 从小任务开始。
- 在使用代码前检查差异。
- 修改后测试应用程序。
- 只提交你能够理解的修改。
对于经验不足的学生,建议在教师的带领下先演示使用 OpenCode。