opencode 完全指南:从安装到实战的 AI 编码智能体
2026/9/8 15:25:53 网站建设 项目流程

opencode 这个名字,最近在开发者圈子里刷屏的频率越来越高。不夸张地说,它可能是当前把“AI 编码助手”这个概念做得最接近“智能体”的开源项目之一。它不是又一个自动补全插件,而是一个能自己读代码、改文件、跑命令、看报错、反复调试的终端编码智能体。不管你用的是 VS Code、JetBrains Idea,还是在纯命令行环境里工作,它都能以不同形态接入。这篇文章我会从安装配置讲到模型接入,再讲到 Skills、Memory、IDE 插件,以及 Maven 和 Playwright 这类实战场景,把 opencode 从入门到进阶的一次性讲透。全文基于我自己实际使用中的记录,很多坑都踩过,希望能帮你少走弯路。

1. opencode 并不是又一个 AI 插件,而是能动手干活的智能体

1.1 从补全代码到替你执行命令,能力边界完全不一样

很多人第一次听到 opencode,会下意识把它和 Copilot 这类工具归为一类。实际上两者的差异非常大。Copilot 的本质是“补全”,它在你敲代码的时候预测下一段内容,给出建议;而 opencode 的本质是“执行”,它像一个坐在你电脑前面的初级工程师,你给它一个任务,它自己去探索代码库、写代码、执行构建命令、运行测试、看失败日志,然后继续修改,直到任务完成。

我打个比方。自动补全工具像是一本菜谱,你想做红烧肉,它告诉你下一步放什么调料;opencode 则是一个能自己去菜市场买菜、洗菜、开火、炒菜、尝味道、如果咸了就补救的帮厨。你要做的事情从“每一步都自己操作”变成“告诉它想吃什么”,然后盯着它干就行。

这个改变带来一个很重要的结果:opencode 特别适合处理那些“需要反复试错”的脏活,比如依赖冲突修复、老项目迁移、跨文件重构。这些任务不是靠补全能完成的,需要的是对项目整体结构的理解,以及不断执行命令验证结果。

1.2 opencode 的组件与工作方式:模型、CLI、IDE 和 Skills

opencode 并不是只有一个终端命令,它的整体结构可以拆成四个层次。

底层是模型接入层。它支持多家模型提供商,Anthropic、OpenAI、Google、DeepSeek、OpenRouter 都可以,也支持通过 Ollama 接本地模型。这意味着你不需要被绑死在某一家上,哪家模型便宜、听话、在你的任务上好用,就切哪家。这一点在长期使用中非常关键,因为模型之间的能力差异在具体编码任务里会被放大得很明显,有的擅长重构,有的擅长解释老代码,有的在写测试的时候特别稳。

中间层是 CLI 核心。你输入opencode启动的是一个全屏的 TUI 交互界面,它会读取当前目录的文件结构、Git 状态、相关文档,然后在一个会话里持续跟你对话。常用的斜杠命令比如/models切换模型、/sessions查看历史会话、/mem查看记忆,都在这一层。

再往上是 IDE 集成层。VS Code 插件、JetBrains 插件本质上是把同一个对话界面嵌到了编辑器侧边栏里,方便你在看代码的时候顺手跟它交流。插件跟终端 TUI 共享同一套工作目录和会话文件,所以不会出现两边状态不一致的问题。

最顶层是 Skills 机制,这是 opencode 让我最眼前一亮的部分。你可以把一些复杂的操作流程封装成一个个技能,比如“用 Playwright 复现前端 Bug”或者“检查 Maven 依赖冲突”,然后像调用子程序一样让 opencode 执行。它相当于给智能体装上了可以被复用的方法论,省去了每次都要在对话框里重新交代背景的麻烦。

1.3 什么人在什么样场景下最容易受益

从我自己的使用感受来说,opencode 最适合四类场景。

第一类是个人项目开发。你一个人维护好几个仓库,精力有限,让 opencode 去写测试、补文档、做重复性重构,性价比非常高。第二类是接手别人留下的老项目。面对一个你不熟悉的代码库,让 opencode 先探索结构、梳理业务流程,比你自己逐行读要快得多。第三类是测试驱动的修复任务,尤其是配合 Playwright 这类自动化测试工具,你可以让 opencode 自己复现问题、看报错、改代码、跑回归。第四类是团队内部的标准操作流程落地,把一套固定的检查流程封装成 Skill,让所有成员用同一种方式执行,减少“我这边能跑,你那边不行”的扯皮。

