视频版:https://www.bilibili.com/video/BV1BVrXBUEbR/

OpenCode 是近期热度最高的 AI 编程工具,它的最大优势是有开箱即用的免费模型,通过简单配置,还能免费接入 Gemini 3 Pro、Claude 4.5 Opus 等顶级编程模型。OpenCode 可以看作是一个开源版的 Claude Code,几乎具备了 Claude Code 的一切功能,而且对中国用户友好,不会遇到 Claude Code 里面限速、封号等一系列麻烦的事情。在 OpenCode 里面,有几个可以免费使用的主流模型,非常适合小白上手 AI 编程,可以随便造随便玩,还可以用它练习 Agent Skills、MCP、SubAgent 等高级特性。本期视频是一个 OpenCode 的完整教程,主要介绍 OpenCode 的四种形态,对比其他 AI 编程工具的亮点,还有我们要重点介绍 Oh My OpenCode 这个超强插件,还有等等的一系列高级用法。

四种形态

OpenCode 有四种形态,分别是命令行、桌面客户端、插件,最后是云端运行环境。

我们先来看命令行。这里我准备用第二种方式,也就是 Node.js 的方式来安装。我们先来到 Node.js 的首页,在这里根据自己的操作系统下载对应的安装包,把 Node.js 安装一下。

接下来我们复制 npm 的安装命令,我们打开一个终端窗口,把安装命令粘贴进来,回车,这样就安装完成。

输入命令 opencode 就可以直接启动了,进入这个页面,打个招呼,这样就完全配置成功了,非常简单。

接下来我们来看客户端版的安装。在这个页面点击下载客户端,然后一路点击下一步完成安装。

https://opencode.ai/zh/download

打开以后,选择一个文件夹作为项目文件夹,就可以直接开始使用了。 OpenCode 的客户端并不是一个完整的 IDE,它只有基础的对话框功能,而且目前处于 Beta 测试版,我试用下来 bug 还是比较多的,所以本期视频我们主要还是以命令行版本为例进行操作。

接下来我们来看插件版的安装。使用插件版的 OpenCode 的前提是需要先把命令行版的安装好。这里我以 VS Code 为例,我们打开 VS Code,在左侧的 extensions 搜索 OpenCode,然后我们找到这个 OpenCode 插件,点击安装。

安装好了以后,我们按快捷键 Ctrl+Shift+P 打开命令面板,敲这个命令 open opencode,回车,这样就以插件的形式打开了 OpenCode。

它可以自动关联左侧窗口打开的代码文件,然后我们还可以选中一些代码,点击快捷键 Ctrl+Alt+K,把这些代码直接快捷地粘贴到 OpenCode 的聊天窗口里面,这就是插件的全部功能了。

最后一个云端运行环境,我们放到视频的最后面再看。

AI 模型

OpenCode 最棒的是内置了一些免费的模型。我们敲命令来到软件,进来以后,输入命令 /models,后面带 Free 标记的,都是一些可以免费使用的模型。

特别是 GLM,还有下面的 MiniMax,编程能力都非常的不错,0 配置开箱即用,输入需求就可以直接编程,很适合新手用它们来练习 AI 编程。

接下来,我们把另外一个好用的编程模型 GPT Codex 也接入到 OpenCode 里面。就在前几天,OpenAI 跟 OpenCode 官宣进行了合作,我们可以直接在 OpenCode 里面使用 ChatGPT Codex 的编程套餐。在爬爬虾之前的这期视频里面:

https://www.bilibili.com/video/BV1wm4UzfEbr/

详细地介绍了订阅方法。我们来到 OpenCode,输入这个命令 /connect,回车,这里选到 OpenAI,选择 ChatGPT Pro/Plus。

在浏览器里打开这个链接,选择继续,这样就登录完成了。然后我们回到 OpenCode,输入命令 /models,这样就可以选到 ChatGPT 的几个模型了。

除了上面这几种接入 AI 的方式,输入 /connect 命令,可以查找到 75 种 AI 的接入方式,几乎囊括了所有的模型供应商。 比如我们可以找到 OpenRouter,需要我们填写一个 OpenRouter 的 API Key。我们来到 OpenRouter 的官网,

https://openrouter.ai/workspaces/default/keys

点击 Get API Key,创建一个,把这个 Key 复制一下,填写到 OpenCode 里面回车。 一个 OpenRouter 就能接入市面上几乎所有类型的大模型,而且国内用户也可以很方便地获取额度。可以说我们只要接入了 OpenRouter,就可以使用几乎一切的大模型。

编程亮点

