OpenCode 桌面端:开源编程 AI Agent 的原生应用体验
-
OpenCode 桌面端:开源编程 AI Agent 的原生应用体验
目录- 一、桌面端原生体验
- 1.1 安装与启动
- 1.2 窗口与标题栏
- 1.3 多会话管理
- 二、完整 TUI 界面
- 2.1 会话控制
- 2.2 消息与输入
- 2.3 Diff 查看器
- 2.4 命令面板
- 2.5 思维链(Thinking)显示
- 三、多模型与多供应商
- 3.1 模型接入方式
- 3.2 模型管理
- 3.3 OpenCode Go 模型矩阵
- 四、会话管理
- 4.1 多会话并行
- 4.2 会话置顶
- 4.3 会话压缩(Compaction)
- 4.4 会话分叉(Fork)
- 4.5 会话导入/导出
- 五、分享与协作
- 5.1 分享机制
- 5.2 分享模式
- 5.3 取消分享
- 5.4 企业级安全
- 六、桌面通知与注意力系统(Attention)
- 6.1 触发场景
- 6.2 配置项(tui.json)
- 七、深度自定义
- 7.1 主题系统
- 7.2 快捷键系统
- 7.3 桌面端专用快捷键
- 7.4 桌面端键盘快捷键
- 7.5 其他自定义
- 八、LSP 语言服务器集成
- 8.1 内置 LSP 支持
- 8.2 配置
- 九、MCP 服务器(Model Context Protocol)
- 9.1 支持的 MCP 类型
- 9.2 配置
- 9.3 MCP 工具管理
- 9.4 OAuth 认证
- 9.5 常用 MCP 示例
- 十、权限与安全系统
- 10.1 权限级别
- 10.2 可配置的权限项
- 10.3 精细权限控制
- 10.4 权限提示 UI
- 10.5 企业级托管配置
- 十一、Web 服务器模式
- 11.1 启动
- 11.2 Web 功能
- 11.3 终端附加
- 十二、IDE 扩展
- 12.1 支持平台
- 12.2 快捷键操作
- 12.3 自动安装
- 十三、Agent 系统
- 13.1 内置 Agent
- 13.2 自定义 Agent
- 13.3 默认 Agent
- 13.4 子代理
- 13.5 Agent 预设
- 十四、自定义命令
- 十五、Formatter 与 Lint 集成
- 15.1 内置格式化工具
- 15.2 配置
- 十六、配置系统
- 16.1 配置文件
- 16.2 配置加载优先级
- 16.3 变量替换
- 十七、日志与调试
- 十八、近期桌面端新增功能(v1.15.x)
- 小结
OpenCode 是一个开源的 AI 编程代理,拥有超 16 万 GitHub Stars、900 多位贡献者,每月服务超 750 万开发者。除了终端 CLI 和 IDE 扩展之外,OpenCode 提供桌面端应用(Beta),支持 macOS(Apple Silicon & Intel)、Windows(x64)和 Linux(.deb / .rpm)。桌面端将 TUI 包装为原生窗口,搭配多会话标签页、桌面通知、系统菜单栏等原生能力。以下逐一拆解其全部功能。
一、桌面端原生体验
桌面端的核心定位是将 OpenCode 的 TUI(Terminal User Interface)以原生应用形态呈现,同时叠加窗口系统专属能力。
1.1 安装与启动
平台 安装方式 macOS 下载 .dmg 安装,或 brew install --cask opencode-desktopWindows 下载 .exe NSIS 安装器 Linux .deb(Debian/Ubuntu)或 .rpm(Fedora/RHEL) 首次启动后,桌面端可直接从系统 Dock / 任务栏 / 应用菜单启动,无需打开终端。支持自动更新(可在
opencode.json中设置autoupdate: false禁用,或设为"notify"仅接收更新通知)。1.2 窗口与标题栏
- 标题栏内嵌会话标签页导航,当前会话状态(如运行中、等待输入)直接显示在标题栏
- 支持标签页布局切换(设置中可选择标签页排列方式)
- 每个标签页对应一个独立的 OpenCode 会话,互不干扰
- 标题栏集成应用更新操作入口
- Linux / Windows 支持菜单栏自动隐藏
1.3 多会话管理
- Ctrl / Cmd + 数字键:在多个项目间快速切换
- 关闭当前项目后自动打开下一个可用项目
- 每个标签页独立维护自己的上下文、模型选择和对话历史
- 标签页关闭按钮可视化(修复了早期版本不稳定显示的问题)
二、完整 TUI 界面
桌面端内置了完整的 TUI,是日常交互的核心界面。
2.1 会话控制
斜杠命令系统
输入
/即可触发命令,完整命令列表:命令 别名 功能 默认快捷键 /help— 显示帮助对话框 — /init— 引导创建/更新 AGENTS.md项目规则— /connect— 添加 LLM 供应商并配置 API Key — /models— 列出所有可用模型 Ctrl+x m/new/clear新建会话 Ctrl+x n/sessions/resume/continue列出并切换会话 Ctrl+x l/undo— 撤销上一条消息及其所有文件变更 Ctrl+x u/redo— 重做撤销的变更 Ctrl+x r/compact/summarize压缩当前会话(折叠早期上下文) Ctrl+x c/share— 生成当前会话的公开分享链接 — /unshare— 取消分享会话 — /export— 将会话导出为 Markdown 并打开编辑器 Ctrl+x x/editor— 使用外部编辑器撰写消息 Ctrl+x e/details— 切换工具执行细节显示 — /themes— 列出并切换主题 Ctrl+x t/thinking— 切换推理过程的显示/隐藏 — /exit/quit/q退出 OpenCode Ctrl+x qPlan 模式与 Build 模式
- 按 Tab 键 在 Plan(计划模式)和 Build(构建模式)之间切换
- Plan 模式:AI 只能生成方案,禁止任何文件修改,适合需求讨论阶段
- Build 模式:AI 可以读取、写入、修改文件,执行实际编码
- 状态指示器显示在右下角,清晰标明当前所处模式
撤销 / 重做系统
- 基于 Git 管理文件变更,项目必须是 Git 仓库
- 支持多次连续撤销,每次回到上一个消息状态
- 重做恢复撤销的变更及其对应的文件修改
- 快照功能默认开启(可在
opencode.json中设置snapshot: false关闭)
2.2 消息与输入
文件引用(@ 语法)
- 在消息中输入
@触发模糊搜索,自动补全项目文件路径 - 引用文件的全部内容自动加入对话上下文
- 支持配置引用别名:
@alias添加根目录,@alias/深度搜索子文件
Shell 命令(! 语法)
- 消息以
!开头直接执行 Shell 命令 - 命令输出自动作为工具结果返回给 AI
- Shell 可配置(
opencode.json中shell选项,支持 pwsh、zsh、bash 等)
提示输入功能
- 输入框随终端宽度自适应 resize,可通过配置设定最小/最大尺寸
- 多行输入:
Shift+Enter换行,Enter提交 - 输入历史:上下箭头浏览历史消息
- 剪贴板粘贴:支持
Ctrl+V(可配置preventDefault) - 拖放图片:直接拖拽图片到输入框,自动转换为上下文
编辑器集成
/editor使用$EDITOR环境变量指定的编辑器撰写长消息/export导出会话到编辑器查看- 支持 VS Code、Cursor、Neovim、Vim、Nano、Sublime Text 等编辑器
- GUI 编辑器需要
--wait标志
2.3 Diff 查看器
- 内置代码差异查看器,支持文件树浏览
- 单一子目录自动折叠,保持文件树简洁
- 差异展示模式:
auto(自适应宽度)、stacked(固定单列) - 进入 Diff 查看器后自动聚焦第一个变更文件
- 关闭 Diff 查看器后返回之前浏览的界面
- 键盘快捷键操作,支持快速浏览
2.4 命令面板
Ctrl+P打开命令面板- 支持模糊搜索所有可用操作
- 部分设置(如用户名显示切换)通过命令面板调整且重启后持久化
2.5 思维链(Thinking)显示
- 支持模型的逐步推理过程展示
- 可折叠/展开推理块
/thinking命令控制推理块的显示与隐藏Ctrl+T循环切换模型变体(含是否启用扩展推理)- 折叠状态的默认为收起
三、多模型与多供应商
桌面端支持对接 75+ LLM 供应商,覆盖云模型和本地模型。
3.1 模型接入方式
方式 说明 OpenCode Zen 经过 OpenCode 团队测试验证的精选模型,按量付费 OpenCode Go 月订阅制(首月 \(5,续费\)10/月),含 DeepSeek V4 Pro/Flash、GLM-5/5.1、Kimi K2.5/2.6、Qwen3.6 Plus/Qwen3.7 Max、MiniMax M2.5/M2.7/M3、MiMo-V2.5/V2.5-Pro 等 自有 API Key Anthropic Claude、OpenAI GPT、Google Gemini、Groq、AWS Bedrock、Azure 等 本地模型 ollama、llama.cpp 等本地开源模型 GitHub Copilot 直接登录 GitHub 账号使用 Copilot 额度 ChatGPT Plus/Pro 登录 OpenAI 账号使用 Plus/Pro 额度 Models.dev 聚合 75+ 供应商的统一入口 3.2 模型管理
/models列出所有可用模型Ctrl+A供应商列表,Ctrl+F收藏模型F2/Shift+F2最近使用模型快速切换- 模型选择跨会话持久化,切换标签页不会丢失选定模型
model和small_model配置主模型与轻量模型(标题生成等小任务)- 支持按供应商级别配置超时(
timeout、chunkTimeout)
3.3 OpenCode Go 模型矩阵
模型 输入价格(/1M tokens) 输出价格 DeepSeek V4 Flash \(0.14 |\)0.28 MiMo V2.5 \(0.14 |\)0.28 DeepSeek V4 Pro \(1.74 |\)3.48 GLM-5 \(1.00 |\)3.20 GLM-5.1 \(1.40 |\)4.40 Kimi K2.5 \(0.60 |\)3.00 MiniMax M2.5 \(0.30 |\)1.20 Qwen3.6 Plus \(0.50 |\)3.00 四、会话管理
4.1 多会话并行
- 每个标签页一个独立会话,可并行运行
- 会话数据持久化存储,重启应用后恢复
- 最近会话自动出现在会话选择器中
4.2 会话置顶
- 支持将会话置顶到会话列表顶部
- 已置顶会话分配快速切换快捷键槽位
- 置顶会话在列表中保持固定位置(不因新活动而移动)
- 允许在置顶会话间循环切换
4.3 会话压缩(Compaction)
- 当上下文即将填满时自动压缩(默认开启)
auto:自动触发;prune:移除旧工具输出节省 tokenreserved:保留 token 缓冲区(默认 10000),避免压缩期间溢出- 压缩后保留最近几轮对话(不会全部折叠到摘要中)
- 可手动
/compact触发
4.4 会话分叉(Fork)
- 从已有会话创建分叉,保留到分叉点的所有历史
- 分叉后新旧会话独立演进
4.5 会话导入/导出
- 会话可导出为 Markdown 文件
- 导入的会话自动刷新目录和相对路径字段
- 支持
--replay和--replay-limit参数恢复最近历史
五、分享与协作
5.1 分享机制
/share生成唯一 URL:opncd.ai/s/<share-id>- 分享内容同步到 OpenCode 服务器
- 任何拥有链接的人可公开访问
5.2 分享模式
模式 行为 manual(默认)手动 /share分享auto新建会话自动分享 disabled完全禁用分享功能 5.3 取消分享
/unshare停止分享并删除服务器数据- 删除全部会话历史、消息和元数据
5.4 企业级安全
- 支持 SSO 认证用户仅限分享
- 支持自托管分享服务器
- 可通过 MDM / 托管配置强制禁用分享
六、桌面通知与注意力系统(Attention)
6.1 触发场景
桌面端在以下场景触发注意力机制:
- AI 需要用户确认(提问)
- 需要用户授权(权限请求)
- 会话出错
- 会话完成
- 子代理任务完成
6.2 配置项(
tui.json){ "attention": { "enabled": true, // 总开关 "notifications": true, // 桌面通知(窗口失焦时) "sound": true, // 音效开关 "volume": 0.4, // 音量 0~1 "sound_pack": "opencode.default", // 音效包 "sounds": { "error": "./sounds/error.mp3", "question": "./sounds/question.mp3", "permission": "./sounds/permission.mp3", "done": "./sounds/done.mp3", "subagent_done": "./sounds/subagent_done.mp3" } } }- 内置音效包
opencode.default - 所有音效支持自定义文件覆盖(绝对路径、
file://URL 或相对于tui.json的路径) - 非子代理事件仅在终端窗口模糊时推送桌面通知
七、深度自定义
7.1 主题系统
内置主题
主题 说明 system自适应终端背景色,使用 ANSI 标准色 tokyonight基于 Tokyonight everforest基于 Everforest ayu基于 Ayu Dark catppuccin基于 Catppuccin catppuccin-macchiatoCatppuccin 变体 gruvbox基于 Gruvbox kanagawa基于 Kanagawa nord基于 Nord matrix黑客风格绿底黑字 one-dark基于 Atom One Dark 自定义主题
- JSON 格式,支持:
- 16 进制色:
"#ffffff" - ANSI 色索引:
3(0-255) - 颜色引用:
"primary"引用自定义定义 - 亮/暗双模式:
{"dark": "#000", "light": "#fff"} - 透明色:
"none"(继承终端默认色)
- 16 进制色:
- 主题加载优先级:内置 < 用户目录 < 项目根目录 < 当前目录
- 完整颜色定义覆盖:primary / secondary / accent / text / background / border / diff / markdown / syntax 等 40+ 色彩变量
主题目录结构
~/.config/opencode/themes/my-theme.json .opencode/themes/my-theme.json7.2 快捷键系统
完整的键盘快捷键系统,覆盖所有操作:
Leader 键系统:默认
Ctrl+X,按 Leader 键后再按功能键触发操作,避免终端快捷键冲突。可通过leader_timeout设置等待超时(默认 2000ms)。分组快捷键一览:
分组 示例快捷键 功能 应用 Ctrl+X q退出 Ctrl+P命令面板 Ctrl+X h显示提示 编辑器 Ctrl+X e打开外部编辑器 主题 Ctrl+X t选择主题 会话 Ctrl+X n新建会话 Ctrl+X l会话列表 Ctrl+X u撤销 Ctrl+X r重做 Ctrl+X c压缩 Ctrl+X x导出 Ctrl+R重命名会话 Ctrl+D删除会话 Escape中断响应 模型 Ctrl+X m模型列表 Ctrl+A供应商列表 Ctrl+F收藏模型 F2切换最近模型 Tab切换 Agent Ctrl+T切换模型变体 子代理 ↑返回父会话 ←/→切换子代理 Ctrl+X ↓跳转子代理 消息导航 PageUp/Down上下翻页 Home/End首尾跳转 Ctrl+X y复制消息 输入编辑 Ctrl+A行首(桌面端) Ctrl+E行尾(桌面端) Ctrl+K删至行尾 Ctrl+U删至行首 Ctrl+W删除前一个词 Ctrl+D删除光标处字符 快捷键支持禁用(设为
"none")、多重绑定(数组对象),以及preventDefault等高级配置。7.3 桌面端专用快捷键
桌面端输入框支持 Readline/Emacs 风格的编辑快捷键:
快捷键 功能 Ctrl+A移动到当前行开头 Ctrl+E移动到当前行末尾 Ctrl+B光标后退一个字符 Ctrl+F光标前进一个字符 Alt+B光标后退一个词 Alt+F光标前进一个词 Ctrl+D删除光标下的字符 Ctrl+K删除到行尾 Ctrl+U删除到行首 Ctrl+W删除前一个词 Alt+D删除后一个词 Ctrl+T交换字符 Ctrl+G取消弹出框 / 中断响应 7.4 桌面端键盘快捷键
快捷键 功能 Ctrl/Cmd+数字键切换项目 Ctrl/Cmd+Shift+数字键切换标签页 Ctrl/Cmd+W关闭当前标签页 Ctrl/Cmd+Shift+[前一个标签页 Ctrl/Cmd+Shift+]后一个标签页 7.5 其他自定义
滚动设置:
scroll_speed:滚动速度(默认 3,支持小数)scroll_acceleration:macOS 风格加速滚动(开启后覆盖scroll_speed)
鼠标设置:
mouse:启用/禁用鼠标捕获(默认true,关闭后恢复终端原生选择)
Diff 显示:
diff_style:"auto"(自适应宽度)或"stacked"(固定单列)
用户名显示:
- 通过命令面板切换聊天中用户名的显示/隐藏,持久化存储
八、LSP 语言服务器集成
OpenCode 自动加载 LSP 服务器,将诊断反馈传递给 AI 代理。
8.1 内置 LSP 支持
语言 LSP 服务器 文件扩展名 TypeScript/JavaScript typescript .ts, .tsx, .js, .jsx Python pyright .py, .pyi Rust rust-analyzer .rs Go gopls .go C/C++ clangd .c, .cpp, .h C# csharp-ls .cs Java jdtls .java PHP intelephense .php Swift sourcekit-lsp .swift Ruby ruby-lsp .rb Dart dart .dart Lua lua-ls .lua Terraform terraform-ls .tf Svelte svelte-ls .svelte Vue vue-ls .vue Astro astro-ls .astro Bash bash-language-server .sh Nix nixd .nix Zig zls .zig Prisma prisma-ls .prisma CSS/JSON/HTML — 各类 web 文件 … 共 30+ 内置 LSP — 8.2 配置
{ "lsp": true // 一键启用全部 } { "lsp": { "typescript": { "disabled": true }, // 单独禁用 "custom-lsp": { "command": ["custom-lsp-server", "--stdio"], "extensions": [".custom"], "env": { "DEBUG": "1" }, "initialization": { "preferences": {} } } } }LSP 默认关闭。建议在确实需要时启用,因为 LSP 可能消耗大量内存并拖慢代理工作流。更好的做法是在
AGENTS.md中配置 lint/typecheck 命令让 AI 直接运行。九、MCP 服务器(Model Context Protocol)
9.1 支持的 MCP 类型
类型 说明 配置示例 local本地命令启动 npx -y @modelcontextprotocol/server-everythingremote远程 HTTP URL https://mcp.example.com/mcpOAuth remote OAuth 认证远程 自动检测 401 并发起 OAuth 流程 9.2 配置
{ "mcp": { "my-mcp": { "type": "local", "command": ["bun", "x", "my-mcp-command"], "enabled": true, "environment": { "KEY": "value" }, "timeout": 5000 } } }9.3 MCP 工具管理
- 工具以
mcp-server-name_tool-name格式注册 - 可在
tools配置中全局启用/禁用 - 支持按 Agent 粒度控制 MCP 工具可见性
- 支持 Glob 模式批量禁用
9.4 OAuth 认证
- 自动动态客户端注册(RFC 7591)
- Token 安全存储于
~/.local/share/opencode/mcp-auth.json - 支持预注册 clientId/clientSecret
- CLI 管理命令:
opencode mcp auth <name>:手动触发 OAuthopencode mcp list:列出所有 MCP 及认证状态opencode mcp logout <name>:清除凭据opencode mcp debug <name>:调试连接和 OAuth 流程
9.5 常用 MCP 示例
MCP 服务器 用途 Sentry 查询和操作 Sentry 项目/issue Context7 全文档搜索 Grep by Vercel 搜索 GitHub 代码片段 @modelcontextprotocol/server-everything 测试用工具集 十、权限与安全系统
10.1 权限级别
"allow":自动执行"ask":用户确认"deny":阻止执行
10.2 可配置的权限项
权限键 控制范围 默认值 read文件读取 allow(.env 文件默认 deny)edit文件修改(edit/write/patch) allowglob文件搜索 allowgrep内容搜索 allowbashShell 命令 allowtask子代理启动 allowskill技能加载 allowlspLSP 查询 allowquestion向用户提问 allowwebfetchURL 抓取 allowwebsearch网络搜索 allowexternal_directory项目外目录访问 askdoom_loop重复工具调用检测(3 次相同输入) ask10.3 精细权限控制
支持按命令模式匹配的细粒度权限:
{ "permission": { "bash": { "*": "ask", "git *": "allow", "rm *": "deny", "npm *": "allow" }, "read": { "*": "allow", ".env": "deny", ".env.*": "deny", ".env.example": "allow" } } }通配符支持:
*(任意多字符)、?(单个字符)、~/$HOME家目录展开。10.4 权限提示 UI
当需要用户确认时,UI 提供三个选项:
- once:仅本次允许
- always:本次会话内自动允许匹配该模式的操作
- reject:拒绝
10.5 企业级托管配置
支持通过 MDM 和系统级配置强制执行:
平台 托管路径 macOS /Library/Application Support/opencode/Linux /etc/opencode/Windows %ProgramData%\opencodemacOS MDM .mobileconfig+ai.opencode.managed偏好域十一、Web 服务器模式
桌面端也可作为 Web 服务器运行,提供浏览器内的 OpenCode 体验。
11.1 启动
opencode web --port 4096 --hostname 0.0.0.011.2 Web 功能
- 完整的会话管理(开始、查看、切换)
- 服务器状态查看
- 支持 mDNS 服务发现(
opencode web --mdns,默认域名opencode.local) - 多实例支持(自定义 mDNS 域名)
- CORS 配置(自定义前端接入)
- 密码保护(
OPENCODE_SERVER_PASSWORD)
11.3 终端附加
Web 服务器运行时可从终端附加 TUI:
opencode attach http://localhost:4096Web 与终端共享同一组会话和状态。
十二、IDE 扩展
OpenCode 桌面端与主流 IDE 深度集成。
12.1 支持平台
IDE 安装方式 VS Code 扩展市场安装 Cursor 内置支持 Windsurf 扩展支持 VSCodium 扩展市场安装 Zed 内置支持(仅 Zed 终端) 12.2 快捷键操作
Cmd+Esc(Mac)/Ctrl+Esc(Windows/Linux):在分栏终端中打开 OpenCodeCmd+Shift+Esc/Ctrl+Shift+Esc:新建会话Cmd+Option+K(Mac)/Alt+Ctrl+K:插入文件引用(@File#L37-42)- 自动共享当前选中代码和标签页文件上下文
12.3 自动安装
在 IDE 终端中直接运行
opencode,扩展自动安装。如果失败,确保 IDE 的 CLI 命令已加入 PATH。十三、Agent 系统
13.1 内置 Agent
Agent 说明 build默认构建 Agent,可读写文件 plan计划 Agent,只生成方案 13.2 自定义 Agent
支持 JSON 和 Markdown 两种定义方式:
{ "agent": { "code-reviewer": { "description": "代码审查", "model": "anthropic/claude-sonnet-4-5", "prompt": "You are a code reviewer. Focus on security.", "tools": { "write": false, "edit": false } } } }Markdown 文件形式(
~/.config/opencode/agents/review.md):--- description: Code review without edits mode: subagent permission: edit: deny bash: ask --- Only analyze code and suggest changes.13.3 默认 Agent
default_agent配置可设置默认 Agent("build"或"plan"或自定义)。如果指定的 Agent 不存在,降级到"build"。13.4 子代理
- 支持子代理嵌套调用
Ctrl+X ↓跳转/聚焦子代理会话←/→切换子代理↑返回父会话- 实验性:后台子代理,任务可继续运行而不阻塞主会话
13.5 Agent 预设
操作可通过
/agent或Tab快速切换不同 Agent。十四、自定义命令
在
opencode.json中定义可复用的快捷命令:{ "command": { "test": { "template": "Run full test suite with coverage.", "description": "Run tests with coverage", "agent": "build", "model": "anthropic/claude-haiku-4-5" }, "component": { "template": "Create new React component $ARGUMENTS with TypeScript.", "description": "Create new component" } } }- 支持
$ARGUMENTS变量替换 - 可为命令指定不同的 Agent 和模型
- 支持 Markdown 文件方式定义
十五、Formatter 与 Lint 集成
15.1 内置格式化工具
格式化器 支持文件 Prettier .js, .ts, .jsx, .tsx, .json, .css, .md Ruff .py 自定义 任意通过命令配置 15.2 配置
{ "formatter": { "prettier": { "disabled": true }, "custom-prettier": { "command": ["npx", "prettier", "--write", "$FILE"], "extensions": [".js", ".ts"] } } }十六、配置系统
16.1 配置文件
文件 作用域 用途 opencode.json全局/项目 服务器/运行时配置 tui.json全局/项目 TUI 界面配置 AGENTS.md项目 项目规则和指令 16.2 配置加载优先级
- 远程配置(
.well-known/opencode) - 全局配置(
~/.config/opencode/opencode.json) - 自定义路径(
OPENCODE_CONFIG环境变量) - 项目配置(项目根目录
opencode.json) .opencode目录(agents, commands, plugins)- 内联配置(
OPENCODE_CONFIG_CONTENT环境变量) - 托管配置(系统级 managed config)
- macOS MDM(优先级最高,不可被用户覆盖)
配置合并而非覆盖,不同来源的非冲突设置全部保留。
16.3 变量替换
{ "model": "{env:OPENCODE_MODEL}", "provider": { "anthropic": { "options": { "apiKey": "{env:ANTHROPIC_API_KEY}" } }, "openai": { "options": { "apiKey": "{file:~/.secrets/openai-key}" } } } }{env:NAME}:引用环境变量{file:path}:引用文件内容(支持相对路径、绝对路径、~家目录)
十七、日志与调试
- 桌面端日志导出:通过标题栏菜单导出
- 调试配置:
opencode debug config查看当前所有已合并配置 - MCP 调试:
opencode mcp debug <name> - 更新日志:
autoupdate: "notify"在新版本可用时通知但不下自动安装- 更新操作入口集成在标题栏
- 安装最新可用更新(避免重复下载)
十八、近期桌面端新增功能(v1.15.x)
版本 功能 v1.15.13 标签页布局切换设置、Home 空状态改进 v1.15.12 标题栏标签页导航、会话状态显示、VCS 刷新去抖 v1.15.11 桌面端 V2 Home 界面、Prompt 输入框优化、状态弹出框 v1.15.10 恢复生产环境桌面端打开项目和会话流程 v1.15.9 缩放手势设置、新 Home 视图、会话入口、标题栏重构、日志导出 v1.15.7 桌面端标签页初始支持、Windows 原生菜单、乌克兰语支持、自定义供应商即时生效 v1.15.6 桌面通知许可、用量限制对话框、大时间线加速渲染、PWA 状态栏主题同步 v1.15.5 MCP 连接状态显示、OAuth 应用内重新认证 v1.15.4 修正 Windows 应用检测 v1.15.3 Arch Linux 支持 v1.15.2 Linux/Windows 菜单栏自动隐藏 v1.15.1 完整标签页、标题栏重构 v1.15.0 Pinch Zoom、新 Home 界面、桌面日志导出 v1.14.50 Ctrl/Cmd+数字键项目切换、Todo 面板折叠记忆、Linux AppStream 元数据、登录 Shell 环境变量、模型变体跨会话持久化、自动打开下一个项目 小结
OpenCode 桌面端不仅仅是一个套壳的终端——它在完整保留 TUI 能力的基础上,叠加了原生窗口系统的多会话标签页、桌面通知、系统菜单、缩放手势、日志导出等能力。配合 75+ 供应商接入、30+ LSP 语言服务器、MCP 工具扩展、精细的权限控制、深度可定制的主题和快捷键系统,覆盖了从个人快速编码到企业安全合规的完整场景。
桌面端仍在 Beta 阶段,功能迭代速度极快(v1.15 系列几乎每日更新)。如果你想尝试开源编程 AI Agent 的原生桌面体验,现在就是最好的时机。
下载:opencode.ai/download GitHub:github.com/anomalyco/opencode 文档:opencode.ai/docs
歡迎留言回复交流。
Log in to reply.