OpenCode教程

markdown
2026年7月17日阅读约 7 分钟1,303 字

更新于 2026年7月17日

OpenCode 完整教程:轻量级 AI 编程助手

目录

  1. OpenCode 是什么?
  2. 安装与配置
  3. 核心概念
  4. 核心功能
  5. 配置详解
  6. 键盘快捷键
  7. 自定义命令
  8. MCP 与 LSP
  9. 对比总结

1. OpenCode 是什么?

1.1 一句话定义

OpenCode 是基于 Go 语言开发的轻量级终端 AI 编程助手,通过 TUI(终端用户界面)提供智能编码辅助,支持多种 AI 模型。

1.2 核心特点

特点 说明
轻量快速 Go 语言编写,启动快、资源占用低
多模型支持 OpenAI、Anthropic、Google Gemini、AWS Bedrock 等
TUI 体验 基于 Bubble Tea 的流畅终端界面
开源免费 MIT 许可证,完全透明
会话管理 SQLite 持久化存储对话
自动压缩 上下文超限时自动摘要

1.3 与 Claude Code / Codex CLI 的区别

┌─────────────────────────────────────────────────────────────┐
│                   定位差异                                   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   Claude Code          Codex CLI           OpenCode          │
│   ───────────         ─────────           ────────          │
│   功能最全面           高度可定制           最轻量           │
│   闭源生态             开源透明             开源极简         │
│   深度推理             精细控制             多模型支持        │
│   定时任务             自定义命令           快速响应          │
│                                                             │
└─────────────────────────────────────────────────────────────┘

1.4 统计数据

  • GitHub: 13.2k Stars | 1.5k Forks
  • 语言: 99.2% Go
  • 许可证: MIT
  • 状态: 已迁移至 Crush

2. 安装与配置

2.1 自动安装脚本(推荐)

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/opencode-ai/opencode/refs/heads/main/install | bash

安装指定版本:

curl -fsSL https://raw.githubusercontent.com/opencode-ai/opencode/refs/heads/main/install | VERSION=0.1.0 bash

2.2 Homebrew(macOS / Linux)

brew install opencode-ai/tap/opencode

2.3 AUR(Arch Linux)

# 使用 yay
yay -S opencode-ai-bin

# 使用 paru
paru -S opencode-ai-bin

2.4 Go 安装

go install github.com/opencode-ai/opencode@latest

前置要求: Go 1.24.0 或更高版本

2.5 源码编译

git clone https://github.com/opencode-ai/opencode.git
cd opencode
go build -o opencode
./opencode

2.6 快速启动

# 启动 OpenCode
opencode

# 开启调试日志
opencode -d

# 指定工作目录
opencode -c /path/to/project

3. 核心概念

3.1 非交互模式

OpenCode 支持单次提示模式,适合脚本和自动化:

# 运行单个提示
opencode -p "Explain the use of context in Go"

# JSON 格式输出
opencode -p "Explain the use of context in Go" -f json

# 静默模式(隐藏加载动画)
opencode -p "Explain the use of context in Go" -q

3.2 工作目录

# 指定项目目录
opencode -c /path/to/project

# OpenCode 会在该目录创建 .opencode/ 文件夹

3.3 会话管理

OpenCode 使用 SQLite 存储会话:

~/.opencode/
├── opencode.db          ← 会话数据库
├── sessions/            ← 会话文件
└── commands/            ← 自定义命令

4. 核心功能

4.1 AI 助手工具

工具 描述 必需参数
glob 按模式查找文件 pattern
grep 搜索文件内容 pattern
ls 列出目录内容 path
view 查看文件内容 file_path
write 写入文件 file_path, content
edit 编辑文件 多种参数
patch 应用补丁 file_path, diff
bash 执行 shell 命令 command
fetch 从 URL 获取数据 url
diagnostics 获取诊断信息 file_path

4.2 多 AI 提供商

支持列表:

提供商 示例模型
OpenAI GPT-4o, O1, O3, GPT-4.1
Anthropic Claude 3.5/4 Sonnet, Claude 4 Opus
GitHub Copilot 多种模型
Google Gemini Gemini 2.0, 2.5
AWS Bedrock Claude 3.7 Sonnet
Groq Llama 4, Qwen
Azure OpenAI GPT-4o, O1
自托管 本地模型

4.3 自动压缩

当对话接近上下文窗口限制时,自动触发摘要总结:

{
  "autoCompact": true  // 默认开启
}

4.4 MCP 协议

支持 Model Context Protocol,可连接外部工具。


5. 配置详解

5.1 配置文件位置

按优先级查找:

  1. $HOME/.opencode.json
  2. $XDG_CONFIG_HOME/opencode/.opencode.json
  3. ./.opencode.json(本地目录)

5.2 完整配置结构

{
  "data": {
    "directory": ".opencode"
  },
  "providers": {
    "openai": { "apiKey": "your-key", "disabled": false },
    "anthropic": { "apiKey": "your-key", "disabled": false },
    "copilot": { "disabled": false },
    "groq": { "apiKey": "your-key", "disabled": false },
    "openrouter": { "apiKey": "your-key", "disabled": false }
  },
  "agents": {
    "coder": { "model": "claude-3.7-sonnet", "maxTokens": 5000 },
    "task": { "model": "claude-3.7-sonnet", "maxTokens": 5000 },
    "title": { "model": "claude-3.7-sonnet", "maxTokens": 80 }
  },
  "shell": {
    "path": "/bin/bash",
    "args": ["-l"]
  },
  "mcpServers": {
    "example": { "type": "stdio", "command": "path/to/mcp-server", "env": [], "args": [] }
  },
  "lsp": {
    "go": { "disabled": false, "command": "gopls" }
  },
  "debug": false,
  "debugLSP": false,
  "autoCompact": true
}