我找了一个之前常用的经典测试案例来测试一下。这里 OpenCode 的表现有几个亮点。首先在开始之前,它会反向询问我一些问题,比如说只是要代码样例,还是一个完整可以运行的程序?有哪些功能是必须实现的?调用哪个 Gemini 模型?然后环境变量是怎么保存的?

在动手之前,他会把所有的需求细节询问清楚,这点非常的不错。然后他列出了一个详细的开发计划,并且分步骤完成,每完成一步都会标记出完成。

第二个亮点,就是命令行版的代码比对界面,我觉得是所有命令行类的编程工具里面做的最好的。

整个编程过程没有出现错误,也没有出现过需要代码返工的场景,一次性就完成了这个需求的开发。这里我使用的编程模型是 GPT-5.2-Codex,我是通过登录我的 ChatGPT plus 订阅的账号,把 Codex 模型接入进来的。我觉得它在 OpenCode 的里面的表现,跟使用原生的 Codex CLI 的表现几乎是一致的。OpenCode 在底层对各种编程模型都进行了很多工程上的优化,还是很不错的。

Session 与时间线

OpenCode 里面重点突出了一个叫做 session 的概念。我们每次跟 AI 开启的一个新的对话,就是一个全新的 session。session 可以后台运行,而且可以多个 session 并行运行。比如这是我们刚才生成的你画我猜的游戏网站,这里我想增加两个功能。首先我想让画笔可以调整颜色,第二个功能我想增加一个计时器,如果作画超过 20 秒,游戏就失败了。我们先输入第一个需求,增加一个计时器,在第一次落笔的时候进行计时,如果超过 20 秒,游戏就失败了,开始。在这个任务的执行过程中,我们可以输入 /new 命令,创建一个新的 session,然后开始我们的第二个需求。第二个需求是画笔可以调节颜色。我们输入命令 /sessions,就可以看到我们触发的 session,前面一个打转的符号,表示它正在后台运行。

这样我们就创建了两个 session,让两个需求并行开发,还可以在两个 session 之间互相切换,查看它们的执行状态。好,这样就完成了,我们可以调整画笔颜色,然后我们开始作画的时候,右上角也出现了一个倒计时。

我们成功利用了 session 功能,并行的完成了两个需求的开发。

输入 /share 命令,可以把这个 session 的对话记录分享成一个网页。网页的地址已经复制进了粘贴板,我们把地址粘贴进浏览器,就可以看到这个 session 里面跟 AI 的对话记录,包括它是怎么进行文件修改的。

有了这个历史记录以后,我们就可以很方便地把我们的编程过程跟其他的用户进行分享。输入命令 /unshare 就可以取消分享,之前的链接也就变得不可用了。输入命令 /export,就可以把对话记录导出成一个文件。

刚才我又进行了两次对话,先让他把画笔默认改成红色,然后把这个提示删除。OpenCode 还有一个亮点功能,就是它的时间线,或者说是检查点。我们输入命令 /timeline 回车,可以看到这个 session 里面的跟 AI 的对话记录。

我们可以选择任意一次的对话记录,选择这个 revert 功能,把代码跟聊天内容一起回退到这次对话之前的状态。我们可以回到这个时间点,再重新进行修改。

Agent Skills 与 MCP

在上期视频里面,我们介绍了 agent skills 的基础概念以及其目录结构。我们可以把 skill 理解成带目录的说明书,每个文件夹都对应一个 skill,也就是一个技能包。一个 Claude Code 中的 skill 迁移到 OpenCode 里面非常的简单,我们只需要把目录里面的 .claude 替换成 .opencode 就可以了。

在上期视频里面,我们一共创建了 3 个 skills 文件夹,把这三个 skills 迁移到 OpenCode 里面也非常的简单。我们来到 OpenCode 的项目文件夹,新建一个叫做 .opencode 的文件夹,进来以后再新建一个 skills 文件夹,然后就可以把这 3 个技能直接复制进来。 这样我们的项目就拥有了那 3 个技能。我们右键在终端打开,输入 opencode 启动起来,我问他你有哪些 skills,这里给出了完整回答。

当我们有需要的时候,他就会调用这些 skills 进行工作。

接下来我们来看 MCP 的配置方法。OpenCode 里面有两种 MCP,我们在文档里面可以找到,一个是 local 的方式,也就是通过本地命令来执行;还有一个 remote 的方式,也就是远程调用。我们先以这个 shadcn 为例来把它配置一下。我们先来到 OpenCode 的配置文件夹 C:\Users\你的用户名\.config\opencode,找到这个配置文件 opencode.json

来到文档站,这里把 MCP 的这一段复制一下,粘贴过来。我先把这些多余的逗号去掉,这里填写上 MCP 的名字,这里我就叫做 shadcn。类型的话是本地,然后 command 这里填写命令 npx,后面是 shadcn@latest,把这一段复制过来。最后这里还有一个 mcp,我们打个逗号添加上,enabled 表示启动,下面没有环境变量,这样一个本地的 MCP 就配置完成了。

