OpenCode 最佳使用指南

2,353 阅读9分钟

什么是 OpenCode?

注: 本篇来自claude总结、介意请忽略!

OpenCode 是一个开源 AI 编码助手,专为终端环境设计。它不仅仅是一个聊天机器人,而是一个可以执行命令、搜索代码、调试错误和修改文件的智能编程伙伴。

核心特性

  • 🖥️ 原生终端界面 (TUI) : 响应式、可主题化的终端用户界面
  • 🔌 LSP 集成: 自动加载正确的语言服务器协议支持
  • 🤖 多模型支持: 支持 75+ LLM 提供商(Claude、GPT、Gemini、本地模型等)
  • 🔀 多会话管理: 可同时在同一项目上运行多个 Agent
  • 🔗 会话分享: 可分享会话链接用于参考或调试
  • 🔒 隐私优先: 不存储任何代码或上下文数据
  • 📱 多平台: 终端、桌面应用、IDE 扩展

快速开始

1. 安装 OpenCode

推荐方式 - 安装脚本:

curl -fsSL https://opencode.ai/install | bash

其他安装方式:

# 使用 npm
npm install -g opencode

# 使用 Homebrew (推荐使用 tap 获取最新版本)
brew tap opencode-ai/opencode
brew install opencode

# 或使用官方 formula (更新较慢)
brew install opencode

# 使用 Bun (Windows 支持进行中)
bun install -g opencode

# 使用 Arch Linux 的 paru
paru -S opencode

2. 配置 AI 模型

OpenCode 需要配置 LLM 提供商才能使用。对于新手,推荐使用 OpenCode Zen

方式 A: 使用 OpenCode Zen (推荐)

Zen 是 OpenCode 团队精选并测试过的模型列表,专为编码 Agent 优化。

# 运行连接命令
opencode auth login

# 选择 opencode
# 访问 opencode.ai/auth
# 登录并添加账单信息
# 复制 API 密钥并粘贴

方式 B: 使用其他 LLM 提供商

OpenCode 支持多种提供商,包括:

  • Anthropic (Claude)
  • OpenAI (GPT)
  • Google (Gemini)
  • AWS Bedrock
  • Groq
  • Azure OpenAI
  • 本地模型 (通过 Models.dev)

配置方法:

opencode auth login
# 选择你的提供商
# 输入 API 密钥

3. 初始化项目

# 进入你的项目目录
cd /path/to/your/project

# 启动 OpenCode
opencode

# 初始化项目 (推荐)
/init

初始化会:

  • 分析项目结构
  • 在项目根目录创建 AGENTS.md 文件
  • 帮助 OpenCode 理解项目结构和编码模式

重要:AGENTS.md 提交到 Git 仓库中。


核心功能详解

Agent 系统

OpenCode 有两种类型的 Agent:

1. 主 Agent (Primary Agents)

可以用 Tab 键在它们之间切换:

  • build (默认)

    • 完整权限的开发工作 Agent
    • 可以编辑文件、运行命令
    • 适合日常开发
  • plan (规划模式)

    • 只读分析 Agent
    • 默认拒绝文件编辑
    • 运行 bash 命令前会请求权限
    • 适合探索陌生代码库或规划变更

2. 子 Agent (Subagents)

专门化的辅助 Agent,可以被主 Agent 调用:

  • @general: 用于复杂搜索和多步骤任务
  • @search: 快速探索代码库,查找文件和关键词

调用方式:

@general 帮我找出所有使用了 Redis 的地方
@search 查找所有 API 端点定义

交互模式

1. 交互式模式 (默认)

# 启动交互式 TUI
opencode

# 在 TUI 中你可以:
# - 输入自然语言指令
# - 使用 Tab 切换 Agent
# - 使用 @ 搜索文件
# - 查看和批准建议的更改

2. 单次命令模式

适合脚本和自动化:

# 基本用法
opencode -p "解释 Go 中的 context 用法"

# JSON 格式输出
opencode -p "分析这个函数" -f json

# 静默模式 (无 spinner)
opencode -p "运行测试" -q