5.3 环境变量

变量 用途
ANTHROPIC_API_KEY Claude 模型
OPENAI_API_KEY OpenAI 模型
GEMINI_API_KEY Google Gemini
GITHUB_TOKEN GitHub Copilot
GROQ_API_KEY Groq 模型
AWS_ACCESS_KEY_ID AWS Bedrock
AWS_SECRET_ACCESS_KEY AWS Bedrock
AWS_REGION AWS Bedrock 区域
LOCAL_ENDPOINT 自托管模型
SHELL 默认 shell

5.4 自托管模型

# 设置本地端点
LOCAL_ENDPOINT=http://localhost:1235/v1

或配置文件:

{
  "agents": {
    "coder": {
      "model": "local.granite-3.3-2b-instruct@q8_0",
      "reasoningEffort": "high"
    }
  }
}

6. 键盘快捷键

6.1 全局快捷键

快捷键 操作
Ctrl+C 退出应用
Ctrl+?? 切换帮助对话框
Ctrl+L 查看日志
Ctrl+A 切换会话
Ctrl+K 命令对话框
Ctrl+O 切换模型选择
Esc 关闭当前覆盖层

6.2 聊天页面

快捷键 操作
Ctrl+N 创建新会话
Ctrl+X 取消当前操作
i 聚焦编辑器
Esc 退出编辑模式

6.3 编辑器

快捷键 操作
Ctrl+S 发送消息(编辑器聚焦时)
Enter 发送消息(编辑器未聚焦时)
Ctrl+E 打开外部编辑器
Esc 失焦编辑器

6.4 会话对话框

快捷键 操作
/ k 上一个会话
/ j 下一个会话
Enter 选择会话
Esc 关闭对话框

6.5 权限对话框

快捷键 操作
/ 左右切换选项
Enter 确认选择
a 允许权限
A 本次会话允许
d 拒绝权限

7. 自定义命令

7.1 命令目录

用户命令:

  • $XDG_CONFIG_HOME/opencode/commands/ (通常是 ~/.config/opencode/commands/)
  • $HOME/.opencode/commands/

项目命令:

  • <PROJECT DIR>/.opencode/commands/

7.2 创建命令

文件名(不含扩展名)即为命令 ID。

创建 ~/.config/opencode/commands/prime-context.md:

RUN git ls-files
READ README.md

使用:user:prime-context

7.3 命令参数

使用 $NAME 占位符:

# Fetch Context for Issue $ISSUE_NUMBER

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

7.4 内置命令

命令 描述
Initialize Project 创建/更新 OpenCode.md 记忆文件
Compact Session 手动触发会话摘要

8. MCP 与 LSP

8.1 MCP 配置

{
  "mcpServers": {
    "example": {
      "type": "stdio",
      "command": "path/to/mcp-server",
      "env": [],
      "args": []
    },
    "web-example": {
      "type": "sse",
      "url": "https://example.com/mcp",
      "headers": {
        "Authorization": "Bearer token"
      }
    }
  }
}

8.2 LSP 配置

{
  "lsp": {
    "go": { "disabled": false, "command": "gopls" },
    "typescript": { "disabled": false, "command": "typescript-language-server", "args": ["--stdio"] }
  }
}

8.3 LSP 特性

  • 多语言支持
  • 诊断功能(错误检查、linting)
  • 文件监听

9. 对比总结

9.1 三工具横向对比

维度 Claude Code Codex CLI OpenCode
公司 Anthropic OpenAI 开源社区
语言 Node.js Rust Go
开源 ❌ 闭源 ✅ Apache 2.0 ✅ MIT
核心哲学 深度推理 精细控制 轻量多模型
记忆文件 CLAUDE.md AGENTS.md OpenCode.md
自定义命令 Skills Markdown Markdown
多代理
定时任务
会话持久化 自动记忆 SQLite
自动压缩
TUI 界面 终端 终端 Bubble Tea
MCP 支持
LSP 支持

9.2 选型决策树

需要什么?
│
├─ 需要 Claude 模型?
│   ├─ 需要深度推理 → Claude Code
│   └─ 只需快速查询 → OpenCode (Anthropic)
│
├─ 需要高度自定义?
│   └─ Codex CLI
│
├─ 需要最轻量?
│   └─ OpenCode
│
└─ 需要完整 AI 工程方法论?
    └─ Claude Code + Superpowers

9.3 各自最佳场景

工具 最佳场景
Claude Code 复杂项目、多文件重构、深度推理
Codex CLI 自定义工作流、极客用户、精细控制
OpenCode 快速查询、轻量工具、多模型切换

9.4 官方资源


附录:常见问题

Q1: 如何查看日志?

# 启动时加 -d 参数
opencode -d

# 运行中按 Ctrl+L

Q2: 如何切换模型?

  1. Ctrl+O 打开模型选择
  2. 使用 / 选择
  3. / 切换提供商

Q3: 自定义命令不生效?

  1. 检查文件位置:~/.config/opencode/commands/
  2. 检查文件名格式:command-name.md
  3. 重启 OpenCode

Q4: 如何使用自托管模型?

# 设置环境变量
export LOCAL_ENDPOINT=http://localhost:1235/v1

# 或配置文件
# ~/.opencode.json
{
  "agents": {
    "coder": {
      "model": "local-model-name"
    }
  }
}

本教程基于 OpenCode 官方文档编写,最后更新于 2026 年 7 月。

注意: OpenCode 项目已迁移至 Crush,新用户建议直接使用 Crush。