接下来我们再看一个远程调用的案例,我们就以这个 context7 MCP Server 为例。我们回到 OpenCode 的文档站,在下面找到这个远程调用的案例,把这一段复制一下,打个逗号,粘贴到配置文件里面来。

这里类型是 remote,远程调用。URL 我们把 context 7 的 URL 复制一下,粘贴过来。在 header 里面我们填上 context7 的这一串,粘贴过来。这里它需要一个 API Key,我们可以来到 Context7 的官网创建 API Key,把这个 Key 复制一下,填写到配置文件里面。

把这个 MCP 的名字改成 context7。我们重启一下 OpenCode,输入命令 /mcp,就可以看到我们刚才配置的两个 MCP。这也就是本地还有远程调用两种 MCP 的配置方式。

Oh My OpenCode

Oh My OpenCode 是 OpenCode 上一个最火的编程插件,它本质上就是一系列的工具加 MCP 加编程 agent 的组合捆绑包。比如在工具方面,它集成了 LSP 高级版,可以通过编程语言的语法和语义,帮助 AI 快速理解和定位代码;AST 工具,可以通过代码的语法树进行关联搜索;look at 工具,借助多模态大模型的视觉能力,帮助理解图片还有 PDF 等信息;还有像 delegate task、background task 这些 agent 任务分配和后台调度工具。

插件还内置了 3 个 MCP Server:websearch 用于网络搜索,context7 用于获取最新的文档,grep_app 用来在 Github 仓库快速搜索代码。

插件还内置了 7 大编程智能体,分别是西西弗斯,他是主智能体,用来规划和调度任务;先知,用来做架构设计、代码评审等等;图书管理员,用来查阅文献;探索者,用来进行网络搜索;还有前端工程师、文档编写者,还有多模态等等。插件给每个智能体都分配了一个最适合它工作的大模型。比如前端工程师,使用前端能力最强的 Gemini 3 Pro 模型;主 agent 使用的是 Claude Opos 4.5。据说这是作者花了 24,000 美元的 TOKEN,找到最适合的 AI 编程团队。

好,我们把这个插件安装一下。在它的 GitHub 首页,这里有一段提示词,就是 install 开头的这一段,我们把它整个复制下来。

我们回到 OpenCode,把这段提示词粘贴过来。开始安装的时候,插件会询问我几个问题。他先问我有没有 Claude 的订阅,这个我是没有的,我有 GPT plus 订阅,用 GPT 去替代 Claude 的模型。然后问我有没有 ChatGPT 订阅,这里我选择 yes。Gemini 订阅有,最后选择确认。过了一会儿,插件成功完成了安装。

安装完成以后,我们来到 C 盘 C:\Users\你的用户名\.config\opencode,在这里面有一个 oh-my-opencode.json 的配置文件。这里定义的是 Oh My OpenCode 七大智能体所用的模型,我们可以根据自己的需要来进行调节。

这里我把西西弗斯的模型换成 GPT-5.2,剩下几个的模型都是作者的推荐配置了。然后我们重启一下 OpenCode,我们进来以后看到,它显示的默认智能体就是西西弗斯。

这个插件主要有几种用法。首先我们可以敲 @,然后挑选一个智能体给我们干活。还有一个用法就是输入这个魔法词 ulw,也就是 Ultra work。输入这个魔法词以后,Oh My OpenCode 就会尽可能的调用它的一切潜能,把任务分配给几个智能体,并且并行运行,由这个主智能体西西弗斯进行居中调度。这里他询问我要什么样的网页,我们大体填一下需求,然后开始。我们看到,他把任务拆分成了一个 Todo List,然后同时开启了三个后台任务,并行执行。

然后,他对这些后台任务进行疯狂的调度。我们耐心的等待一会儿。等了几分钟,ULTRA WORK 模式运行完毕,我们来启动起来看一下效果。一个宠物商店的应用,看起来还真是不错。

界面看起来就很清新,它在没有图片素材的情况下,还尽量的用 emoji 给我们配了一些图。整个网站的交互还有动画逻辑看起来都是不错的。如果你有 GPT、Claude 等几个顶尖模型的订阅,不妨来试一试这个插件,可以综合的调度各个领域最强的模型,完成一个很不错的编程任务。

Oh My OpenCode 还有一个重要玩法就是,我们输入这个命令 /rough-loop,就是拉尔夫循环。这个模式可以强制 AI 长时间的循环,对一个非常难的任务进行持续工作。比如我可以要求它,使用 SpringBoot 4 的最新标准重构整个项目,然后直到所有的测试用例都通过。它可以循环连续运行好几个小时,直到最终的任务完成。

