opencode

star 27

OpenCode 是开源、模型无关、终端优先的 AI 编码代理(AI coding agent),通过 AI SDK + Models.dev 支持 75+ LLM 提供商(Claude/GPT/Gemini/本地模型),以 opencode.json 配置即代码、细粒度权限、上下文压缩与 Token 优化、自定义 Agent/命令/MCP 扩展为核心,可在终端读改代码、跑命令、自主完成多步开发任务。

znlgis By znlgis schedule Updated 6/9/2026

name: opencode description: OpenCode 是开源、模型无关、终端优先的 AI 编码代理(AI coding agent),通过 AI SDK + Models.dev 支持 75+ LLM 提供商(Claude/GPT/Gemini/本地模型),以 opencode.json 配置即代码、细粒度权限、上下文压缩与 Token 优化、自定义 Agent/命令/MCP 扩展为核心,可在终端读改代码、跑命令、自主完成多步开发任务。 tags: [ai, agent, coding-agent, llm, terminal, tui, mcp, opencode]

项目地址: https://github.com/anomalyco/opencode

官网 / 文档: https://opencode.ai配置 Schema: https://opencode.ai/config.jsonTUI Schema: https://opencode.ai/tui.json

许可证: MIT

⚠️ OpenCode 迭代非常快,命令、配置字段与模型名称请以你当前版本的 opencode --help、TUI 内 /help 及在线 JSON Schema 为准。

概述

OpenCode 是一个以终端为核心的开源 AI 编码智能体(区别于 IDE 内联补全),可读代码、改代码、跑命令、调用工具,自主完成多步开发任务。核心理念是「模型无关 + 配置即代码」:

  • 模型无关:基于 AI SDKModels.dev 支持 75+ 提供商,云端(Claude/GPT/Gemini/Qwen)与本地(Ollama/LM Studio/llama.cpp)自由切换。
  • 权限系统:每类工具(edit/bash/read/webfetch 等)可设 allow/ask/deny,支持按命令、路径的细粒度规则。
  • 上下文与成本可控:自动压缩(compaction)、工具输出裁剪(prune)、小模型分流(small_model)。
  • 配置即代码opencode.jsonAGENTS.md、自定义命令/Agent/Skill 都是纯文本,可提交进 Git、团队共享。
  • 三种形态:TUI(终端交互)、CLI(opencode run 脚本化/CI)、Server/SDK(opencode serve 暴露 HTTP API)。
  • Git 快照/undo/redo 依赖项目为 Git 仓库,可随时撤销 AI 改动。

安装

# 一键安装脚本(最简单)
curl -fsSL https://opencode.ai/install | bash

# 包管理器
npm install -g opencode-ai          # Node 生态(npm/bun/pnpm/yarn)
brew install anomalyco/tap/opencode # macOS/Linux 官方 tap(更新最及时)
scoop install opencode              # Windows
sudo pacman -S opencode             # Arch
mise use -g opencode
nix run nixpkgs#opencode

opencode --version                  # 验证

Windows 推荐在 WSL 中使用;TUI 在 WezTerm/Alacritty/Ghostty/Kitty 等现代终端渲染更佳。


快速上手

cd your-project        # 建议是 Git 仓库(/undo /redo /快照依赖 Git)
opencode               # 启动 TUI

TUI 内常用斜杠命令:

/connect    # 接入模型提供商(粘贴 API Key;或选 OpenCode Zen 网关)
/models     # 选择当前模型
/init       # 生成项目级 AGENTS.md(让 OpenCode 了解你的项目)
/undo /redo # 基于 Git 快照撤销/重做 AI 改动
/share      # 生成会话分享链接
/help       # 查看全部命令

也可用环境变量提供密钥(如 ANTHROPIC_API_KEYOPENAI_API_KEY),启动时自动识别。

CLI / 无头模式(脚本与 CI)

opencode run "为 utils.ts 补充单元测试并运行"      # 单次执行
opencode run -m anthropic/claude-sonnet-4-5 "重构登录模块"
opencode serve --port 4096                         # 启动 HTTP Server(配合 SDK)

配置体系(核心)

OpenCode 支持 JSON / JSONC(带注释)。务必加 $schema 获得校验与补全:

{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-5",
  "small_model": "anthropic/claude-haiku-4-5",
  "autoupdate": true,
  "permission": {
    "edit": "allow",
    "bash": { "git push": "ask", "rm *": "deny", "*": "allow" },
    "webfetch": "ask"
  }
}

配置位置与优先级

角色 路径
全局配置 ~/.config/opencode/opencode.json
项目配置(可提交 Git) 项目根 opencode.json
TUI 设置(主题/键位) ~/.config/opencode/tui.json 或项目根 tui.json
自定义路径 / 目录 OPENCODE_CONFIG / OPENCODE_CONFIG_DIR 环境变量