适合用 opencode 的人,绝不是那种完全不会写代码、想让它代替自己编程的人。恰恰相反,它更适合有一定编码基础、但不希望把时间消耗在重复劳动上的开发者。因为智能体再厉害,你依然需要判断它给出的方案是否正确、是否值得合并。

2. 安装 opencode 的正确姿势,以及 Windows 下最常见的报错

2.1 一条命令安装,但先搞清楚装到哪里

opencode 的安装方式有三条主路线,分别是 Homebrew、npm 和官方安装脚本。macOS 用户最省事,直接执行:

brew install opencode

如果你在 Linux 或者 Windows 上用 npm,则推荐:

npm install -g opencode-ai

注意包名是opencode-ai,不是opencode。我见过不少人直接执行npm install -g opencode,结果装了一个名字相似但完全不相关的包,启动时候当然报错。这就是很多“装不上”问题的根源。

安装完成后,在终端执行:

opencode --version

如果能看到版本号,说明安装成功。正常情况下,npm 全局安装会把命令放到 npm 的全局 bin 目录,macOS 和 Linux 一般是/usr/local/bin或者~/.npm-global/bin。Windows 上则是你 Node.js 安装目录下的node_modules/.bin路径,或者是全局 prefix 对应的npm目录。

这里我建议在安装前先确认一下 Node.js 版本。opencode 对 Node 的版本有要求,太老的环境容易出兼容性问题。我一般建议用 Node 18 以上的 LTS 版本,规避很多莫名其妙的报错。

2.2 “无法将 opencode 识别为 cmdlet”——不是软件坏了,是 PATH 问题

在各种 opencode 相关热词里,我看到一条高频搜索:opencode : 无法将“opencode”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。这个报错我太熟了,不是软件装坏了,而是 Windows PowerShell 根本找不到这个命令。

原因通常是三种。第一种是 npm 全局安装目录没有加入系统 PATH。你在 PowerShell 里执行npm root -g,会得到一个全局路径,比如说C:\Users\你的用户名\AppData\Roaming\npm,把这一整个路径加到系统环境变量 PATH 里,然后重开一个终端窗口。第二种是安装过程被权限阻止了,导致命令没有真正写入全局目录。这种情况我建议用 nvm-windows 管理 Node.js,避免直接用系统级 Node 因为权限问题装不进去。第三种是装错了包,这个我刚才提过,注意包名必须是opencode-ai

排查思路可以按这个顺序来:先执行npm list -g --depth=0看有没有opencode-ai;再执行npm root -g确认全局路径;然后打开系统环境变量设置,检查 PATH 里是否包含那个目录。大多数情况下,问题就出在 PATH 这一环。

2.3 第一次启动:选择模型、填写 API Key、认识终端界面

安装成功后,随便进入一个项目目录,执行opencode,它会进入全屏交互界面。第一次启动时,opencode 会引导你配置模型账号。你可以直接选择模型提供商,比如 Anthropic、OpenAI、OpenRouter、Ollama 等,然后设置对应的 API Key。

API Key 一般通过环境变量提供,比如ANTHROPIC_API_KEYOPENAI_API_KEY。如果你用的是 OpenRouter,则设置OPENROUTER_API_KEY。设置好之后,进入 TUI 界面,用/models命令可以随时切换模型,并直接在当前会话里看到每个模型的响应差异。

初次进入界面,我会建议你先干三件事:用/init让 opencode 扫描项目并生成 AGENTS.md,这个文件会记录项目的技术栈、目录结构、常用命令,后续每次会话它都会参考这段上下文;再看一眼/help里的快捷键列表,把 Ctrl+C 中断、Esc 返回这类基本操作记住;最后随便问一个关于当前项目的问题,比如“这个项目如何启动”,测试一下它有没有正确理解目录结构。

注意:第一次跑 opencode 时,它可能会执行 Git 操作或者运行项目命令。如果你不想让它自动提交代码,可以在配置里关闭自动 Git 操作,否则它在某些任务里会把改动直接提交掉,这很容易让人措手不及。

3. 配置与玩法:免费模型、本地模型、Skills、记忆

