说来也怪,同样是面对AI编程,有人在Web聊天窗口里一段一段复制代码、反复解释上下文,改了三轮还在原地打转;而有些人已经在终端里敲下一条指令,让AI自己读项目、改文件、跑测试、提交代码,一条龙干完收工。我属于后者,而把我从“对话框式AI编程”拽进“Agent式AI编程”的,就是OpenCode。
OpenCode是一个开源的AI编程终端工具,你可以把它理解成一位住在命令行里的结对工程师。它把Claude、GPT、DeepSeek这类大模型接到终端里,让你不需要在浏览器和编辑器之间来回切换,直接在TUI界面里交代需求,它就能读取整个项目、搜索代码、修改文件、执行命令,甚至调出CodeGraph看懂复杂的模块依赖关系。这一整套能力组合起来,就是标题里说的“十八般武艺”。而这篇博文,就是想把我在实际使用中验证过的核心工具、配置方法、踩坑经验一次讲透。适合所有想在2026年把AI编程能力真正落到日常开发流程里的工程师,无论你是刚接触Agent工具,还是已经在用Cursor、Copilot想换个更灵活的终端方案。
1. 为什么OpenCode值得你从GUI编辑器里分出一只手
1.1 AI编程工具的四次迭代:从补全到Agent
过去几年AI编程工具的演进,可以粗暴分成四个阶段。第一阶段是补全型,以早期的GitHub Copilot为代表,你写注释它补代码,本质是“加强版自动补全”;第二阶段是聊天型,比如ChatGPT网页、Copilot Chat,你复制代码进去,它回一段代码出来;第三阶段是内联编辑型,Cursor、Copilot Edits让你选中代码直接让AI改,改完原地预览diff。这三个阶段有个共同点:AI始终在“等”你喂它上下文,它没有主动性。
第四个阶段才是Agent型。OpenCode、Claude Code这类工具做了一件质变的事:AI开始自己浏览项目目录、读取相关文件、执行命令、查看运行结果,然后根据结果决定下一步动作。它不再是一个被动的问答机器,而是一个有“行动力”的工作伙伴。这个质变带来的好处很直接——你不需要在上下文里贴一大段代码,只需要说“帮我修一下订单超时未支付状态没更新的bug”,它会自己去找到订单模块、读懂状态机、定位问题、改掉代码、跑测试验证。
OpenCode就是第四阶段工具的典型代表,而且它的开源属性和插件生态让它比同类的商业产品更灵活。
1.2 OpenCode能做什么:一个终端TUI的能力边界
很多人第一次打开OpenCode,会以为它只是一个“好看的终端聊天框”,这大大低估了它。我实际用下来,它的能力边界大概有这几层:
- 多模型对话:同时配置多个模型,按任务切换。日常小改动可以用快模型,复杂架构分析换到强模型,不用分别打开不同网站。
- 项目级上下文感知:它会在启动时扫描项目结构,读取
.opencode目录和项目配置,调用CodeGraph时可以理解跨文件调用关系,而不是像聊天窗口那样瞎子摸象。 - 文件操作与命令执行:AI可以直接创建、修改、删除文件,也能在终端里执行构建、测试、git命令,它会自己看报错然后修复。
- Skills技能机制:支持加载“技能包”,把prompt、脚本、工具封装成可复用的技能,比如“代码审查”“清理无用依赖”“生成commit message”。
- TUI交互界面:支持
/models切换模型、/skills查看技能、滚动浏览文件diff,快捷键操作非常顺手。
一句话总结:OpenCode把“AI编程”从问答游戏变成了真正的结对编程。它适合那些愿意花十分钟配好环境、换来自动化收益的开发者;反过来,如果你连终端都不想打开,那确实不是它的目标用户。不过OpenCode也有桌面版,这个后面会细说。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装与启动:把OpenCode跑起来的三条路,以及最容易踩的坑
2.1 安装方式对比:npm、官方脚本、Release二进制
OpenCode的安装方式不算复杂,但选错方式会让后续维护有麻烦。官网和社区里常见的是三种:
| 安装方式 | 适合场景 | 依赖条件 | 升级方式 |
|---|---|---|---|
| npm全局安装 | 已经有Node.js开发环境的日常用户 | Node.js 18+ | npm update -g opencode |
| 官方安装脚本 | 不想装Node、想要官方自动管理的用户 | curl/bash可用 | 重跑脚本 |
| Release二进制 | 离线环境、Windows用户、需要固定版本 | 无 | 手动替换二进制 |
我自己最常用的是npm方式,因为本来就要跑前端项目,Node环境现成。命令很简单:
bash复制npm install -g opencode
装完直接执行 opencode 就能进入TUI。如果你不想用npm或者没有Node环境,官方提供的一键安装脚本目前在macOS和Linux上都很稳,Windows上我更建议下面讲到的Release方式或者scoop。
2.2 Windows的“无法识别cmdlet”报错,源头是PATH
每次在Windows上推荐文章给朋友,十个里有四个会发来同一张报错截图:
powershell复制opencode : 无法将“opencode”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果存在路径,请确保该路径正确,然后再试一次。
这个报错的源头不在OpenCode,而在npm的全局bin目录没有加入系统PATH。npm安装全局包后,可执行文件放在 %APPDATA%\npm 目录下,如果这个路径不在PATH里,PowerShell自然找不到 opencode。处理方法:
- 按
Win + R,输入sysdm.cpl,打开“高级 → 环境变量”。 - 在“用户变量”里找到
Path,点击编辑,新增一行%APPDATA%\npm。 - 确定保存后,务必新开一个终端窗口再试(PowerShell不会自动刷新环境变量)。
如果不想动环境变量,还有一个更省事的方案:直接用scoop安装,scoop install opencode,它会把所有应用统一管理到 ~/scoop/shims,这个路径在scoop初始化时已经自动加进PATH,能少踩一个坑。
2.3 首次启动与终端选择:WezTerm等终端的交互细节
启动OpenCode只需要在终端里输入 opencode,回车后你会看到一个TUI界面。第一次启动它会做两件事:检查有没有登录/配置模型Provider,然后扫描当前目录生成项目上下文。
这里我想专门说一下终端模拟器的选择。为什么很多人在Windows上体验不好?大概率因为用的是默认的cmd或Windows Terminal。OpenCode的TUI依赖ANSI转义序列、鼠标交互和快捷键,老旧的cmd窗口会出现渲染错位、快捷键失灵。我目前的主力环境是WezTerm,它在Windows、macOS、Linux下表现一致,对TUI支持很完整,GPU加速渲染也让长时间刷日志不卡顿。iTerm2(macOS用户)和Windows Terminal也OK,但某些特殊字体渲染下光标的定位会偏,建议用等宽字体比如JetBrains Mono或CaskaydiaCove Nerd Font。
WezTerm用户还会遇到一个安装细节:执行官方安装脚本时,脚本提示“Press Enter to continue”而你发现键盘按了没反应,容易误以为卡住。解决办法很简单,用鼠标在终端里点一下,确认焦点在WezTerm窗口里,再按回车即可。有些终端默认开启了“鼠标选中即复制”的模式,会把回车吃进选区里,交互就僵住了。
3. 模型接入与切换:OpenCode的“换芯术”
3.1 三种模型接入方式:官方登录、环境变量、配置文件
OpenCode真正让我离不开的,是它对模型接入方式的宽容度。你可以像用ChatGPT一样登录官方账号直接用,也可以接第三方API,还可以配本地模型。三种方式可以同时存在,切换起来极其顺滑。
官方登录是最省事的方式。在TUI里输入:
bash复制/auth
然后按照提示在浏览器里完成OAuth授权,对应的模型服务商账号就自动配置好了。适合不想折腾配置、直接用Claude或者GPT官方账号的人。
但国内开发者更常用的其实是第二种方式——通过环境变量注入API Key。比如DeepSeek官方API,只需要把Key放到环境变量里:
bash复制export DEEPSEEK_API_KEY=sk-xxxxxxxx
OpenCode启动时会按官方文档约定的名称去读取这些环境变量,自动识别可用的模型。
第三种方式更灵活,也是我认为最值得掌握的:通过 opencode.json 配置文件,手动定义一个Provider。示例:
json复制{
"$schema": "https://opencode.ai/config.json",
"provider": {
"my-deepseek": {
"npm": "@ai-sdk/deepseek",
"name": "DeepSeek 官方",
"options": {
"baseURL": "https://api.deepseek.com",
"apiKey": "{env:DEEPSEEK_API_KEY}"
},
"models": {
"deepseek-chat": {
"name": "DeepSeek V3"
},
"deepseek-reasoner": {
"name": "DeepSeek R1"
}
}
}
}
}
这套配置的核心逻辑是:Provider是“模型来源”,Models是“具体模型列表”,OpenCode读取后会把所有Provider下的模型汇总成一个总列表,你可以用 /models 随时切换。{env:XXX} 这种写法可以避免把密钥写死在配置文件里,强烈建议采用。
3.2 多模型切换不是换个聊天框,而是按任务换模型
有配置经验之后,你会发现模型切换的颗粒度应该比“换个聊天框”细得多。我的日常习惯是:
- 交互设计、架构评审:用推理能力强的模型,比如Claude的opus级别模型,或者DeepSeek R1这种推理模型。
- 改bug、写工具函数:用速度快、价格低的模型,比如DeepSeek V3系列,实测下来响应速度明显快,足够应付大部分重构。
- 视觉类任务:比如看截图改UI、根据设计稿生成代码,需要切到带视觉能力的模型,例如DeepSeek V4 Flash Vision Exp这类实验性的视觉模型。
在OpenCode里切换模型特别快,输入 /models 弹出模型列表,上下键选择,回车即切换。而且在同一次会话中,你可以中途换模型继续对话——之前的上下文还在,但后续推理用的是新模型。这个机制很实用,比如先用视觉模型截图理解问题,再切到推理模型去改代码。
3.3 订阅聚合服务与“模型不显示”的排查思路
最近不少人在问“opencode go订阅”和“某模型突然不显示”的问题。我见过一个很典型的场景:用户订阅了某个模型聚合服务,然后在OpenCode里开启那个服务商之后,发现原本能看到的DeepSeek V4 Flash Vision Exp不见了,只剩服务商默认的那两三个模型。
这背后的原因通常是:订阅聚合服务商自己维护了一套“模型白名单”,它返回给OpenCode的模型列表只有它限定的几个。你开启该Provider后,OpenCode默认以服务商的models接口返回为准,覆盖了你自己在 opencode.json 里手动定义的模型清单。换句话说,不是OpenCode把模型藏起来了,而是Provider的模型列表把旧的顶掉了。
排查路径我建议按三步走:
- 检查
opencode config输出,确认当前生效的Provider和模型列表。 - 检查你手写的
opencode.json是否被聚合服务商的自动配置覆盖,如果有两个配置文件,看哪个优先级更高。 - 确认订阅服务商是否已经上线该模型。有时候“dsh里无法使用DeepSeek V4 Flash”这类问题,恰恰是环境变量没在当前Shell初始化导致服务商认为该模型不可用。
这类问题的核心教训是:模型接入配置越“显式声明”越稳定,不要把Key散落在不同全局变量里。我习惯把所有第三方API Key统一写在一个系统级环境变量文件里(比如 .env 统一管理),然后在 opencode.json 里用 {env:XXX} 引用,这样换机器、换配置都能快速还原。
4. Skills机制:把OpenCode调教成你的私有流程机器人
4.1 Skills到底是什么:一份AI会主动翻阅的岗位说明书
如果你用过Claude的Skills功能,那OpenCode的Skills几乎是同一个思路。它本质上是一个目录,目录里有一个 SKILL.md 文件,里面用Markdown写了这个技能的名称、描述、使用场景和行动指令。OpenCode启动时会扫描这些技能目录,当你通过 @技能名 或者任务命中技能描述时,它会主动读取这个文件并按照里面的指令行动。
我更喜欢把Skills理解成“岗位说明书”。你招了一个实习生,他不会天然知道你们团队的代码规范、审查流程、commit风格,你要给他写一份文档让他照做。Skills就是给AI写这样一份文档,而且这份文档是分场景封装的——审查代码时翻审查规范,写提交信息时翻提交规范,互不干扰。
4.2 安装现成Skills与自建一个Skill的完整步骤
安装现成Skills很简单。OpenCode社区有大量共享Skills仓库,你可以直接把某个Skill的文件夹放到OpenCode的skills目录下:
- 用户级目录:
~/.config/opencode/skills/ - 项目级目录:
.opencode/skills/
自建一个Skill也不难。我记得第一次写“代码审查”技能时的做法,分享出来供你参考。先建目录:
text复制.opencode/skills/code-review/
└── SKILL.md
然后写 SKILL.md:
markdown复制---
name: code-review
description: 当用户要求审查代码或检查改动质量时使用。执行严格的代码审查流程,关注潜在bug、边界条件和可维护性。
---
# 代码审查
执行以下步骤:
1. 先通过 `opencode run` 读取相关文件完整内容,不要只看diff片段。
2. 检查潜在的未处理错误、空指针、边界条件。
3. 检查是否遵循项目现有的错误处理规范。
4. 输出审查结果时,按“严重问题/建议优化/风格问题”三级分类。
5. 每条问题必须标注文件和行号,并给出建议修复的代码片段。
写完保存后,在OpenCode里输入 /skills 应该能看到这个新技能。之后只要说“帮我审查一下这两个文件的改动”,AI就会按照SKILL.md里定义的流程走一遍。这里的 description 字段很关键,OpenCode会用它做语义匹配,写得太泛会导致该触发的时候不触发。
4.3 AGENTS.md:项目级行为守则,与Skills互补
除了Skills,OpenCode还会读取项目根目录的 AGENTS.md 作为全局行为守则。如果说Skills是“分场景的操作手册”,那AGENTS.md更像是“这个项目所有任务都适用的总规矩”。
我在一个多语言混合项目里写过这样的规则:
markdown复制# AGENTS.md
## 项目约定
- 这是一个前后端分离项目,前端在 frontend/ 目录,后端在 backend/ 目录。
- 后端使用Python FastAPI,前端使用TypeScript React。
- 所有对外返回的错误信息必须是中文,并包含错误码。
- 禁止修改 database/migrations/ 目录下已发布的迁移文件。
- 测试文件统一放在 tests/ 目录,命名以 test_ 开头。
- 修改公共工具函数时,必须先运行 make test 确认无回归。
这份文件对OpenCode的约束力非常强。有一次我让它加一个新接口,它自动找到了 database/migrations 下的已有迁移文件,但没有修改它们,而是在新迁移文件里加了变更——这在没有AGENTS.md约束之前是需要我反复提醒的点。有经验的工程师应该能感受到,AGENTS.md就是你的团队规范在AI侧的映射,值得花半小时认真写。
5. CodeGraph:用一张关系图看清代码数据流
5.1 CodeGraph解决什么问题:AI的“项目地图”
OpenCode处理大型代码库时,最怕的问题就是“迷路”。它虽然能读取文件,但面对几千个文件的仓库,如果不理解模块之间的引用关系,检索效率会很低,甚至给出错误结论。CodeGraph就是为了解决这个问题出现的——它会对代码库做静态分析,提取类型定义、函数调用、模块依赖、数据流关系,生成一张“项目地图”,让AI和开发者都能快速掌握代码脉络。
开启CodeGraph需要在配置文件里加上:
json复制{
"$schema": "https://opencode.ai/config.json",
"experimentalFeatures": {
"codegraph": true
}
}
开启后,OpenCode会在后台对项目建索引,之后你在对话中提到“调用关系”“谁调用了这个方法”“数据从哪里来”这类问题时,它能基于CodeGraph的结果给出更精准的答案,而不是靠纯文本搜索瞎猜。
5.2 导出专业数据流转图:核心数据流转图用哪个工具做比较专业
很多人问“核心数据流转图用哪个工具做比较专业”,我的答案是:先让CodeGraph把真实关系抽出来,再根据图的使用场景选导出工具,不要手动画。
CodeGraph生成的是结构化关系数据(JSON格式),你需要把它渲染成视觉化图表。按照不同场景,我推荐这几个组合:
| 场景 | 推荐工具 | 原因 |
|---|---|---|
| 代码评审、评审记录、沉淀到项目文档 | Graphviz(dot) | 自动布局、文本格式易维护、适合复杂依赖图 |
| 技术方案文档、PPT展示 | draw.io / diagrams.net | 交互式调整、支持导出SVG/PNG,团队协作方便 |
| 调用链时序图、交互流程 | PlantUML或Mermaid | 时序图语义化表达强,适合描述消息传递顺序 |
| 快速原型、临时沟通 | Excalidraw | 手绘风格降低沟通压力,改起来极快,但不够精确 |
我个人最常用Graphviz。CodeGraph导出的JSON里包含节点和边,我写一个小的转换脚本,把JSON转成dot脚本:
bash复制codegraph export --format json > codegraph.json
python tools/codegraph_to_dot.py codegraph.json > codegraph.dot
dot -Tsvg codegraph.dot -o codegraph.svg
转换脚本的逻辑不复杂:每个函数/模块是一个节点,调用关系是边,边上的标签就是调用点。生成SVG之后可以直接放到技术方案文档里,图的质量完全取决于原始代码关系是否准确,而不是画图技巧。
5.3 CodeGraph的实际应用:大重构前的自检工具
CodeGraph对我的最大价值,在做大重构之前。假设你想把某个公共工具函数从“同步执行”改成“异步执行”,这看起来是个小改动,但影响面可能覆盖整个服务。传统做法是全局搜一遍调用点,肉眼确认,容易漏。
用OpenCode加CodeGraph,你可以直接说:
code复制帮我找出所有调用了 utils/date/formatTime 的文件和函数,并梳理出数据流路径:从哪些API入口进入,经过哪些中间函数,最终在哪些组件/接口里被消费。
OpenCode会基于CodeGraph的索引去梳理调用链,然后给出一个完整的调用关系列表,甚至自动匹配到流程图的渲染。我在一次重构中靠这个方法,提前发现了三个隐蔽的间接调用,如果不看数据流图,上线之后就是线上事故。这个功能强烈建议每个在复杂业务系统里做开发的人试一次。
6. 编辑器生态与桌面版:终端之外的第二战场
6.1 VSCode集成:把OpenCode装进侧边栏
虽然OpenCode的形态是终端TUI,但日常开发总归离不开编辑器。比较理想的用法是:编辑器负责写代码看diff,OpenCode负责理解项目、改代码、跑命令。两者并行在同一块屏幕上。
在VSCode里集成OpenCode,最简单的做法是直接把终端面板拉出来,在底部开一个OpenCode窗口。这样你可以在编辑器里查看OpenCode修改后的文件,同时保持对话上下文。如果想体验更顺滑,可以安装社区提供的OpenCode插件,它能把TUI集成到侧边栏,支持分栏显示、点击文件跳转、查看diff高亮。
我个人的习惯是:两个VSCode分屏,左边是代码文件,右边是OpenCode会话。OpenCode改完文件后,我直接在左侧检查diff,发现不对马上切回对话让它调整,整个闭环非常顺畅。
6.2 IDEA、JetBrains生态与OpenCode桌面版
JetBrains系的开发者也不用担心,IDEA里集成OpenCode的思路类似——在IDEA内置终端里运行 opencode,或者安装IDEA插件把TUI面板化。社区现在已经有维护中的IDEA插件,支持在项目窗口内直接打开OpenCode,点击输出里的文件名可以直接定位到代码行,体验已经不输VSCode。
如果你用的是PyCharm,说实话生态里最流行的AI辅助插件目前还是Continue和通义灵码这类传统补全/聊天型插件,它们和OpenCode并不冲突。Continue负责在编辑器里给出内联建议,OpenCode负责真正的Agent级修改。两条线并行,才是效率最大化的姿势。
对于完全抗拒终端的朋友,OpenCode Desktop桌面版是目前最友好的入口。它把TUI包了一层图形界面,模型配置、Skills管理、会话历史都做成可视化操作,你不用记任何快捷键也能跑通完整流程。但我的看法是,桌面版适合初次体验和演示,真正高频使用还是终端版更顺手——终端版的快捷键和脚本化能力是桌面版比不了的。
6.3 与Cursor等工具的横向对比参考
很多打算入手OpenCode的人会纠结:我已经用Cursor了,还有必要换吗?我的判断标准很直接:看你的工作流是“编辑器中心”还是“终端中心”。
Cursor的核心优势是把AI深度嵌入了IDE,选代码、inline diff、多文件同时改的体验极其流畅,重度IDE用户几乎没有迁移成本。而OpenCode的核心优势在于它和编辑器解耦,你完全可以用任何编辑器,甚至纯命令行操作,AI的Agent能力通过终端全量释放,还能通过配置文件和Skills深度定制流程。
两者并不是非此即彼。我身边有不少人是Cursor + OpenCode双持:在Cursor里看代码、做精细编辑,在OpenCode里做跨模块分析、批量重构、跑自动化测试。如果你刚开始接触Agent类工具,可以先从OpenCode的终端版入手,不牺牲任何现有编辑习惯。
7. 高频问题排查与配置管理:别让环境问题消耗你的耐心
7.1 常见问题清单:现象、原因、处置方式
我整理了一份在实际使用中被问到最多的问题清单,按照“现象→原因→解法”整理,你可以直接对照处理。
| 现象 | 常见原因 | 解法 |
|---|---|---|
opencode 无法识别为cmdlet |
npm全局bin目录未加入PATH | 把 %APPDATA%\npm 加入用户PATH,重开终端 |
某个模型在 /models 里不显示 |
Provider的模型列表被覆盖,或模型名称拼写不一致 | 检查 opencode.json 的models字段,与你服务商的官方模型名比对 |
| 开启订阅服务后其他模型消失 | 订阅服务商返回的模型白名单覆盖了手动配置 | 确认provider优先级,必要时把服务商配置和手动配置分开文件管理 |
| CodeGraph开启后索引时间过长 | 项目文件过多且没有排除无关目录 | 在配置里添加 codegraph.exclude,排除 node_modules、dist、build 等目录 |
执行 opencode 后界面乱码/错位 |
终端模拟器不支持ANSI渲染 | 换成WezTerm、Windows Terminal或iTerm2,使用Nerd Font |
| Skills不触发 | SKILL.md的description写得太模糊,语义匹配失败 | 把description写具体,包含触发词和场景描述 |
| 网络请求超时 | 网络环境受限,无法访问模型服务商 | 检查你的网络连接;如果你是公司内网环境,看是否需要配置企业代理 |
前两个问题最常被问,其他几个也很典型。特别是CodeGraph索引时间问题,很多人在大仓库里开CodeGraph之后发现启动变慢,其实只要在配置里排除掉 node_modules、dist、build 这类生成目录,索引时间能降一个数量级。
7.2 CCSwitch:多套模型配置的切换管家
如果你同时服务多个项目、多个客户,每个项目用的模型Provider和API Key还不一样,那你一定会遇到配置地狱:今天切到公司项目要用A模型A密钥,明天切到个人项目要用B模型B密钥,来回改 opencode.json 改到怀疑人生。
CCSwitch就是解决这个问题的社区工具,它的核心功能是维护多套OpenCode配置集,按项目快速切换。我目前的组织方式是:
- 每个项目目录下放一个
.opencode/project.json,只存项目相关的提示词、AGENTS规则、Skills映射。 - 全局配置里用CCSwitch管理Provider和API Key的“账号配置集”,分“公司A”“个人B”“客户C”三套。
- 切项目时执行
ccswitch use <配置集>,CCSwitch会自动生成或切换对应的环境变量和配置文件,新开的OpenCode实例就带着你想要的上下文了。
这套方案用下来的核心收益是:你不必再担心“开错Key”导致模型调用失败,也不必在公司项目里看到个人项目残留的模型配置。
7.3 我的实操心得:三句话保住你的开发体验
第一句:先小后大。不要在核心业务项目上一开始就上OpenCode大改特改,先用一个小工具项目跑通安装、模型接入、Skills、CodeGraph全流程,再逐步推进到主项目。
第二句:把常用的prompt沉淀成Skills。我早期用OpenCode时,每次都手打“请看一下这个目录结构,找出测试覆盖最低的模块,写一个测试计划”,后来把它写成一个 test-plan Skill,每次只需一句话触发。真正的高手,不是prompt写得有多玄,而是把重复劳动封装成了可复用的技能。
第三句:模型不是越多越好。配置五六个模型、每个都试两下,不如固定两三个模型形成肌肉记忆。我的组合是:日常开发用DeepSeek V3系列,复杂推理切到Claude的opus级别模型,视觉任务再切到视觉模型——够用,且不乱。
网上偶尔能看到“opencode归档”“旧版本下载”这类关键词,这里提醒一句:OpenCode迭代速度很快,官方渠道一直是最新版本,别在第三方站点下载历史归档包。遇到功能异常,先看看版本是不是落后了两个大版本,很多问题其实升级就能解决。
我现在的工作流已经稳定成:WezTerm里跑OpenCode、VSCode分屏查diff、CCSwitch控制不同项目的模型配置、CodeGraph兜底大重构。这套组合让AI编程从一个“偶尔娱乐”的功能,变成了每天真实交付代码的环节。如果你正犹豫要不要进入Agent式编程,我建议你先把OpenCode装起来,用一个周末把Skills和CodeGraph跑熟,然后你会发现,以前花两小时的人工排查,现在十分钟就出结论了。
