跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言Node.jsAI大前端

OpenCode 开源 AI 编程助手使用指南

OpenCode 是一款开源 AI 编程代理,支持终端、桌面及 IDE 扩展。提供多模型 Provider 接入、LSP 语言服务器、MCP 协议扩展及 Agent 系统。支持多种安装方式如 Homebrew、Docker 等。内置 TUI 界面,支持 Plan/Build 模式切换、自定义命令、快捷键配置及主题个性化。通过 AGENTS.md 管理项目规则,可连接数据库或第三方服务。适用于代码分析、自动修改、调试修复及文档生成等场景。

BackendPro发布于 2026/4/11更新于 2026/5/2723 浏览

OpenCode 完全使用指南:开源 AI 编程助手入门到精通

本教程基于 OpenCode 官方文档(https://opencode.ai/docs)和 GitHub 仓库(https://github.com/anomalyco/opencode)编写。

1. 什么是 OpenCode

1.1 概述

OpenCode 是一个 100% 开源的 AI 编程代理(Coding Agent),提供终端界面(TUI)、桌面应用和 IDE 扩展多种使用方式。它可以帮助开发者:

  • 🤖 与 AI 对话编写代码
  • 📝 分析和理解代码库
  • 🔧 自动修改和重构代码
  • 🐛 调试和修复问题
  • 📚 生成文档和测试
1.2 核心特点
特点说明
100% 开源MIT 许可证,代码完全开放
多 Provider 支持支持 Claude、OpenAI、Google、本地模型等 75+ 提供商
开箱即用的 LSP内置语言服务器支持,提供智能诊断
TUI 优先设计由 Neovim 用户打造,极致终端体验
客户端/服务器架构支持远程控制,可从手机驱动桌面上的 OpenCode
MCP 协议支持可扩展外部工具和服务
1.3 与 Claude Code 的区别
对比项OpenCodeClaude Code
开源性✅ 100% 开源❌ 闭源
Provider✅ 不绑定任何提供商❌ 仅限 Anthropic (但可以改配置用三方)
LSP 支持✅ 开箱即用❌ 无
扩展性✅ 插件/MCP/自定义工具有限

2. 安装指南

2.1 前置要求
  1. 现代终端模拟器(推荐):
    • WezTerm - 跨平台
    • Alacritty - 跨平台
    • - Linux/macOS
Ghostty
  • Kitty - Linux/macOS
  • Windows Terminal - Windows
  • LLM Provider 的 API 密钥(至少需要一个)
  • 2.2 通用安装(推荐)

    最简单的安装方式,适用于 macOS 和 Linux:

    curl -fsSL https://opencode.ai/install | bash
    
    2.3 macOS 安装
    使用 Homebrew(推荐)
    # 官方 tap(更新更快)
    brew install anomalyco/tap/opencode
    # 或者使用官方 formula(更新较慢)
    brew install opencode
    
    2.4 Linux 安装
    Debian/Ubuntu
    # 使用 npm
    npm install -g opencode-ai
    # 或使用安装脚本
    curl -fsSL https://opencode.ai/install | bash
    
    Arch Linux
    paru -S opencode-bin
    
    2.5 Windows 安装
    使用 Chocolatey
    choco install opencode
    
    使用 Scoop
    scoop install opencode
    
    使用 npm
    npm install -g opencode-ai
    
    2.6 使用包管理器
    npm / Bun / pnpm / Yarn
    # npm
    npm install -g opencode-ai
    # Bun
    bun install -g opencode-ai
    # pnpm
    pnpm install -g opencode-ai
    # Yarn
    yarn global add opencode-ai
    
    2.7 使用 Docker
    docker run -it --rm ghcr.io/anomalyco/opencode
    
    2.8 使用 Nix
    # 使用 nixpkgs
    nix run nixpkgs#opencode
    # 使用最新开发版
    nix run github:anomalyco/opencode
    
    2.9 桌面应用(Beta)

    OpenCode 还提供桌面应用程序,可从 Releases 页面 或 opencode.ai/download 下载。

    平台下载文件
    macOS (Apple Silicon)opencode-desktop-darwin-aarch64.dmg
    macOS (Intel)opencode-desktop-darwin-x64.dmg
    Windowsopencode-desktop-windows-x64.exe
    Linux.deb, .rpm, 或 AppImage
    # macOS 使用 Homebrew
    brew install --cask opencode-desktop
    # Windows 使用 Scoop
    scoop bucket add extras
    scoop install extras/opencode-desktop
    
    2.10 自定义安装目录

    安装脚本支持以下优先级顺序的安装路径:

    1. $OPENCODE_INSTALL_DIR - 自定义安装目录
    2. $XDG_BIN_DIR - XDG 规范路径
    3. $HOME/bin - 标准用户目录
    4. $HOME/.opencode/bin - 默认回退
    # 自定义安装目录示例
    OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash
    

    3. 快速开始

    3.1 首次配置 Provider
    1. 进入你的项目目录:
    cd /path/to/your/project
    
    1. 启动 OpenCode:
    opencode
    
    1. 配置 Provider(以 OpenCode Zen 为例):
    /connect
    
    1. 选择 opencode,然后访问 opencode.ai/auth 获取 API 密钥
    2. 粘贴你的 API 密钥
    3.2 初始化项目

    运行初始化命令,让 OpenCode 分析你的项目:

    /init
    

    这会创建一个 AGENTS.md 文件,帮助 OpenCode 更好地理解你的项目结构。

    💡 提示:建议将 AGENTS.md 提交到 Git 仓库

    3.3 基础使用示例
    询问代码问题
    给我简单介绍一下这个代码库
    
    引用文件

    使用 @ 符号引用项目中的文件:

    @src/components/Button.tsx 这个组件是如何工作的?
    
    添加新功能
    请在 @src/api/auth.ts 中添加用户登录功能
    
    执行 Shell 命令

    使用 ! 前缀执行命令:

    !npm test
    
    3.4 Plan 与 Build 模式

    OpenCode 提供两种主要模式,使用 Tab 键切换:

    模式说明适用场景
    Build完整权限,可修改文件实际开发工作
    Plan只读模式,只分析不修改代码审查、规划方案
    # 先用 Plan 模式规划
    <Tab 切换到 Plan>
    实现一个用户删除功能,要求软删除,并提供恢复界面
    # 确认方案后切换到 Build 模式执行
    <Tab 切换到 Build>
    按照刚才的计划开始实现
    
    3.5 撤销与重做
    /undo # 撤销上一个操作(包括文件修改)
    /redo # 重做已撤销的操作
    

    ⚠️ 注意:撤销/重做功能需要项目是 Git 仓库

    4. 配置文件详解

    4.1 配置文件格式

    OpenCode 支持 JSON 和 JSONC(带注释的 JSON)格式:

    {
      "$schema": "https://opencode.ai/config.json",
      // 主题配置
      "theme": "opencode",
      "model": "anthropic/claude-sonnet-4-5",
      "autoupdate": true
    }
    
    4.2 配置文件位置

    配置文件按以下优先级加载(后面的覆盖前面的):

    优先级位置说明
    1.well-known/opencode远程组织配置
    2~/.config/opencode/opencode.json全局用户配置
    3OPENCODE_CONFIG 环境变量自定义配置路径
    4项目根目录 opencode.json项目专属配置
    5.opencode 目录agents、commands 等
    6OPENCODE_CONFIG_CONTENT 环境变量运行时覆盖
    4.3 完整配置示例
    {
      "$schema": "https://opencode.ai/config.json",
      // 主题设置
      "theme": "tokyonight",
      // 模型设置
      "model": "anthropic/claude-sonnet-4-5",
      "small_model": "anthropic/claude-haiku-4-5",
      // 自动更新
      "autoupdate": true,
      // TUI 设置
      "tui": {
        "scroll_speed": 3,
        "scroll_acceleration": { "enabled": true },
        "diff_style": "auto"
      },
      // 服务器设置
      "server": {
        "port": 4096,
        "hostname": "0.0.0.0",
        "mdns": true
      },
      // 工具权限
      "permission": {
        "edit": "allow",
        "bash": "ask"
      },
      // 自动压缩
      "compaction": {
        "auto": true,
        "prune": true
      },
      // 指令文件
      "instructions": [
        "CONTRIBUTING.md",
        "docs/guidelines.md"
      ]
    }
    
    4.4 变量替换
    环境变量
    {"model":"{env:OPENCODE_MODEL}","provider":{"anthropic":{"options":{"apiKey":"{env:ANTHROPIC_API_KEY}"}}}}
    
    文件内容
    {"provider":{"openai":{"options":{"apiKey":"{file:~/.secrets/openai-key}"}}}}
    

    5. Provider 配置

    5.1 支持的 Provider

    OpenCode 支持 75+ LLM 提供商,以下是常用的:

    Provider说明
    OpenCode Zen官方推荐,经过验证的模型列表
    AnthropicClaude 系列模型
    OpenAIGPT 系列模型
    Google Vertex AIGemini 系列
    Amazon BedrockAWS 托管的多种模型
    OpenRouter聚合多个提供商
    Ollama本地运行模型
    LM Studio本地模型管理
    DeepSeekDeepSeek 模型
    Groq高速推理
    5.2 配置 Anthropic
    使用 Claude Pro/Max 订阅
    /connect
    

    选择 Anthropic → Claude Pro/Max,浏览器会自动打开进行认证。

    使用 API 密钥
    /connect
    

    选择 Anthropic → Manually enter API Key,然后输入密钥。

    5.3 配置 OpenAI
    使用 ChatGPT Plus/Pro 订阅
    /connect
    

    选择 OpenAI → ChatGPT Plus/Pro,浏览器会自动打开进行认证。

    5.4 配置 OpenCode Zen(推荐新手)

    OpenCode Zen 是官方提供的经过测试验证的模型列表:

    1. 访问 opencode.ai/auth 创建 API 密钥
    2. 运行 /connect,选择 opencode
    3. 粘贴 API 密钥
    4. 运行 /models 查看可用模型
    5.5 配置本地模型(Ollama)
    {
      "$schema": "https://opencode.ai/config.json",
      "provider": {
        "ollama": {
          "npm": "@ai-sdk/openai-compatible",
          "name": "Ollama (local)",
          "options": { "baseURL": "http://localhost:11434/v1" },
          "models": {
            "llama2": { "name": "Llama 2" },
            "codellama": { "name": "Code Llama" }
          }
        }
      }
    }
    

    💡 提示:如果工具调用不工作,尝试在 Ollama 中增加 num_ctx 到 16k-32k

    5.6 配置 LM Studio
    {
      "$schema": "https://opencode.ai/config.json",
      "provider": {
        "lmstudio": {
          "npm": "@ai-sdk/openai-compatible",
          "name": "LM Studio (local)",
          "options": { "baseURL": "http://127.0.0.1:1234/v1" },
          "models": {
            "google/gemma-3n-e4b": { "name": "Gemma 3n-e4b (local)" }
          }
        }
      }
    }
    
    5.7 配置 Amazon Bedrock
    {
      "$schema": "https://opencode.ai/config.json",
      "provider": {
        "amazon-bedrock": {
          "options": { "region": "us-east-1", "profile": "my-aws-profile" }
        }
      }
    }
    

    或使用环境变量:

    # 使用 AWS 访问密钥
    AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode
    # 使用命名配置文件
    AWS_PROFILE=my-profile opencode
    
    5.8 配置 OpenRouter
    {
      "$schema": "https://opencode.ai/config.json",
      "provider": {
        "openrouter": {
          "models": {
            "moonshotai/kimi-k2": {
              "options": {
                "provider": { "order": ["baseten"], "allow_fallbacks": false }
              }
            }
          }
        }
      }
    }
    
    5.9 禁用/启用特定 Provider
    {
      "$schema": "https://opencode.ai/config.json",
      // 禁用特定 provider
      "disabled_providers": ["openai", "gemini"],
      // 或只启用特定 provider
      "enabled_providers": ["anthropic", "opencode"]
    }
    

    6. TUI 终端界面使用

    6.1 启动 TUI
    # 当前目录
    opencode
    # 指定目录
    opencode /path/to/project
    
    6.2 基本操作
    发送消息

    直接输入文字后按 Enter 发送。

    换行输入
    • Shift+Enter - 插入换行
    • Ctrl+Enter - 插入换行
    • Alt+Enter - 插入换行
    引用文件

    输入 @ 然后模糊搜索文件名:

    @src/api/ → 选择文件
    
    执行 Shell 命令

    以 ! 开头:

    !git status
    !npm run build
    
    6.3 内置命令
    命令快捷键说明
    /connect-添加 Provider
    /modelsCtrl+x m选择模型
    /newCtrl+x n新建会话
    /sessionsCtrl+x l会话列表
    /undoCtrl+x u撤销操作
    /redoCtrl+x r重做操作
    /compactCtrl+x c压缩上下文
    /shareCtrl+x s分享会话
    /initCtrl+x i初始化项目
    /themeCtrl+x t选择主题
    /editorCtrl+x e打开外部编辑器
    /exportCtrl+x x导出会话为 Markdown
    /helpCtrl+x h显示帮助
    /exitCtrl+x q退出
    /detailsCtrl+x d切换工具执行详情
    /thinking-切换思考过程显示
    6.4 导航操作
    操作快捷键
    向上滚动一页PageUp / Ctrl+Alt+b
    向下滚动一页PageDown / Ctrl+Alt+f
    向上滚动半页Ctrl+Alt+u
    向下滚动半页Ctrl+Alt+d
    跳到顶部Ctrl+g / Home
    跳到底部Ctrl+Alt+g / End
    切换 AgentTab
    反向切换 AgentShift+Tab
    中断响应Escape
    6.5 编辑器设置

    配置 EDITOR 环境变量以使用 /editor 和 /export 命令:

    # Linux/macOS - 添加到 ~/.bashrc 或 ~/.zshrc
    export EDITOR="code --wait" # VS Code
    export EDITOR=vim # Vim
    export EDITOR=nvim # Neovim
    
    # Windows PowerShell
    $env:EDITOR = "code --wait"
    

    ⚠️ 注意:VS Code 等 GUI 编辑器需要 --wait 参数

    7. Agent 系统

    7.1 Agent 类型
    主 Agent(Primary)

    直接交互的主要 Agent,使用 Tab 键切换:

    Agent说明
    Build默认 Agent,完整权限
    Plan只读模式,用于分析和规划
    子 Agent(Subagent)

    由主 Agent 调用或使用 @ 手动调用:

    Agent说明
    General通用 Agent,适合复杂任务
    Explore快速只读探索代码库
    7.2 使用 Agent
    切换主 Agent

    按 Tab 键在 Build 和 Plan 之间切换。

    调用子 Agent

    使用 @ 提及:

    @general 帮我搜索这个函数的所有调用位置
    @explore 分析一下项目结构
    
    7.3 自定义 Agent
    JSON 配置方式
    {
      "$schema": "https://opencode.ai/config.json",
      "agent": {
        "code-reviewer": {
          "description": "代码审查专家",
          "mode": "subagent",
          "model": "anthropic/claude-sonnet-4-5",
          "prompt": "你是一个代码审查专家,专注于安全性、性能和可维护性。",
          "tools": { "write": false, "edit": false }
        }
      }
    }
    
    Markdown 文件方式

    创建 .opencode/agents/reviewer.md 或 ~/.config/opencode/agents/reviewer.md:

    ---
    description: 代码审查专家
    mode: subagent
    model: anthropic/claude-sonnet-4-5
    temperature: 0.1
    tools:
      write: false
      edit: false
      bash: false
    ---
    你是一个代码审查专家。请关注:
    - 代码质量和最佳实践
    - 潜在的 bug 和边界情况
    - 性能影响
    - 安全考虑
    提供建设性的反馈,不要直接修改代码。
    
    7.4 Agent 配置选项
    选项类型说明
    descriptionstringAgent 描述(必需)
    modestringprimary、subagent 或 all
    modelstring使用的模型
    promptstring系统提示词
    temperaturenumber创造性(0-1)
    maxStepsnumber最大迭代次数
    toolsobject工具权限
    permissionobject详细权限配置
    hiddenboolean从 @ 菜单隐藏
    disableboolean禁用此 Agent
    7.5 Agent 权限配置
    {
      "agent": {
        "safe-build": {
          "mode": "primary",
          "permission": {
            "edit": "ask",
            "bash": { "*": "ask", "git status *": "allow", "git diff *": "allow" }
          }
        }
      }
    }
    

    8. 自定义命令

    8.1 创建命令
    JSON 配置方式
    {
      "$schema": "https://opencode.ai/config.json",
      "command": {
        "test": {
          "template": "运行完整的测试套件并显示覆盖率报告。\n关注失败的测试并提供修复建议。",
          "description": "运行测试并分析结果",
          "agent": "build",
          "model": "anthropic/claude-haiku-4-5"
        },
        "component": {
          "template": "创建一个名为 $ARGUMENTS 的 React 组件。\n包含 TypeScript 类型定义和基本结构。",
          "description": "创建新组件"
        }
      }
    }
    
    Markdown 文件方式

    创建 .opencode/commands/test.md:

    ---
    description: 运行测试并分析覆盖率
    agent: build
    model: anthropic/claude-haiku-4-5
    ---
    运行完整的测试套件并显示覆盖率报告。
    关注失败的测试并提供修复建议。
    
    8.2 使用命令
    /test
    /component Button
    
    8.3 命令模板语法
    参数替换
    • $ARGUMENTS - 所有参数
    • $1, $2, $3 - 位置参数
    ---
    description: 创建文件
    ---
    在目录 $2 中创建名为 $1 的文件,内容为:$3
    

    使用:

    /create-file config.json src "{ \"key\": \"value\" }"
    
    Shell 命令输出

    使用 !`command` 语法:

    ---
    description: 分析测试覆盖率
    ---
    当前测试结果: !`npm test`
    基于这些结果,建议如何提高覆盖率。
    
    文件引用
    ---
    description: 审查组件
    ---
    审查 @src/components/Button.tsx 组件,检查性能问题并提供改进建议。
    
    8.4 命令选项
    选项说明
    template命令模板(必需)
    description命令描述
    agent执行的 Agent
    model使用的模型
    subtask是否作为子任务执行

    9. 快捷键配置

    9.1 Leader 键

    OpenCode 使用 Leader 键避免与终端快捷键冲突。默认 Leader 键是 Ctrl+x。

    例如,新建会话:先按 Ctrl+x,再按 n。

    9.2 自定义快捷键
    {
      "$schema": "https://opencode.ai/config.json",
      "keybinds": {
        "leader": "ctrl+x",
        "app_exit": "ctrl+c,ctrl+d,<leader>q",
        "session_new": "<leader>n",
        "session_list": "<leader>l",
        "model_list": "<leader>m",
        "agent_cycle": "tab",
        "input_submit": "return",
        "input_newline": "shift+return,ctrl+return",
        "session_interrupt": "escape"
      }
    }
    
    9.3 禁用快捷键

    设置为 "none" 禁用:

    {"keybinds": {"session_compact": "none"}}
    
    9.4 完整快捷键列表
    功能默认快捷键
    退出Ctrl+c, Ctrl+d, <leader>q
    打开编辑器<leader>e
    主题列表<leader>t
    侧边栏切换<leader>b
    状态视图<leader>s
    导出会话<leader>x
    新建会话<leader>n
    会话列表<leader>l
    时间线<leader>g
    中断会话Escape
    压缩会话<leader>c
    向上翻页PageUp, Ctrl+Alt+b
    向下翻页PageDown, Ctrl+Alt+f
    复制消息<leader>y
    撤销<leader>u
    重做<leader>r
    模型列表<leader>m
    切换模型变体Ctrl+t
    命令列表Ctrl+p
    Agent 列表<leader>a
    切换 AgentTab
    反向切换Shift+Tab
    清空输入Ctrl+c
    粘贴Ctrl+v
    提交Return
    换行Shift+Return

    10. MCP 服务器

    10.1 什么是 MCP

    Model Context Protocol (MCP) 是一种协议,允许 OpenCode 集成外部工具和服务。通过 MCP,你可以:

    • 连接数据库
    • 集成 API
    • 使用第三方服务
    • 扩展 AI 能力
    10.2 配置本地 MCP 服务器
    {
      "$schema": "https://opencode.ai/config.json",
      "mcp": {
        "my-local-mcp": {
          "type": "local",
          "command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
          "enabled": true,
          "environment": { "MY_ENV_VAR": "value" }
        }
      }
    }
    
    10.3 配置远程 MCP 服务器
    {
      "$schema": "https://opencode.ai/config.json",
      "mcp": {
        "my-remote-mcp": {
          "type": "remote",
          "url": "https://my-mcp-server.com",
          "enabled": true,
          "headers": { "Authorization": "Bearer MY_API_KEY" }
        }
      }
    }
    
    10.4 常用 MCP 示例
    Sentry(错误监控)
    {"mcp": {"sentry": {"type": "remote", "url": "https://mcp.sentry.dev/mcp", "oauth": {}}}}
    

    然后运行认证:

    opencode mcp auth sentry
    

    使用:

    显示我项目中最新的未解决问题。
    use sentry
    
    Context7(文档搜索)
    {"mcp": {"context7": {"type": "remote", "url": "https://mcp.context7.com/mcp"}}}
    

    使用:

    如何配置 Cloudflare Worker 来缓存 JSON API 响应?
    use context7
    
    Grep by Vercel(代码搜索)
    {"mcp": {"gh_grep": {"type": "remote", "url": "https://mcp.grep.app"}}}
    

    使用:

    搜索 React hooks 的最佳实践示例。
    use the gh_grep tool
    
    10.5 OAuth 认证

    对于需要认证的 MCP 服务器:

    # 认证
    opencode mcp auth my-oauth-server
    # 查看状态
    opencode mcp list
    # 登出
    opencode mcp logout my-oauth-server
    
    10.6 MCP 权限管理
    全局禁用
    {"tools": {"my-mcp*": false}}
    
    按 Agent 启用
    {
      "mcp": {"my-mcp": {"type": "local", "command": ["bun", "x", "my-mcp-command"], "enabled": true}},
      "tools": {"my-mcp*": false},
      "agent": {"my-agent": {"tools": {"my-mcp*": true}}}
    }
    

    11. LSP 语言服务器

    11.1 内置 LSP 支持

    OpenCode 内置多种语言的 LSP 服务器支持:

    语言LSP 服务器要求
    TypeScript/JavaScripttypescript项目有 typescript 依赖
    Pythonpyright安装 pyright
    Rustrust-analyzer安装 rust-analyzer
    Gogopls安装 go
    JavajdtlsJava SDK 21+
    C/C++clangd自动安装
    PHPintelephense自动安装
    Rubyruby-lsp安装 ruby 和 gem
    Bashbash-language-server自动安装
    Vuevue-language-server自动安装
    Sveltesvelte-language-server自动安装
    Astro@astrojs/language-server自动安装
    Lualua-language-server自动安装
    Kotlinkotlin-language-server自动安装
    Swiftsourcekit-lsp安装 Xcode
    Zigzls安装 zig
    Terraformterraform-ls自动安装
    YAMLyaml-language-server自动安装
    11.2 LSP 如何工作

    当 OpenCode 打开文件时:

    1. 检查文件扩展名
    2. 启动对应的 LSP 服务器
    3. 获取诊断信息(错误、警告)
    4. 将诊断反馈给 LLM
    11.3 自定义 LSP 配置
    {
      "$schema": "https://opencode.ai/config.json",
      "lsp": {
        "custom-lsp": {
          "command": ["custom-lsp-server", "--stdio"],
          "extensions": [".custom"]
        }
      }
    }
    
    11.4 禁用 LSP
    禁用所有 LSP
    {"lsp": false}
    
    禁用特定 LSP
    {"lsp": {"typescript": {"disabled": true}}}
    
    11.5 禁用自动下载
    export OPENCODE_DISABLE_LSP_DOWNLOAD=true
    

    12. 主题与个性化

    12.1 终端要求

    为了正确显示主题,你的终端需要支持 truecolor(24 位色):

    # 检查支持
    echo $COLORTERM
    # 应输出 truecolor 或 24bit
    # 启用 truecolor
    export COLORTERM=truecolor
    
    12.2 内置主题
    主题名说明
    opencode默认主题
    system自动适应终端颜色
    tokyonightTokyo Night 风格
    catppuccinCatppuccin 风格
    catppuccin-macchiatoCatppuccin Macchiato
    gruvboxGruvbox 风格
    nordNord 风格
    kanagawaKanagawa 风格
    everforestEverforest 风格
    ayuAyu Dark 风格
    one-darkAtom One Dark
    matrix黑客风格绿色
    12.3 切换主题
    使用命令
    /theme
    
    配置文件
    {"theme": "tokyonight"}
    
    12.4 自定义主题

    创建 ~/.config/opencode/themes/my-theme.json 或 .opencode/themes/my-theme.json:

    {
      "$schema": "https://opencode.ai/theme.json",
      "defs": {
        "bg": "#1a1b26",
        "fg": "#c0caf5",
        "accent": "#7aa2f7",
        "error": "#f7768e",
        "warning": "#e0af68",
        "success": "#9ece6a"
      },
      "theme": {
        "primary": { "dark": "accent", "light": "accent" },
        "text": { "dark": "fg", "light": "#1a1b26" },
        "background": { "dark": "bg", "light": "#ffffff" },
        "error": { "dark": "error", "light": "error" },
        "warning": { "dark": "warning", "light": "warning" },
        "success": { "dark": "success", "light": "success" }
      }
    }
    
    12.5 颜色格式
    • Hex 颜色: "#ffffff"
    • ANSI 颜色: 3(0-255)
    • 引用定义: "primary"
    • 深浅变体: {"dark": "#000", "light": "#fff"}
    • 无颜色: "none"(使用终端默认)

    13. Rules 自定义指令

    13.1 什么是 AGENTS.md

    AGENTS.md 是一个特殊文件,包含给 LLM 的自定义指令,类似于 Cursor 的 rules。它帮助 OpenCode 理解你的项目结构和编码规范。

    13.2 创建 AGENTS.md
    自动生成
    /init
    

    这会扫描项目并自动生成 AGENTS.md。

    手动创建
    # 我的 TypeScript 项目
    这是一个使用 bun workspaces 的 SST v3 monorepo 项目。
    
    ## 项目结构
    - `packages/` - 所有工作区包(functions, core, web 等)
    - `infra/` - 基础设施定义(storage.ts, api.ts, web.ts)
    - `sst.config.ts` - 主 SST 配置
    
    ## 代码规范
    - 使用 TypeScript 严格模式
    - 共享代码放在 `packages/core/`
    - 函数代码放在 `packages/functions/`
    - 基础设施按逻辑拆分到 `infra/` 目录
    
    ## Monorepo 约定
    - 使用工作区名称导入共享模块:`@my-app/core/example`
    
    13.3 文件位置
    类型位置作用域
    项目级项目根目录 AGENTS.md仅当前项目
    全局级~/.config/opencode/AGENTS.md所有项目
    13.4 Claude Code 兼容性

    OpenCode 支持 Claude Code 的文件约定作为回退:

    • CLAUDE.md → 用作 AGENTS.md
    • ~/.claude/CLAUDE.md → 用作全局指令

    禁用兼容性:

    export OPENCODE_DISABLE_CLAUDE_CODE=1
    
    13.5 引用外部文件
    使用配置文件
    {"instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md", "https://raw.githubusercontent.com/my-org/shared-rules/main/style.md"]}
    
    在 AGENTS.md 中引用
    # 项目规则
    
    ## 外部文件加载
    重要:当遇到文件引用(如 @rules/general.md)时,使用 Read 工具按需加载。
    
    ## 开发指南
    TypeScript 代码风格:@docs/typescript-guidelines.md
    React 组件架构:@docs/react-patterns.md
    API 设计规范:@docs/api-standards.md
    

    14. 最佳实践与进阶技巧

    14.1 高效工作流
    1. 先规划后执行
    <Tab 切换到 Plan 模式>
    我需要实现用户认证功能,包括登录、注册、密码重置
    <分析完成后>
    <Tab 切换到 Build 模式>
    按照计划开始实现
    
    2. 使用 @ 引用上下文
    参考 @src/auth/login.ts 的实现方式,在 @src/auth/register.ts 中添加注册功能
    
    3. 拖放图片

    在终端中拖放图片,可以让 LLM 参考设计稿:

    按照这个设计稿实现登录界面
    [拖入设计稿图片]
    
    14.2 项目设置建议
    创建项目专属配置
    // opencode.json(放在项目根目录)
    {
      "$schema": "https://opencode.ai/config.json",
      "model": "anthropic/claude-sonnet-4-5",
      "instructions": ["CONTRIBUTING.md", "docs/DEVELOPMENT.md"],
      "formatter": {
        "prettier": {
          "command": ["npx", "prettier", "--write", "$FILE"]
        }
      }
    }
    
    设置完善的 AGENTS.md
    # 项目名称
    
    ## 技术栈
    - 前端:React + TypeScript + Tailwind
    - 后端:Node.js + Express
    - 数据库:PostgreSQL
    
    ## 目录结构
    ...
    
    ## 编码规范
    ...
    
    ## 常见任务
    - 创建新组件:使用 `packages/ui` 目录
    - 添加 API:在 `packages/api/src/routes` 创建
    
    14.3 性能优化
    1. 使用 small_model

    为轻量任务(如生成标题)配置更便宜的模型:

    {"model": "anthropic/claude-sonnet-4-5", "small_model": "anthropic/claude-haiku-4-5"}
    
    2. 启用自动压缩
    {"compaction": {"auto": true, "prune": true}}
    
    3. 合理配置 MCP

    避免添加太多 MCP 服务器,每个都会增加上下文:

    {"tools": {"heavy-mcp*": false}}
    
    14.4 团队协作
    1. 共享配置

    将以下文件提交到 Git:

    • opencode.json
    • AGENTS.md
    • .opencode/ 目录
    2. 分享会话
    /share
    

    获取可分享的链接。

    14.5 安全最佳实践
    1. 使用权限控制
    {"permission": {"bash": "ask", "edit": "allow"}}
    
    2. 敏感命令需要确认
    {"agent": {"build": {"permission": {"bash": {"*": "allow", "rm *": "ask", "git push*": "ask", "npm publish": "ask"}}}}}
    
    14.6 调试技巧
    1. 查看工具执行详情
    /details
    
    2. 查看思考过程
    /thinking
    
    3. 导出会话进行分析
    /export
    

    15. 常见问题解答

    Q1: 如何更换模型?
    /models
    

    或在配置文件中设置:

    {"model": "openai/gpt-4o"}
    
    Q2: Shift+Enter 不工作怎么办?

    某些终端需要特殊配置。Windows Terminal 用户需在 settings.json 中添加:

    {
      "actions": [{ "command": { "action": "sendInput", "input": "\u001b[13;2u" }, "id": "User.sendInput.ShiftEnterCustom" }],
      "keybindings": [{ "keys": "shift+enter", "id": "User.sendInput.ShiftEnterCustom" }]
    }
    
    Q3: 如何使用本地模型?

    配置 Ollama 或 LM Studio:

    {
      "provider": {
        "ollama": {
          "npm": "@ai-sdk/openai-compatible",
          "options": { "baseURL": "http://localhost:11434/v1" },
          "models": { "llama2": { "name": "Llama 2" } }
        }
      }
    }
    
    Q4: 撤销操作不工作?

    确保项目是 Git 仓库。撤销功能依赖 Git 来恢复文件更改。

    Q5: 如何禁用自动更新?
    {"autoupdate": false}
    

    或只通知不更新:

    {"autoupdate": "notify"}
    
    Q6: API 密钥存储在哪里?

    ~/.local/share/opencode/auth.json

    Q7: 如何完全重置 OpenCode?
    # 删除配置
    rm -rf ~/.config/opencode
    # 删除数据
    rm -rf ~/.local/share/opencode
    
    Q8: 遇到 "content filter" 错误(Azure)?

    将 Azure 资源的内容过滤器从 DefaultV2 改为 Default。

    Q9: 如何查看可用的 Provider?
    /connect
    

    然后搜索或滚动查看所有可用的 Provider。

    Q10: 如何使用代理?

    设置环境变量:

    export HTTPS_PROXY=http://proxy.example.com:8080
    export HTTP_PROXY=http://proxy.example.com:8080
    

    📖 更多资源

    • 官方文档: https://opencode.ai/docs
    • GitHub 仓库: https://github.com/anomalyco/opencode

    目录

    1. OpenCode 完全使用指南:开源 AI 编程助手入门到精通
    2. 1. 什么是 OpenCode
    3. 1.1 概述
    4. 1.2 核心特点
    5. 1.3 与 Claude Code 的区别
    6. 2. 安装指南
    7. 2.1 前置要求
    8. 2.2 通用安装(推荐)
    9. 2.3 macOS 安装
    10. 使用 Homebrew(推荐)
    11. 官方 tap(更新更快)
    12. 或者使用官方 formula(更新较慢)
    13. 2.4 Linux 安装
    14. Debian/Ubuntu
    15. 使用 npm
    16. 或使用安装脚本
    17. Arch Linux
    18. 2.5 Windows 安装
    19. 使用 Chocolatey
    20. 使用 Scoop
    21. 使用 npm
    22. 2.6 使用包管理器
    23. npm / Bun / pnpm / Yarn
    24. npm
    25. Bun
    26. pnpm
    27. Yarn
    28. 2.7 使用 Docker
    29. 2.8 使用 Nix
    30. 使用 nixpkgs
    31. 使用最新开发版
    32. 2.9 桌面应用(Beta)
    33. macOS 使用 Homebrew
    34. Windows 使用 Scoop
    35. 2.10 自定义安装目录
    36. 自定义安装目录示例
    37. 3. 快速开始
    38. 3.1 首次配置 Provider
    39. 3.2 初始化项目
    40. 3.3 基础使用示例
    41. 询问代码问题
    42. 引用文件
    43. 添加新功能
    44. 执行 Shell 命令
    45. 3.4 Plan 与 Build 模式
    46. 先用 Plan 模式规划
    47. 确认方案后切换到 Build 模式执行
    48. 3.5 撤销与重做
    49. 4. 配置文件详解
    50. 4.1 配置文件格式
    51. 4.2 配置文件位置
    52. 4.3 完整配置示例
    53. 4.4 变量替换
    54. 环境变量
    55. 文件内容
    56. 5. Provider 配置
    57. 5.1 支持的 Provider
    58. 5.2 配置 Anthropic
    59. 使用 Claude Pro/Max 订阅
    60. 使用 API 密钥
    61. 5.3 配置 OpenAI
    62. 使用 ChatGPT Plus/Pro 订阅
    63. 5.4 配置 OpenCode Zen(推荐新手)
    64. 5.5 配置本地模型(Ollama)
    65. 5.6 配置 LM Studio
    66. 5.7 配置 Amazon Bedrock
    67. 使用 AWS 访问密钥
    68. 使用命名配置文件
    69. 5.8 配置 OpenRouter
    70. 5.9 禁用/启用特定 Provider
    71. 6. TUI 终端界面使用
    72. 6.1 启动 TUI
    73. 当前目录
    74. 指定目录
    75. 6.2 基本操作
    76. 发送消息
    77. 换行输入
    78. 引用文件
    79. 执行 Shell 命令
    80. 6.3 内置命令
    81. 6.4 导航操作
    82. 6.5 编辑器设置
    83. Linux/macOS - 添加到 ~/.bashrc 或 ~/.zshrc
    84. Windows PowerShell
    85. 7. Agent 系统
    86. 7.1 Agent 类型
    87. 主 Agent(Primary)
    88. 子 Agent(Subagent)
    89. 7.2 使用 Agent
    90. 切换主 Agent
    91. 调用子 Agent
    92. 7.3 自定义 Agent
    93. JSON 配置方式
    94. Markdown 文件方式
    95. 7.4 Agent 配置选项
    96. 7.5 Agent 权限配置
    97. 8. 自定义命令
    98. 8.1 创建命令
    99. JSON 配置方式
    100. Markdown 文件方式
    101. 8.2 使用命令
    102. 8.3 命令模板语法
    103. 参数替换
    104. Shell 命令输出
    105. 文件引用
    106. 8.4 命令选项
    107. 9. 快捷键配置
    108. 9.1 Leader 键
    109. 9.2 自定义快捷键
    110. 9.3 禁用快捷键
    111. 9.4 完整快捷键列表
    112. 10. MCP 服务器
    113. 10.1 什么是 MCP
    114. 10.2 配置本地 MCP 服务器
    115. 10.3 配置远程 MCP 服务器
    116. 10.4 常用 MCP 示例
    117. Sentry(错误监控)
    118. Context7(文档搜索)
    119. Grep by Vercel(代码搜索)
    120. 10.5 OAuth 认证
    121. 认证
    122. 查看状态
    123. 登出
    124. 10.6 MCP 权限管理
    125. 全局禁用
    126. 按 Agent 启用
    127. 11. LSP 语言服务器
    128. 11.1 内置 LSP 支持
    129. 11.2 LSP 如何工作
    130. 11.3 自定义 LSP 配置
    131. 11.4 禁用 LSP
    132. 禁用所有 LSP
    133. 禁用特定 LSP
    134. 11.5 禁用自动下载
    135. 12. 主题与个性化
    136. 12.1 终端要求
    137. 检查支持
    138. 应输出 truecolor 或 24bit
    139. 启用 truecolor
    140. 12.2 内置主题
    141. 12.3 切换主题
    142. 使用命令
    143. 配置文件
    144. 12.4 自定义主题
    145. 12.5 颜色格式
    146. 13. Rules 自定义指令
    147. 13.1 什么是 AGENTS.md
    148. 13.2 创建 AGENTS.md
    149. 自动生成
    150. 手动创建
    151. 我的 TypeScript 项目
    152. 项目结构
    153. 代码规范
    154. Monorepo 约定
    155. 13.3 文件位置
    156. 13.4 Claude Code 兼容性
    157. 13.5 引用外部文件
    158. 使用配置文件
    159. 在 AGENTS.md 中引用
    160. 项目规则
    161. 外部文件加载
    162. 开发指南
    163. 14. 最佳实践与进阶技巧
    164. 14.1 高效工作流
    165. 1. 先规划后执行
    166. 2. 使用 @ 引用上下文
    167. 3. 拖放图片
    168. 14.2 项目设置建议
    169. 创建项目专属配置
    170. 设置完善的 AGENTS.md
    171. 项目名称
    172. 技术栈
    173. 目录结构
    174. 编码规范
    175. 常见任务
    176. 14.3 性能优化
    177. 1. 使用 small_model
    178. 2. 启用自动压缩
    179. 3. 合理配置 MCP
    180. 14.4 团队协作
    181. 1. 共享配置
    182. 2. 分享会话
    183. 14.5 安全最佳实践
    184. 1. 使用权限控制
    185. 2. 敏感命令需要确认
    186. 14.6 调试技巧
    187. 1. 查看工具执行详情
    188. 2. 查看思考过程
    189. 3. 导出会话进行分析
    190. 15. 常见问题解答
    191. Q1: 如何更换模型?
    192. Q2: Shift+Enter 不工作怎么办?
    193. Q3: 如何使用本地模型?
    194. Q4: 撤销操作不工作?
    195. Q5: 如何禁用自动更新?
    196. Q6: API 密钥存储在哪里?
    197. Q7: 如何完全重置 OpenCode?
    198. 删除配置
    199. 删除数据
    200. Q8: 遇到 "content filter" 错误(Azure)?
    201. Q9: 如何查看可用的 Provider?
    202. Q10: 如何使用代理?
    203. 📖 更多资源
    • 💰 8折买阿里云服务器限时8折了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 🤖 一键搭建Deepseek满血版了解详情
    • 一键打造专属AI 智能体了解详情
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • Llama-Factory 与 LangChain 集成:构建智能 Agent 工作流
    • 基于阿里万物识别模型的电力绝缘子无人机巡检实践
    • 边缘计算:重塑医疗领域未来的关键力量
    • Python 自动化脚本环境配置与运行教程
    • 快手可灵爆火:中国版 Sora 引发海外关注与技术解析
    • Cogito-v1-preview-llama-3B 开源模型:商业可用与自主部署
    • Linux 下 libwebkit2gtk-4.1-0 安装实战:从零部署 GTK Web 渲染引擎
    • MCPHost:命令行下通过 MCP 协议与大模型及外部工具交互的工具
    • BERT 模型入门:Attention 机制详解
    • Visual C++运行库 AIO 一键部署方案
    • Vitis 使用教程:从零实现 AI 模型 FPGA 部署
    • Vivado 许可证获取与配置指南
    • Python 实现 68 点人脸关键点检测实战
    • Online Softmax 算法原理与 Flash Attention 应用解析
    • Web 自动化测试实战:基于 Python+Selenium 的博客系统全流程解析
    • ClawdBot 本地部署实战:vLLM 后端与设备授权全链路解析
    • 本地化部署 ClawdBot 构建粤语英语双向翻译机器人
    • 基于 Ant Design 的前端首页 Header 组件设计
    • Xcode 真机调试报错:Developer Disk Image 无法卸载
    • 网络安全入门指南:岗位方向与学习路径详解

    相关免费在线工具

    • RSA密钥对生成器

      生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

    • Mermaid 预览与可视化编辑

      基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

    • 随机西班牙地址生成器

      随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

    • Base64 字符串编码/解码

      将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

    • Base64 文件转换器

      将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

    • Markdown转HTML

      将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online