3.1 用 opencode.json 把模型和项目行为管起来

opencode 的全局配置文件默认在~/.config/opencode/opencode.json,它支持自定义模型供应商、默认模型、系统提示词、进程超时等多项设置。我通常会把项目相关的配置尽量放在项目根目录的.opencode.json里,跟团队共享;把个人账号相关的配置放在用户目录下,避免密钥泄漏到 Git 仓库里。

一个基础配置示例长这样:

{ "model": "anthropic/claude-sonnet-4", "provider": { "ollama": { "models": [ { "name": "qwen2.5-coder:7b", "baseURL": "http://localhost:11434/v1" } ] } }, "instructions": "请随时用中文回复,涉及命令行时同时给出可在 Windows PowerShell 和 macOS 终端执行的版本。" }

这个配置文件解决的是“默认行为”问题。你不需要每次启动都重复告诉它用什么模型、用什么语言回复。它会把项目级规则和用户级偏好分开管理,适合不同团队成员各自保留自己的模型偏好,同时共同遵守项目规则。

3.2 免费模型和本地模型的接入思路

很多人搜opencode 免费模型,其实就是想用低成本把它跑起来。我体验下来有两条相对可靠的路线。

一条是使用 OpenRouter 里的免费模型。只要注册一个 OpenRouter 账号把 API Key 配给 opencode,然后在模型列表里选择带:free标记的模型即可,比如一些开源模型的免费版本。优点是零成本,响应速度快,适合写测试、写文档这类不需要深度推理的任务。缺点是免费模型的上下文窗口可能偏小,处理大项目时容易显得“记性不好”。

另一条更值得推荐的路线是本地模型。用 Ollama 拉一个代码专用的模型,比如qwen2.5-coder:7b,然后让 opencode 接入本地地址。这样做的好处非常明显:代码不用离开你的电脑,对隐私敏感、商业保密要求高的项目特别友好。坏处是本地模型对硬件有要求,7B 参数规模至少 16G 内存才能跑得舒服;如果你用的是老 Mac 或者纯 CPU 环境,响应速度会让人着急。

我的看法是:日常开发、追求质量的时候用云端主流模型;涉及敏感代码或者只想快速做个脑暴的时候切到本地模型或免费模型。opencode 支持随时/models切换,这种多模型配合的思路才是它的价值所在。

3.3 Skills:把重复工作打包成交互流程

Skills 是 opencode 里非常核心的功能。它本质上是一组放在skills目录下的文本指令,用 Markdown 书写,告诉 opencode 在遇到某种任务时应该按照什么步骤操作。

比如我现在会维护一个用于 Maven 项目的技能,文件内容大致如下:

--- name: mvn-dependency-check description: 检查 Maven 项目依赖冲突并给出修复建议 --- 当用户要求检查 Maven 依赖时,按照以下步骤执行: 1. 读取根目录下的 pom.xml,记录所有依赖及其版本。 2. 执行 `mvn dependency:tree`,找出冲突项。 3. 对比冲突版本,结合项目使用的 JDK 版本选择明显更高的兼容版本。 4. 列出修复方案,不要直接修改 pom.xml,等待用户确认。

这个技能的核心不是覆盖所有场景,而是给智能体立规矩。实际使用中你会发现,没有 Skills 的时候,opencode 面对同样的任务每次都可能换一套思路;有了 Skills,它就能稳定输出同一种处理方式。这种确定性在项目交接、团队协作时特别重要。

我建议把那些你需要反复叮嘱 opencode 的操作,都慢慢沉淀成技能。它会让你的指令越来越短,但执行效果越来越稳定。

3.4 Memory:它真的会“记住”,所以你也得会“清理”

opencode 的 Memory 机制让它可以在多会话之间保留用户偏好和项目信息。它会记住你习惯用的命令、你指定的代码风格、你说过“不要动某个目录”这类规则。这个功能用好了非常顺手,但是也有隐私风险。

记忆文件通常存储在用户目录下的 opencode 数据目录里。如果你曾经给 opencode 看过一些敏感信息,或者它把某个临时方案记进了长期记忆,需要及时清理。我建议每隔一段时间查看记忆文件,删除那些已经过时的规则。尤其是当你把同一台电脑借给别人使用时,不要让对方继承你的记忆上下文,否则很容易出现“它按照上一任用户的习惯来处理你的项目”这种混乱。