GitHub 集成

刚才我们介绍了命令行、桌面版还有插件等运行环境,接下来我们看云端运行环境。这里我以 GitHub 举例,它的主要功能是,当我们在 GitHub 上面输入 /opencode,OpenCode 就可以在 GitHub 云端进行工作,比如可以为我们解释问题、自动修复问题,并且创建 PR 等等。这里有一个安装方式,我们来试一下。

首先第一步先把项目上传到 GitHub 上面,这里还是刚才那个宠物商店的应用。点击这里的 source control –> publish branch,这里我选择 public,把这个项目变成一个 GitHub 上面的公开仓库。

点击右下角的 open on GitHub,这样我们的代码就成功上传过来了。

接下来我们来到代码文件夹,把这个安装命令复制一下,粘贴过来执行。点击 install,选择一个模型提供商,这里只能用 API Key,比如这里我选择,选择一个模型。然后还有两步需要操作。首先,要把项目里这个文件提交到 GitHub 上面,他已经准备好了这个配置文件,我们先把它提交上去。

接下来他需要把这两个环境变量填到项目里面。我们来到项目的 Settings,然后下面的 Secret and Variables,这里找到 actions。

在这里的 repository secrets,我们把第一个 key 的名字复制一下,粘贴过来。对应的密钥,可以在的 AI Studio 创建一个,这样填写过来保存。

接下来第二个 key 复制过来,还是填写相同的密钥,这样填写好了两个密钥。

比如,某个用户可能会在 issue 里提一个 bug,说顶部导航栏 find a petadopt now 功能重复,应该去掉这个 find a pet,就是这两个功能重复。

在这个项目里面,就可以直接 /opencode,调出 OpenCode 功能,让 OpenCode 把这个 bug 修复一下。我们提交这个评论。

然后我们来到项目的 actions 里面,可以看到,这里有一个 action 就正在执行了,这个就是 OpenCode 的工作流。

它现在正在 GitHub 的云端运行,帮我们来修复这个问题。任务运行完成,我们来到 pull request,这里就可以看到一个代码合并请求。

在 file changes 这里可以看到,它对代码成功进行了修改。我们只需要点击这个 merge 按钮,就把 OpenCode 这次修改合并到了我们的代码仓库。这样这个 issue 就成功完成并且关闭了。

重要功能

接下来我们再介绍 OpenCode 的几个其他的重要功能。这些功能其实在之前的 Claude Code 还有 Codex 视频里面已经进行过介绍了,这里我们再快速的过一下。

首先第一个命令 /init。这个命令可以让 AI 通读整个项目文件夹,然后把它学到的关于整个项目的知识生成一个 AGENTS.MD 这个文件。这个文件就作为整个项目的系统提示词,可以帮助 AI 快速的了解项目。

下一个重要命令 /compact,用来压缩之前对话的上下文,把之前的对话提炼成一个简洁的摘要,来释放模型的上下文窗口。

除了这些内置的 / 命令以外,我们也可以创建自己的命令。我们来到 OpenCode 的配置文件夹,在这里面可以新建一个 command 的文件夹。在这里面就可以以 Markdown 文件的形式来定义自定义命令。

比如这里,我创建一个自定义命令,叫做“运行测试”。我把官网上这一段样例复制过来,粘贴进来。我们可以指定它是 build 或者 plan 模式,下面的命令,在下面的描述里面写清楚这个命令是做什么用的。配置完自定义命令,我们可以在 OpenCode 里面 / 命令的名字,这样就可以运行我们的自定义命令。

下一个功能可以定制智能体。OpenCode 里面预设了 planbuild 两种智能体,我们也可以创建新的。我们来到 OpenCode 的配置文件夹,在这里面可以新建一个 agent 文件夹。

比如这里,我想新建一个 code review 的智能体。这样我新建一个 Markdown 文件,在这个智能体的文件里面填上描述,类型:它是一个主智能体还是 SubAgent。SubAgent 的意思就是,它可以由主智能体调度,在后台执行。然后填上一个模型,后面是它的描述,就是这个智能体主要做什么事情。定义好了以后,如果以后 AI 可能需要 review 代码的时候,它就会自动调用起这个 SubAgent,并且在后台运行帮我们自动完成工作。我们除了可以把一个智能体定义为 SubAgent,也可以定义为 primary,也就是主智能体。定义成主智能体以后,我们可以按 Tab 键,直接显式地切换到这个智能体进行工作,而 SubAgent 只能在后台由 AI 自动调度执行。

好,这就是本期视频的全部内容了。感谢大家点赞支持,我们下期再见。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