在此模式下:

  • 所有权限自动批准
  • 处理完成后自动退出
  • 支持多种输出格式

工具和能力

OpenCode 可以使用的工具包括:

  1. 文件操作

    • 读取、编辑、创建文件
    • 搜索文件内容
    • 查看目录结构
  2. 命令执行

    • 运行 bash 命令
    • 执行测试
    • 运行构建脚本
  3. 代码智能

    • LSP 支持(代码补全、跳转定义等)
    • 代码分析和重构建议
    • 错误诊断
  4. Web 获取

    • 查询文档
    • 获取外部信息

实用技巧和最佳实践

1. 文件引用快捷方式

# 在消息中引用文件
@filename.py

# 引用特定行
@filename.py#L37-42

# 在 IDE 中使用快捷键
# Mac: Cmd+Option+K
# Windows/Linux: Alt+Ctrl+K

2. 自定义命令

创建可重用的命令提示:

# 创建命令文件
~/.config/opencode/commands/your-command.md

命令文件示例:

---
description: 代码审查命令
---

你处于代码审查模式。专注于:
- 代码质量和可读性
- 潜在的 bug
- 性能优化机会
- 安全问题

提供建设性反馈,但不直接修改代码。

使用命令参数:

# 获取 Issue $ISSUE_NUMBER 的上下文

RUN gh issue view $ISSUE_NUMBER --json title,body,comments
RUN git grep --author="$AUTHOR_NAME" -n .

3. 自定义 Agent

创建专门的 Agent:

# 创建 Agent 配置
~/.config/opencode/agents/review.md

Agent 配置示例:

---
description: "代码审查专家"
model: "opencode/claude-sonnet-4"
temperature: 0.2
max_iterations: 5
tools:
  edit: false
  bash: ask
permissions:
  edit: deny
  bash: ask
---

你是一个经验丰富的代码审查专家...

4. Agent Skills

创建可重用的指令集:

# 项目级别
.opencode/skill/release/SKILL.md

# 全局级别
~/.config/opencode/skill/release/SKILL.md

Skills 文件示例:

---
name: release
description: 准备版本发布
---

准备标记发布时使用此技能。
如果目标版本方案不清楚,请提问。

步骤:
1. 检查当前版本
2. 更新版本号
3. 更新 CHANGELOG
4. 创建 git tag

5. IDE 集成

VS Code / Cursor / Windsurf 扩展

安装后可使用:

快捷键:

  • Cmd+Esc (Mac) / Ctrl+Esc (Windows/Linux): 在分屏终端中打开 OpenCode
  • Cmd+Shift+Esc (Mac) / Ctrl+Shift+Esc (Windows/Linux): 启动新会话
  • Cmd+Option+K (Mac) / Alt+Ctrl+K (Linux/Windows): 插入文件引用

功能:

  • 自动共享当前选择或标签页
  • 上下文感知
  • 点击 UI 中的 OpenCode 按钮

6. GitHub 集成

在 GitHub 工作流中使用 OpenCode:

# 设置 GitHub 集成
opencode github setup

使用场景:

  1. 问题分类

    /opencode 解释这个 issue
    
  2. 修复和实现

    /oc 修复 #123 中描述的 bug
    

    OpenCode 会:

    • 创建新分支
    • 实现更改
    • 提交 PR
  3. PR 审查

    /opencode 重构这个函数以提高可读性
    

配置优化

基础配置

配置文件位置: ~/.config/opencode/config.yaml

# 模型配置
model: opencode/claude-sonnet-4

# 温度设置 (0-1)
temperature: 0

# 最大迭代次数
max_iterations: 10

# 工具权限
tools:
  edit: true
  bash: ask
  webfetch: true

# 权限设置
permissions:
  edit: ask
  bash: ask
  webfetch: allow

主题定制

# 查看可用主题
opencode themes list

# 设置主题
opencode themes set <theme-name>

键位绑定

自定义快捷键以适应你的工作流程。


实战场景

场景 1: 探索陌生代码库

# 1. 启动 OpenCode
opencode

# 2. 切换到 plan 模式
# 按 Tab 键切换到 plan agent