另外要注意,Memory 是对所有项目共享的,还是只对某个项目生效,这取决于你写入的位置。项目级规则建议放进项目的 AGENTS.md 里,用户级偏好才放进全局记忆里。把两层分开,才能避免在多项目切换时把上下文搞混。

4. 在 VS Code、JetBrains 和“桌面版”里使用 opencode

4.1 VS Code 插件:左侧边栏就能对话

VS Code 插件是很多人第一次接触 opencode 的入口。直接在扩展市场搜opencode,装好带官方标识的那个扩展就行。安装后在左侧活动栏可以看到 opencode 图标,点开会话面板,它会自动关联当前打开的文件夹。

插件版本和终端 TUI 的区别在于交互方式。在编辑器里你可以选中一段代码,然后右键选择发送给 opencode,让它解释或者修改。它会返回 diff 结果,你可以在编辑器里直接预览改动。对于查看单文件修改、局部重构这类场景,这个体验其实比全屏 TUI 更顺滑,因为你不需要在两个窗口之间来回切换。

我个人常用的搭配是:大规模项目探索用 TUI,精细代码修改用 VS Code 插件。两边共用一套会话,不会出现这边问过那边又忘的情况。

4.2 JetBrains Idea 插件的接入方式

如果你的主力 IDE 是 IntelliJ IDEA、PyCharm 或者 WebStorm,同样可以装 opencode 插件。插件安装后在工具窗口里打开 opencode 面板,操作逻辑和 VS Code 插件类似。

有一点差异值得注意:JetBrains 插件对 Maven 和 Gradle 项目的识别更加原生,opencode 能直接看到构建工具链和项目结构,在处理 Java 项目时比其他编辑器里的表现更细致。它会更靠谱地找到源码根目录、资源目录和测试目录的位置。这算是 JetBrains 用户的额外红利。

插件本质上是一个壳,调用的还是你本地安装的 opencode 核心。所以我建议在 JetBrains 里使用之前,先在终端运行一次opencode完成初始化和登录,再打开插件,否则插件可能找不到已登录的账号状态。

4.3 桌面体验来自 TUI:全屏、快捷键、多任务管理

严格来说,opencode 没有一个传统意义的“桌面版” GUI 应用。大家搜索的opencode 桌面版,实际上指的是它的全屏 TUI 模式。这个界面看起来像是一个桌面应用,支持鼠标点击、分栏、快捷键操作,而且响应速度比网页界面快很多。

这里列出几个我常用的 TUI 快捷键:

  • /models:切换模型,边干活边换模型非常高频。
  • /sessions:列出历史会话,可以回到之前的任务上下文。
  • /compact:压缩当前上下文,上下文快满的时候及时压缩,能有效减少模型“失忆”。
  • /mem:查看和管理长期记忆。
  • /doctor:检查环境配置是否正确,比如 Node 版本、命令路径、网络连通性。

多任务管理也是 TUI 的强项。你可以同时打开多个会话窗口,一个给 opencode 做重构,另一个做测试编写,互不干扰。这种操作自由度是 IDE 插件很难提供的。

5. 实战:Maven 项目、前端 Playwright 测试、接手老代码

5.1 让 opencode 先读项目再动手,避免乱改

不管处理哪种项目,我都建议遵循同一个原则:先侦察,再动手。你给 opencode 的第一个指令,千万不要是“帮我改某个 Bug”,而是“先告诉我这个项目是怎么组织的”。

我常用的一个万能开头是这样:

请先查看项目的 README、目录结构、构建文件和最近的 Git 提交记录,然后告诉我: 1. 这个项目的技术栈和模块划分。 2. 本地开发环境应该如何启动。 3. 测试应该怎么运行。 4. 有没有明显的技术债或值得注意的反模式。 在没有确认我对问题理解正确之前,不要修改任何代码。

这个步骤看起来保守,实际上能省下大量返工时间。opencode 如果一上来就动手,很可能因为对项目结构理解不完整而改错地方。让它先输出一个理解报告,你再纠正,效果会好得多。尤其是在接手老项目时,这个“先聊清楚再干活”的模式几乎是必须的。

5.2 Maven 构建与依赖修复的真实案例

