08-OpenCode 独有技巧

张开发
2026/4/15 23:56:43 15 分钟阅读

分享文章

08-OpenCode 独有技巧
08-OpenCode 独有技巧掌握 OpenCode 特有的高级功能和进阶使用技巧提升开发效率。一、OpenCode 特色功能1.1 多界面模式OpenCode 提供多种使用界面适应不同场景界面启动方式适用场景TUI终端界面opencode日常开发交互式对话CLI命令行opencode run 消息脚本自动化快速查询Webopencode web远程访问浏览器操作IDE 扩展安装对应插件在编辑器内使用桌面应用下载桌面版独立窗口体验1.2 独有特性TUI 终端界面专为终端设计的交互式界面支持快捷键、主题、会话管理 文件引用在对话中用模糊搜索并引用项目文件! Shell 命令在消息前加!直接执行 Shell 命令自定义命令系统通过.opencode/commands/*.md创建可复用的斜杠命令Git 驱动的撤销/重做/undo和/redo基于 Git 管理文件变更会话分享/share生成公开链接与团队分享对话Plan/Build 模式切换用 Tab 键在规划模式和构建模式间切换子 Agent 会话支持子 Agent 独立执行任务不污染主上下文二、TUI 交互技巧2.1 文件引用在对话中使用引用文件OpenCode 会进行模糊搜索并自动将文件内容加入上下文packages/functions/src/api/index.ts 中的认证逻辑是如何实现的 对比 src/models/User.ts 和 src/models/Post.ts 的结构差异 参考 src/components/Button.tsx 的设计风格创建一个新的 Input 组件2.2 Shell 命令!在消息前加!可直接执行 Shell 命令输出自动作为工具结果返回!ls -la !npm test !git log --oneline -52.3 Plan/Build 模式切换OpenCode 支持两种工作模式用Tab键切换# Plan 模式右下角显示 Plan - AI 只做规划不修改文件 - 适合复杂功能先讨论方案再动手 # Build 模式右下角显示 Build - AI 直接修改文件 - 适合明确的、具体的任务使用流程按 Tab 切换到 Plan 模式描述需求让 AI 生成实现计划审查并迭代计划按 Tab 切回 Build 模式让 AI 执行计划2.4 思考过程可见性对于支持扩展思考的模型可以切换思考过程的可见性/thinking # 切换思考块显示/隐藏注意这只控制显示不改变模型的推理能力。要切换模型变体使用ctrlt。三、自定义命令系统3.1 创建自定义命令在.opencode/commands/目录下创建 Markdown 文件即可定义命令.opencode/commands/ ├── test.md # /test ├── review.md # /review ├── component.md # /component └── analyze-coverage.md # /analyze-coverage3.2 命令格式每个命令文件包含 YAML frontmatter 和 Markdown 内容--- description: 运行测试并分析覆盖率 agent: build model: anthropic/claude-sonnet-4-20250514 --- 运行完整测试套件并生成覆盖率报告。 关注失败的测试并建议修复方案。3.3 参数化命令使用$ARGUMENTS或位置参数$1,$2,$3--- description: 创建新的 React 组件 --- 创建一个名为 $ARGUMENTS 的 React 组件包含 TypeScript 类型定义和基本结构。使用/test Button--- description: 创建文件 --- 在目录 $2 中创建名为 $1 的文件内容如下$3使用/create-file config.json src {key: value}3.4 注入 Shell 输出使用!命令将 Shell 命令输出注入到提示词中--- description: 审查最近的代码变更 --- 最近的 Git 提交记录 !git log --oneline -10 审查这些变更并提出改进建议。3.5 引用文件在命令中使用文件名自动包含文件内容--- description: 审查组件代码 --- 审查 src/components/Button.tsx 组件。 检查性能问题并提出改进建议。3.6 JSON 配置方式也可以在opencode.json中配置命令{$schema:https://opencode.ai/config.json,command:{test:{template:运行测试套件并分析覆盖率关注失败的测试。,description:运行测试并分析覆盖率,agent:build,model:anthropic/claude-sonnet-4-20250514}}}3.7 命令选项选项说明template发送给 LLM 的提示词必需descriptionTUI 中显示的操作描述agent指定执行该命令的 Agentmodel为该命令指定默认模型subtask强制以子 Agent 方式执行四、会话管理4.1 会话操作命令快捷键说明/newctrlx n新建会话别名/clear/sessionsctrlx l列出并切换会话别名/resume,/continue/compactctrlx c压缩当前会话上下文别名/summarize/exportctrlx x导出当前会话为 Markdown4.2 撤销/重做OpenCode 的撤销/重做基于 Git会同时回退文件变更/undo # ctrlx u 撤销最后一条消息及其文件变更 /redo # ctrlx r 重做之前撤销的操作注意项目需要是 Git 仓库才能使用此功能。4.3 子 Agent 会话OpenCode 支持子 Agent 独立执行任务子 Agent 在独立上下文中工作不污染主会话可以在命令配置中设置subtask: true强制以子 Agent 执行使用方向键在父子会话间导航上箭头回到父会话下箭头进入第一个子会话右箭头切换到下一个子会话左箭头切换到上一个子会话4.4 CLI 会话管理# 继续上次会话opencode--continueopencode-c# 指定会话 IDopencode--sessionidopencode-sid# 列出所有会话opencode session list opencode session list-n5# 最近 5 个opencode session list--formatjson# Fork 会话opencode--continue--fork# 查看统计信息opencode stats opencode stats--days7# 最近 7 天opencode stats--models5# 显示前 5 个模型使用情况五、模型切换5.1 快速切换操作快捷键说明列出模型/models或ctrlx m显示可用模型列表切换变体ctrlt在当前模型的不同变体间循环最近模型F2在最近使用的模型间循环最近模型反向ShiftF2反向循环5.2 启动时指定模型opencode--modelanthropic/claude-sonnet-4-20250514 opencode-mopenai/gpt-4o opencode run解释闭包--modelanthropic/claude-sonnet-4-202505145.3 查看可用模型opencode models# 列出所有模型opencode models anthropic# 只看 Anthropic 的模型opencode models--refresh# 刷新模型缓存opencode models--verbose# 显示详细信息含价格六、会话分享6.1 分享对话/share # ctrlx s 生成公开链接并复制到剪贴板生成的链接格式opncd.ai/s/share-id6.2 取消分享/unshare # 停止分享删除公开链接和相关数据6.3 分享模式配置在opencode.json中配置{$schema:https://opencode.ai/config.json,share:manual}模式说明manual默认手动分享auto自动分享所有新对话disabled完全禁用分享6.4 自动分享# 环境变量方式exportOPENCODE_AUTO_SHAREtrue# 或在 opencode.json 中设置 share: auto6.5 CLI 分享# 运行时分享opencode run消息--share# 导出会话opencodeexportsessionID# 导入会话opencodeimportsession.json opencodeimporthttps://opncd.ai/s/abc123七、快捷键系统7.1 Leader 键OpenCode 使用 leader 键机制避免终端快捷键冲突。默认 leader 键为ctrlx。使用方式先按ctrlx再按对应功能键。7.2 常用快捷键功能快捷键说明新建会话ctrlx n开始新对话会话列表ctrlx l列出并切换会话压缩上下文ctrlx c压缩历史节省 token撤销ctrlx u撤销最后一条消息重做ctrlx r重做撤销的操作模型列表ctrlx m列出可用模型主题列表ctrlx t列出可用主题帮助ctrlx h显示帮助对话框外部编辑器ctrlx e打开外部编辑器编写消息导出会话ctrlx x导出为 Markdown工具详情ctrlx d切换工具执行详情显示初始化项目ctrlx i创建/更新 AGENTS.md退出ctrlx q退出 OpenCode7.3 导航快捷键功能快捷键说明上一页PageUp/ctrlaltb向上翻页下一页PageDown/ctrlaltf向下翻页到顶部ctrlg/Home跳到第一条消息到底部ctrlaltg/End跳到最后一条消息复制消息ctrlx y复制当前消息内容隐藏/显示提示ctrlx h切换提示可见性7.4 自定义快捷键在tui.json中自定义{$schema:https://opencode.ai/tui.json,keybinds:{leader:ctrlx,session_compact:none}}设置为none可禁用某个快捷键。7.5 输入编辑快捷键快捷键操作ctrla移到行首ctrle移到行尾ctrlb/左箭头后退一个字符ctrlf/右箭头前进一个字符altb/alt左箭头后退一个单词altf/alt右箭头前进一个单词ctrlw/ctrlbackspace删除前一个单词altd/altdelete删除后一个单词ctrlk删除到行尾ctrlu删除到行首ctrld/delete删除光标处字符ctrl-/superz撤销输入ctrl./supershiftz重做输入ctrlc清空输入框shiftreturn换行八、主题与界面8.1 切换主题/themes # ctrlx t 列出并切换主题8.2 TUI 配置在tui.json中配置界面行为{$schema:https://opencode.ai/tui.json,theme:opencode,keybinds:{leader:ctrlx},scroll_speed:3,scroll_acceleration:{enabled:true},diff_style:auto,mouse:true}选项说明theme设置主题scroll_speed滚动速度默认 3scroll_acceleration.enabled启用 macOS 风格滚动加速diff_styleauto自适应终端宽度stacked单列布局mouse启用/禁用鼠标捕获九、CLI 进阶9.1 非交互模式运行# 快速查询opencode run解释 JavaScript 中的闭包# 多行消息opencode run分析项目结构给出架构建议# 附加文件opencode run审查这个组件-fsrc/components/Button.tsx# JSON 格式输出适合脚本解析opencode run列出所有 API 端点--formatjson9.2 附加到运行中的服务# 终端 1启动无头服务opencode serve--port4096# 终端 2附加到服务避免 MCP 冷启动opencode run--attachhttp://localhost:4096解释异步编程9.3 Web 界面opencode web# 启动 Web 服务并打开浏览器opencode web--port4096# 指定端口opencode web--hostname0.0.0.0# 允许远程访问设置密码保护exportOPENCODE_SERVER_PASSWORDyourpassword opencode web9.4 远程附加# 远程机器上启动后端opencode web--port4096--hostname0.0.0.0# 本地附加 TUIopencode attach http://10.20.30.40:4096 opencode attach http://10.20.30.40:4096--dir/path/to/project9.5 ACP 协议opencode acp# 启动 ACP 服务器stdin/stdout 通信opencode acp--port4096# 或监听端口9.6 统计信息opencode stats# 显示 token 用量和费用opencode stats--days7# 最近 7 天opencode stats--tools10# 显示前 10 个工具使用opencode stats--models5# 显示前 5 个模型opencode stats--projectmy-project# 按项目过滤十、项目初始化10.1 /init 命令/init引导式创建或更新AGENTS.md文件OpenCode 会分析项目结构并生成适合的项目说明。建议将AGENTS.md提交到 Git帮助 OpenCode 理解项目结构和编码规范。10.2 AGENTS.md 的作用AGENTS.md是项目级的 AI 指令文件告诉 OpenCode项目使用的技术栈和框架代码风格和命名规范项目目录结构测试和构建流程其他需要 AI 遵循的约定十一、外部编辑器11.1 打开外部编辑器/editor # ctrlx e 在外部编辑器中编写消息使用EDITOR环境变量指定的编辑器。11.2 配置编辑器# Linux/macOSexportEDITORvimexportEDITORcode --wait# Windows PowerShell$env:EDITORcode --wait注意VS Code 等 GUI 编辑器需要加--wait参数。十二、实用技巧12.1 压缩上下文当对话过长、响应变慢时/compact # ctrlx c 压缩会话上下文OpenCode 会将历史对话压缩为摘要节省 token 用量。12.2 命令面板ctrlp # 打开命令面板搜索所有可用命令12.3 中断响应escape # 中断正在生成的响应12.4 环境变量# 禁用自动压缩exportOPENCODE_DISABLE_AUTOCOMPACTtrue# 禁用模型获取exportOPENCODE_DISABLE_MODELS_FETCHtrue# 指定配置文件exportOPENCODE_CONFIG/path/to/config.json# 禁用 Claude Code 兼容读取exportOPENCODE_DISABLE_CLAUDE_CODEtrue# 启用实验性功能exportOPENCODE_EXPERIMENTALtrue12.5 升级与卸载# 升级到最新版本opencode upgrade# 升级到指定版本opencode upgrade v0.1.48# 卸载保留配置opencode uninstall --keep-config --keep-data# 卸载预览不实际删除opencode uninstall --dry-run十三、下一步掌握独有技巧后建议学习09-实战PythonWebAPI开发.md - 完整项目实战10-多模型配置指南.md - 多模型配置11-项目规划测试代码审查实战.md - 全流程实战文档版本: 2.0 | 建议学习时长: 30分钟

更多文章