.opencode/~/.config/opencode/ 下使用复数子目录:agents/commands/plugins/skills/tools/themes/

关键机制:配置是「合并」而非「替换」——只有冲突键被覆盖,其余全部保留。优先级(后者覆盖前者):

远程(组织 .well-known/opencode) < 全局 < 自定义(OPENCODE_CONFIG)
  < 项目 < .opencode 目录 < 内联(OPENCODE_CONFIG_CONTENT) < 托管(企业 MDM)

TUI 专属配置(tui.json

{
  "$schema": "https://opencode.ai/tui.json",
  "theme": "tokyonight",
  "diff_style": "auto",
  "attention": { "enabled": true, "notifications": true, "sound": true }
}

opencode.json 旧的顶层 theme/keybinds/tui 键已废弃,会自动迁移到 tui.json


自定义 Agent / 命令 / 工具

{
  "$schema": "https://opencode.ai/config.json",
  "default_agent": "build",
  "agent": {
    "reviewer": {
      "description": "只读代码评审,不允许修改",
      "model": "anthropic/claude-sonnet-4-5",
      "permission": { "edit": "deny", "bash": "deny" }
    }
  },
  "mcp": {
    "playwright": { "type": "local", "command": ["npx", "@playwright/mcp@latest"], "enabled": true },
    "jira": { "type": "remote", "url": "https://jira.example.com/mcp", "enabled": false }
  }
}
  • Agent:可定义只读评审、文档撰写等子代理,并限定模型与权限。
  • 自定义命令:放 commands/*.md,复用提示词模板。
  • MCP 扩展type: local(启动本地进程)或 type: remote(HTTP),为 Agent 增加外部工具能力。
  • 规则上下文AGENTS.md(项目根)描述项目约定、构建/测试命令,OpenCode 每次会话注入。

Token 优化与省钱配置

手段 配置/做法
小模型分流 small_model 处理标题生成、压缩等轻量任务,主任务用强模型
上下文自动压缩 长会话触发 compaction,把历史摘要化,避免无限膨胀
工具输出裁剪 大输出(如长日志)自动 prune,仅保留关键片段
按需切模型 /modelsopencode run -m ...,简单任务用便宜模型
提示缓存 provider 选项中开启缓存,复用系统提示降低费用
收紧权限 bash/webfetchask/deny,减少无谓工具调用

典型工作流

# 1. 进入项目并初始化上下文
cd my-app && opencode
> /init                       # 生成 AGENTS.md

# 2. 接入并选择模型
> /connect                    # 接入 Anthropic / OpenCode Zen
> /models                     # 选 claude-sonnet-4-5

# 3. 交给它做多步任务(它会读文件、改代码、跑命令)
> 实现用户注册接口,加上输入校验与单元测试,并运行测试

# 4. 审阅与撤销
> /undo                       # 不满意则基于 Git 快照回滚

# 5. CI 中无头运行
opencode run "升级依赖并修复由此产生的编译错误"

常见问题(FAQ)

问题 解决
/undo 不可用 当前目录不是 Git 仓库;git init 后再用
没有可用模型 /connect 接入提供商或设置 ANTHROPIC_API_KEY 等环境变量,再 /models
配置不生效 注意「合并而非替换」与优先级:项目配置覆盖全局;用 $schema 校验拼写
主题/键位改了没反应 这些属于 TUI 设置,应写在 tui.json 而非 opencode.json
Token 消耗过快 small_model、收紧 permission、用便宜模型处理简单任务、开启提示缓存
想接公司内部工具 通过 mcp(local/remote)接入 MCP server,并在 Agent 权限内开放
升级后命令变了 opencode --help / /help 与官网 Schema 为准(迭代快)

AI 使用建议

  • 用户提到「终端 AI 编码代理」「opencode.json 配置」「模型无关」「省 Token / 控制成本」「自定义 Agent / MCP」时加载本技能。
  • 区分三种形态:交互用 TUI,脚本/CI 用 opencode run,集成用 opencode serve + SDK
  • 配置问题先排查「合并 vs 替换」与优先级;主题/键位归 tui.json,行为/模型/权限归 opencode.json
  • 生成配置时始终带 "$schema",并优先用细粒度 permission 收敛 bash/webfetch 风险。
  • 由于版本迭代快,生成命令/字段后提醒用户以本机 --help 与在线 Schema 校验。

参考资源

Install via CLI
npx skills add https://github.com/znlgis/opengis-skills --skill opencode
Repository Details
star Stars 27
call_split Forks 4
navigation Branch main
article Path SKILL.md
More from Creator