有过 Java 项目经验的人都明白,Maven 的依赖冲突和构建失败有时候比写业务代码还折磨人。opencode 在这里能帮上很大的忙。

我经历过一个非常典型的场景:一个多模块 Spring Boot 项目在升级某个依赖后,启动时报NoSuchMethodError,根本原因是一个传递依赖被错误地覆盖了。我在终端里启动 opencode,只提了一句:

请分析当前项目的 Maven 依赖树,找出导致 Spring Boot 启动报 NoSuchMethodError 的依赖冲突。先执行 mvn dependency:tree 找到相关依赖,再检查 pom.xml 中的版本管理,给出修复方案,但先别修改文件。

它很快分析了依赖树,定位到两个模块分别引入了不同版本的某个基础库,然后把修复方案和风险列了出来。我确认后,它修改了父 POM 的<dependencyManagement>段,用统一版本锁住依赖,接着执行mvn clean test验证通过。

这里有个很关键的经验:不要一上来就让 opencode 直接改配置文件,而是让它先给出方案。尤其在 Maven 这种构建工具里,改一个版本号可能牵一发动全身,确认过的方案再落地,安全性会高很多。

5.3 用 Playwright 配合 opencode 复现前端 Bug

如果你处理的是前端项目,特别是 UI 交互类的 Bug,opencode 配合 Playwright 能形成一套非常好用的“自动复现 + 自动修复”工作流。

先确保项目里已经安装并初始化了 Playwright。然后给 opencode 类似这样的指令:

请启动当前前端项目的开发服务器,然后用 Playwright 打开 http://localhost:5173,复现以下 Bug: 在登录页输入正确的账号密码,点击“登录”按钮后,页面一直停留在 loading 状态,控制台里有报错。 请把控制台报错信息截图并输出完整堆栈,再分析是哪个接口或哪个组件抛出的异常。之后再提出修复建议。

opencode 会自动启动服务、写 Playwright 脚本、运行浏览器、监听控制台日志,然后把报错信息带回来。你不需要手动打开浏览器点点点,这对一些需要特定步骤才能触发的 Bug 特别有效。

实际用下来有几个注意事项:一定要在指令里写清楚前端服务的端口和启动命令,否则 opencode 会自己猜,猜错的概率不低;其次,如果项目里有鉴权逻辑,建议先用测试账号或者 Mock 数据,避免它把真实用户数据带到调试过程里;再者,浏览器自动化执行需要时间,别把它当成秒回的工具,给它足够的耐心。

6. opencode、Codex、Claude Code 怎么选

6.1 三者画像:开放度、模型锁定、可控性

现在市面上主流的终端编码智能体,最常被拿来对比的就是 opencode、Codex 和 Claude Code。这三者的定位差异其实很明显。

Codex 是 OpenAI 推出的编码智能体,跟 GPT 系列模型绑定紧密,走的是一条“模型本身能力强所以可以少给指令”的路线。Claude Code 来自 Anthropic,在长上下文理解和代码库级分析上有很强表现,但闭源,自定义空间有限。opencode 则是开源项目,它不绑定任何一家模型,你可以自由接各种云模型和本地模型,同时提供了 Skills、Memory 这种更强的工程化机制。

我用表格把关键差异列一下:

维度opencodeCodexClaude Code
开源情况MIT 开源闭源产品闭源产品
模型支持多家云模型 + 本地模型基本绑定自家模型体系基本绑定 Anthropic 模型
IDE 集成VS Code、JetBrains 插件侧重自家生态CLI + 编辑器脚本
自定义机制Skills、Memory、配置文件有限有系统提示词扩展
项目规则文件AGENTS.md 标准支持类似机制类似机制
适合人群喜欢折腾、多模型轮换的开发者深度使用 OpenAI 体系的团队对 Anthropic 模型情有独钟的用户

这个对比不是说谁一定最好,而是要看你的环境。如果你公司本身就在用 OpenAI 或 Anthropic 的整套云服务,用对应工具当然顺理成章。但如果你跟我一样,手头有几个项目分属不同技术栈、不同模型诉求,甚至有些项目要求代码不能出本机,那 opencode 的灵活性就是其他两个给不了的。

6.2 我的选择建议与真实体会

我个人的主力工具目前是 opencode,原因很简单:它不把“用哪家模型”这个决定替我做了。我可以在写文档时切到便宜模型,在重构核心代码时切到更强模型,在有隐私顾虑时切到本地模型,这种自由度是其他两个工具不具备的。

