OpenCode 详细使用技巧及案例指南

本文内容整理自知乎文章 《OpenCode 详细使用技巧及案例指南》,原作者:鲸落成古,访问地址:https://zhuanlan.zhihu.com/p/2015100901883402220

目录

1. 简介与安装

1.1 什么是 OpenCode?

OpenCode 是一个开源的 AI 编程助手,可作为终端界面、桌面应用或 IDE 扩展使用。它支持:

  • 多模型支持:75+ LLM 提供商,包括 Claude、GPT、Gemini 等
  • 多平台:终端、桌面应用、IDE 扩展
  • LSP 自动加载:自动加载正确的语言服务器
  • 多会话:可并行启动多个代理
  • 隐私优先:不存储代码或上下文数据
1.2 安装方式
# 官方安装脚本(推荐)
curl -fsSL https://opencode.ai/install | bash

# 使用 npm
npm install -g opencode-ai

# 使用 Bun
bun install -g opencode-ai

# 使用 Homebrew (macOS/Linux)
brew install anomalyco/tap/opencode

# Windows (使用 Chocolatey)
choco install opencode

# Windows (使用 Scoop)
scoop install opencode
1.3 初始配置
# 1. 运行 OpenCode 并连接提供商
opencode/connect

# 2. 选择 opencode 登录
# 3. 访问 opencode.ai/auth 获取 API Key
# 4. 粘贴 API Key 完成配置

# 5. 初始化项目
cd /你的项目目录
opencode/init

提示:建议将 AGENTS.md 文件提交到 Git,帮助 OpenCode 理解项目结构。

2. 基础入门

2.1 基本命令
命令 说明
opencode 启动 OpenCode
opencode -c 继续上次会话
/init 初始化项目分析
/connect 连接 LLM 提供商
/share 分享当前会话链接
/editor 打开外部编辑器
/undo 撤销上一次更改
/redo 重做上一次更改
/exit 退出 OpenCode
2.2 提问技巧

使用 @ 引用文件

# 直接询问关于特定文件的问题
How is authentication handled in @packages/functions/src/api/index.ts

使用 @ 模糊搜索文件

# 按文件名模糊搜索项目中的文件
@auth
@*.controller.ts
2.3 添加功能

Plan Mode(计划模式)
按 Tab 键切换到计划模式,此时 OpenCode 只会生成计划而不会实际修改代码。

# 切换到计划模式
<Tab>

# 描述你想要的功能
当用户删除笔记时,我们希望在数据库中将其标记为已删除。然后创建一个显示所有最近删除笔记的屏幕。用户可以从这个屏幕恢复笔记或永久删除它。

# 迭代计划
# 提供更多细节
我们希望使用我之前用过的设计来设计这个新屏幕。[图片 #1] 查看这张图片并将其作为参考。

提示:可以将图片拖拽到终端中,OpenCode 会扫描并将其添加到提示中。

切换到构建模式

# 切换回构建模式
<Tab>

# 让 OpenCode 执行计划
Sounds good! Go ahead and make the changes.
2.4 直接修改代码

对于更简单的修改,可以直接要求 OpenCode 进行修改:

# 直接要求添加功能
We need to add authentication to the /settings route. Take a look at how this is
handled in the /notes route in @packages/functions/src/notes.ts and implement
the same logic in @packages/functions/src/settings.ts

3. 进阶技巧

3.1 AGENTS.md 文件

创建 AGENTS.md 文件来指导 OpenCode:

# AGENTS.md

## 项目概述
这是一个使用 React + Node.js 的全栈项目

## 技术栈
- 前端: React 18, TypeScript, TailwindCSS
- 后端: Express, PostgreSQL, Prisma

## 代码规范
- 使用函数式组件
- 组件文件以 .tsx 结尾
- 使用 CSS Modules 进行样式管理

## 重要文件结构
- /src/components - React 组件
- /src/hooks - 自定义 hooks
- /src/api - API 路由处理
3.2 多会话并行处理

OpenCode 支持启动多个代理并行处理同一项目:

# 在不同终端窗口中运行
opencode

# 每个会话都是独立的,可以并行处理不同任务
3.3 自定义 Rules

.opencode/rules.md 中添加项目特定的规则:

# .opencode/rules.md

## 代码审查规则
- 所有 PR 需要至少 2 人 review
- 必须包含单元测试

## 提交规范
- 使用 conventional commits 格式
- 类型: 描述
3.4 常用快捷键
快捷键 说明
Tab 切换 Plan/Build 模式
Ctrl+C 取消当前操作
Ctrl+K 搜索命令
Ctrl+P 命令列表
Ctrl+T 切换模型变体
↑/↓ 导航历史消息

4. 高级用法

4.1 自定义 Tools

创建自定义工具扩展 OpenCode 功能:

// .opencode/tools/my-tool.ts
import { tool } from "@opencode-ai/plugin"

export default tool({
  description: "执行自定义操作",
  args: {
    input: tool.schema.string()
  },
  async execute(args, context) {
    // 自定义逻辑
    return { result: 'success' }
  }
})

注意:自定义工具需放在 .opencode/tools/ 目录下。

4.2 MCP 服务器集成

配置 MCP (Model Context Protocol) 服务器,注意使用 JSON 格式:

// opencode.json
{
  "mcp": {
    "filesystem": {
      "type": "local",
      "command": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
    },
    "github": {
      "type": "local",
      "command": ["npx", "-y", "@modelcontextprotocol/server-github"],
      "environment": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}
4.3 自定义 Commands

创建自定义命令,需将命令文件放在 .opencode/commands/ 目录:

---
description: 运行测试
agent: build
---

运行完整的测试套件并显示结果。
4.4 连接到其他 LLM 提供商

Anthropic (Claude)

/connect
# 选择 Anthropic
# 输入 API Key

OpenAI (GPT)

/connect
# 选择 OpenAI
# 输入 API Key

自定义 Provider

// opencode.json
{
  "providers": [
    {
      "name": "custom",
      "apiKey": "${OPENAI_API_KEY}"  // 使用环境变量
    }
  ]
}
4.5 性能优化
  • 使用 /init:首次运行时初始化项目分析
  • 合理使用计划模式:复杂功能先计划再执行
  • 批量操作:将相关修改合并为一个请求

原文链接:OpenCode 详细使用技巧及案例指南
原作者:鲸落成古
发布时间:2024年

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