# 3. 提问
"解释这个项目的整体架构"
"这个代码库使用了哪些主要的设计模式?"

# 4. 搜索特定功能
"@找到所有的 API 路由定义"

场景 2: 实现新功能

# 使用 build agent (默认)

# 1. 描述需求
"我需要添加一个用户认证中间件,要求:
- 验证 JWT token
- 支持角色权限
- 记录审计日志"

# 2. 让 OpenCode 规划
"先给我一个实现计划,不要修改代码"

# 3. 批准后实现
"好的,开始实现"

# 4. 审查更改
OpenCode 会显示将要做的更改,逐个确认或批准全部

场景 3: 调试问题

# 1. 描述问题
"运行测试时出现了 panic,帮我找出原因"

# 2. 让 OpenCode 调查
# OpenCode 会:
# - 查看测试输出
# - 分析相关代码
# - 定位问题根源

# 3. 修复
"请修复这个问题"

# 4. 验证
"运行测试确认修复"

场景 4: 代码审查

# 切换到 plan 模式
# 按 Tab 键

# 执行审查
"审查 src/handlers/user.go 中的代码,关注:
- 安全性
- 性能
- 错误处理
- 代码风格"

场景 5: 重构代码

"重构 processData 函数,使其:
- 更易读
- 减少圈复杂度
- 提高可测试性
- 保持相同的功能"

常见问题解决

问题 1: LSP 无法工作

# 检查 LSP 服务器安装
which pylsp
which typescript-language-server

# 测试 LSP 连接
opencode --test-lsp

# 重新安装语言服务器
pip install --upgrade python-lsp-server
npm install -g typescript-language-server

问题 2: API 配额限制

解决方案:

  • 使用 OpenCode Zen 设置月度消费限制
  • 切换到成本更低的模型
  • 使用本地模型

问题 3: 响应太慢

优化建议:

  • 使用更快的模型(如 GPT-4 Turbo)
  • 减少上下文窗口大小
  • 限制文件扫描范围
  • 使用 plan agent 进行只读操作

进阶技巧

1. 多会话工作流

# 终端 1: 功能开发
opencode

# 终端 2: 测试和调试
opencode

# 终端 3: 文档更新
opencode

每个会话独立运行,可以并行工作。

2. 会话分享和协作

# OpenCode 会为每个会话生成一个链接
# 你可以分享这个链接给团队成员
# 用于代码审查、问题讨论或调试

3. 与 CI/CD 集成

# 在 CI 脚本中使用
opencode -p "运行所有测试并生成覆盖率报告" -q -f json

4. 性能监控

# 启用详细日志
opencode --verbose

# 查看会话历史
opencode sessions list

# 重放会话
opencode sessions replay <session-id>

最佳实践总结

✅ DO

  1. 明确的指令: 提供清晰、具体的需求和约束
  2. 渐进式工作: 从规划开始,然后逐步实现
  3. 审查更改: 始终审查 OpenCode 建议的更改
  4. 提交 AGENTS.md: 帮助 OpenCode 理解项目上下文
  5. 使用合适的 Agent: build 用于开发,plan 用于探索
  6. 善用子 Agent: 利用 @general 和 @search 提高效率
  7. 创建自定义命令: 为重复任务创建可重用命令
  8. 设置权限: 根据任务类型配置合适的工具权限

❌ DON'T

  1. 盲目批准: 不要不审查就批准所有更改
  2. 模糊指令: 避免含糊不清的请求
  3. 过度依赖: 保持对代码的理解和控制
  4. 忽略安全: 谨慎处理敏感信息和凭证
  5. 跳过初始化: 不初始化项目会影响 OpenCode 的理解
  6. 混用模式: 不要在需要精确控制时使用 -q 模式

学习资源


总结

OpenCode 是一个强大的 AI 编码助手,它能显著提升开发效率。关键是:

  1. 理解 Agent 系统: 知道何时使用 build 和 plan
  2. 掌握交互方式: 熟练使用快捷键和命令
  3. 优化配置: 根据需求定制 Agent 和工具权限
  4. 循序渐进: 从简单任务开始,逐步探索高级功能