但我也要说,Codex 和 Claude Code 在某些特定任务上的基础能力确实强。比如 Claude Code 在处理超大仓库的分析类问题时的准确性非常惊人,而 Codex 在写算法型代码时语言表现很流畅。这就像工具箱里的螺丝刀和电钻,没有绝对的高下。

我的建议是不要抱着“只能选一个”的心态。opencode 作为日常主力,当遇到它反复处理不了的问题时,再考虑用其他工具交叉验证方案。多模型、多工具对比判断,本来就是一个成熟开发者的工作习惯。

7. 常见问题速查表与避坑记录

7.1 常见问题速查表

根据我收集到的搜索热词和自身经历,下面这些问题是 opencode 使用中最高频的。整理成表格,方便你遇到问题时候直接对照。

现象原因处理方法
Windows 下提示无法识别 opencode 命令npm 全局目录没加到 PATHnpm root -g查路径,加入系统 PATH 后重开终端
启动时报 unexpected server errorAPI Key 无效、模型名错误或服务端异常先检查环境变量是否正确,再用另一个模型测试是否仍报错
提示 model not found模型列表里没有该模型名,或提供商配置缺失/models查看已有模型,在配置文件中添加对应 provider
会话越来越慢、模型“忘记”前文上下文窗口已满使用/compact压缩上下文,或开启新会话并引用关键文件
请求本地模型超时Ollama 未启动、模型未拉取或端口占用检查ollama list,确保模型存在且服务端口 11434 可达
opencode 自动提交了不想提交的代码默认开启了自动 Git 操作在配置中关闭自动 Git 提交,或提前声明“不要执行 git commit”

这张表不能覆盖所有问题,但覆盖了 80% 的新手坑。特别是服务器错误那一条,我见太多次了,大家第一反应就是“工具坏了”,实际上绝大多数时候是 API Key 配错或者网络环境导致的连接异常,先换一个模型测一下,基本就能判断出问题出在哪一层。

7.2 我踩过的几个额外坑

除了上面这些表里能对上的问题,我再补充几个实际操作中会忽略的细节。

第一个坑是项目路径里的中文和特殊字符。在 Windows 上,如果项目目录带中文,opencode 在拼接命令时偶尔会把路径解析错。建议在初期把项目路径改成纯英文,等熟练了再踩这个边界。

第二个坑是大型 monorepo 的上下文失控。项目越大,opencode 需要读的文件越多,上下文消耗就越快。模型一旦失忆,它可能重复读文件,更浪费上下文,进入恶性循环。我的解决办法是在指令里明确指定范围,比如“只关注packages/backend目录下的代码,忽略前端目录”,这样能大幅降低上下文压力。

第三个坑跟 Maven 有关。opencode 在执行mvn clean时可能会把编译产物全部清掉,如果你的模块很多,重新编译会非常慢。建议在指令里明确告诉它不要执行 clean,而是用mvn test -DskipTests或者mvn compile这类更温和的命令。这个细节直接影响你在 Java 项目里的使用体验。

第四个坑是权限问题。opencode 以你的用户身份执行命令,意味着它能改动你本机上的任何文件。在你自己熟悉的开发机里问题不大,但如果连到了生产服务器或者重要数据目录,一定要先给 opencode 说明白哪些目录禁止修改,或者用一个权限受限的系统用户来运行它。它毕竟是个自动化工具,不会天然具备“安全常识”,边界得由你来划。

最后一个心得,也是我觉得最重要的一点:opencode 这类工具真正的价值不在于“帮你把代码写完”,而在于“把你的重复劳动时间压缩下来”。它更像是一位高速执行者,而不是替你思考的决策者。每一次它给出修复方案,我都建议先在本地跑一遍测试再决定是否合并。这套工作流熟练以后,你会明显感觉到自己的精力从“怎么改”转移到了“为什么这么改”上,这才是编码智能体带来的真正的效率提升。

如果在你的项目里遇到了我没提到的怪问题,不妨先去它的开源仓库翻一翻 issue,或者用/doctor看看环境是否健康。工具是死的,用法是活的;把边界设清楚、把技能沉淀下来,opencode 完全可以变成你手边最顺手的编码队友。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询