OpenCode 使用体验文档
在本机 Vue3 + NestJS 环境下,使用 GLM-4.7 的真实体验记录
体验环境说明(本机)
以下为本次完整体验所基于的真实环境,所有命令与输出均在本机执行并记录。
| 项目 | 本机实际值 |
|------|------------|
| 操作系统 | macOS(darwin) |
| Node 版本 | v24.13.0(nvm 管理,~/.nvm/versions/node/v24.13.0) |
| 包管理 | pnpm 11.11.0 |
| 前端项目路径 | /Users/sesar/study/hw_demo |
| 前端技术栈 | Vue 3.5、Vue Router 4、Vite 7、@vitejs/plugin-vue |
| 后端技术栈 | NestJS(与 Vue3 前后端分离联调) |
| AI 模型 | GLM-4.7(通过自定义 provider 接入,见下文「配置文件」) |
| OpenCode 可执行文件 | which opencode → nvm 下 node 的 bin 目录 |
| OpenCode 全局配置目录 | ~/.config/opencode/(存在 opencode.json) |
| OpenCode 数据目录 | ~/.local/share/opencode/(auth、数据库等) |
认证状态(本机实测):
执行 opencode auth list 时,输出为「Credentials 位于 ~/.local/share/opencode/auth.json」且 0 credentials。本机采用配置文件直接写 provider 与 API Key 的方式(见下一节),因此不依赖 OAuth 登录即可使用已配置的 GLM-4.7 模型。
本文所有操作与感受均基于上述环境,在真实项目目录下执行命令、切换 Plan/Build、使用 GLM-4.7 进行编码辅助后的记录。
一、OpenCode 是什么
OpenCode 是一款开源的 AI 编程助手,可以在终端、IDE 或桌面应用中帮你写代码、读代码、改代码。和 Cursor、GitHub Copilot 等产品类似,它通过大语言模型理解你的需求并调用读写文件、执行命令等工具完成任务;不同之处在于它完全开源、支持自建与多模型接入,且强调隐私——不存储你的代码或对话上下文。
笔者在本机(见上「体验环境说明」)安装了 OpenCode,在 Vue3 项目 hw_demo 及 NestJS 后端项目中实际使用终端 TUI,并接入 GLM-4.7 作为主力模型,本文即是对这段使用体验的整理,重点放在「在本机、在真实项目里用起来怎么样」。
二、安装与首次启动
2.1 安装方式
官方推荐用一条命令安装:
curl -fsSL https://opencode.ai/install | bash
也支持 npm、Homebrew、Bun 等,例如 brew install opencode。安装过程很快,完成后在终端输入 opencode 即可启动。系统要求主要是:Node.js v18+、以及支持 TUI 的终端(如 iTerm2、Kitty、WezTerm 等)。本机已通过官方方式安装,which opencode 指向 nvm 下的 node 目录,直接执行 opencode 或 opencode run "..." 即可使用。
2.2 首次启动与登录
第一次运行 opencode 会进入一个基于终端的交互界面(TUI)。要使用 AI 能力,需要先连接模型。OpenCode 支持多种方式:
-
GitHub Copilot:用 GitHub 账号登录,使用你的 Copilot 订阅。
-
ChatGPT Plus/Pro:用 OpenAI 账号登录,使用现有 Plus/Pro 权益。
-
Models.dev 等:通过配置支持 75+ 家 LLM 供应商,包括 Claude、Gemini 以及各类本地模型。
笔者选择了「用 OpenAI 登录」,在终端里按提示完成 OAuth 流程即可,无需额外付费(使用自己已有的 ChatGPT Plus)。登录成功后,在项目目录下执行 opencode 就会进入对话界面,可以直接用自然语言描述需求。
2.3 项目初始化(可选)
在代码项目根目录下可以执行 /init,OpenCode 会生成 AGENTS.md 等文件,用于描述项目结构和约定,方便 AI 更好地理解代码库。这一步不是必须的,但做了之后,AI 在回答「这个项目是做什么的」「该在哪里加功能」时会更有针对性。建议将生成的文件纳入版本控制,方便团队共享。
2.4 本机接入 GLM-4.7 的实操
本机以 智谱 GLM-4.7 作为 OpenCode 的模型。可选方式有两种:
方式一:智谱开放平台 + OpenCode 内置
-
在 智谱开放平台 申请 API Key。
-
在终端执行
opencode进入 TUI 后,输入/connect(或通过菜单连接模型)。 -
选择支持智谱的提供商(如 Zhipu AI、或通过 Models.dev 等聚合),填入 API Key。
-
在模型列表中选择 GLM-4.7(或对应名称,如
zhipuai/glm-4.7),即可在对话中使用。
方式二:智谱 Coding 专用 API(适合编码场景)
若使用智谱的「Coding Plan」等编码专用接口,需在配置中指定 Coding 端点。在 ~/.config/opencode/opencode.json 或项目根目录的 opencode.json 中可配置:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"zhipuai": {
"api": "https://open.bigmodel.cn/api/coding/paas/v4"
}
}
}
配置完成后,在 TUI 里选择对应 GLM 模型即可。本机实际使用中,先执行 opencode models 可看到当前已配置的模型列表(例如仅有一个自定义 provider 时,会显示类似 myprovider/ep-xxx);接入智谱并选择 GLM-4.7 后,该模型会出现在列表中,对话即走 GLM-4.7。GLM-4.7 对中文提示词理解好、工具调用稳定,在「先分析再改代码」的 Plan/Build 流程里表现顺畅。
2.5 本机配置文件详解(真实结构)
本机 OpenCode 的全局配置文件路径为:~/.config/opencode/opencode.json。该文件决定了使用哪个模型、哪个 API 端点。
配置结构说明(不包含完整密钥):
-
provider:可配置多个提供商。本机示例中有一个自定义 provider(如myprovider),类型为 OpenAI 兼容接口(@ai-sdk/openai-compatible),baseURL指向第三方推理服务(例如火山引擎 ARK 或智谱兼容端点),options中包含apiKey。这样即可使用 GLM-4.7 等模型而无需在 TUI 里做 OAuth 登录。 -
provider.xxx.models:该 provider 下的模型 ID 与显示名称。例如ep-20260305155122-9dhwt对应展示名为「GLM-4-7-ep-...」,即本机使用的 GLM-4.7 端点。 -
model:默认使用的模型,格式为provider名/模型ID,如myprovider/ep-20260305155122-9dhwt。 -
enabled_providers:启用的 provider 列表,与provider中的 key 对应。
修改配置后无需重启系统,下次启动 opencode 或 opencode run 时会自动读取。若希望项目级覆盖,可在项目根目录放置 opencode.json,写法与全局配置一致。
三、两种模式:Plan 与 Build
OpenCode 把「只读分析」和「动手改代码」拆成两个主模式,分别对应 Plan 和 Build 两个 Primary Agent,用 Tab 键切换。这是使用体验里最值得先搞清的一点。
3.1 Plan 模式:只读与规划
在 Plan 模式下,AI 只能读文件、搜代码、列目录、拉网页等,不能编辑项目源代码,也不能随意执行会改数据的命令。它只能编辑专门用于「计划」的文件(如 .opencode/plans/*.md)。适合的场景包括:
-
刚接手一个陌生仓库,想让 AI 帮你梳理结构、找入口;
-
做代码审查,让 AI 分析某段逻辑,但不想它直接改;
-
做重构或大功能前,先让 AI 给出步骤和影响分析,再决定要不要执行。
实际使用时,先按 Tab 切到 Plan,再输入类似「分析 src/main.js 和 src/router/index.js 的结构,说明入口和路由是怎么挂载的」或「列出 src/views 和 src/layout 下的文件并简要说明各自职责」。AI 会主要用 read、grep、glob、list 等工具,输出分析结果而不会改你的代码,心理上比较放心。在本机 hw_demo 项目中,用 Plan 分析 DocPage.vue 与 DocLayout.vue 的关系、或「文档页里用了哪些组件」都很合适。
3.2 Build 模式:读写与执行
在 Build 模式下,AI 可以使用全部工具:读、写、编辑文件,执行 bash 命令(如 npm install、npm run test)等。适合:
-
写新功能、修 Bug、加注释、重构;
-
需要创建文件、改配置、跑脚本等操作。
使用时按 Tab 切到 Build,然后直接说「给 src/main.js 加简短注释」「在 src/views 下新增一个 About.vue 并在 router 里加 /about 路由」等,AI 会调用 edit、write、bash 等工具直接改代码、跑命令。在本机 hw_demo 中,例如「在 DocLayout 的 children 里再加一个路由,指向一个新组件」或「给 DocPage.vue 的 style 里加一个 .doc-title 的响应式字体大小」都可以交给 Build 完成。如果改错了,可以用 /undo 撤销最近一轮改动,再重新描述需求或调整提示词。
3.3 使用体验小结
先 Plan 后 Build 的流程在实际中很实用:例如「先帮我分析这个模块的依赖和调用关系」(Plan),看完分析后再说「按刚才的分析,把重复逻辑抽成一个函数」(Build)。Plan 阶段不会误改代码,Build 阶段才动手,可控感很强。唯一需要习惯的是:想让它改代码时,一定要确认当前是 Build 而不是 Plan,否则它会一直只读,新人容易在这里困惑一下。
四、工具体验:读、写、搜、跑命令
OpenCode 为 AI 提供了一组内置工具,相当于它的「手和眼」。作为用户,你主要通过自然语言下指令,由 AI 决定调用哪些工具;了解这些工具有助于你更好地描述需求。
-
read:读文件内容,支持按行范围读大文件,适合「看某段代码」「读配置」。
-
grep / glob / list:在项目里搜索内容、按模式找文件、列目录,适合「找所有调用某函数的地方」「列出 src 下的 ts 文件」。
-
edit:对已有文件做精确的字符串替换式修改,是 AI 改代码的主要方式,适合局部修改。
-
write:创建新文件或覆盖整个文件,适合「新建一个工具函数文件」「生成一份 README」。
-
bash:在项目目录下执行 shell 命令,如安装依赖、跑测试、起服务,适合「装依赖」「跑一下测试」。
-
webfetch:拉取网页内容,适合查文档、看报错链接等。
-
skill / todowrite / todoread:加载技能说明、管理待办列表,适合复杂多步任务时让 AI 自己拆步骤、跟踪进度。
实际体验中,让 AI「先搜再改」「先读再写」都很自然,例如「把所有调用旧 API 的地方改成新 API」——它会先用 grep 找到位置,再用 edit 逐处修改。在本机 hw_demo 中,可以这样用:read——「读一下 src/views/DocPage.vue 的前 30 行」;grep——「在 src 下搜索包含 router-view 的文件」;glob——「列出所有 src/**/*.vue 文件」;list——「列出 src/layout 目录」;edit——「在 DocPage.vue 的 style 里把 .doc-title 的 font-size 改成 22px」;write——「在 src/views 下新建 About.vue」;bash——「在项目根目录执行 pnpm dev 并告诉我端口」。权限上,可以在配置里按需关闭某些工具(如关闭 bash 或 write),适合在共享或敏感环境里做限制。
五、TUI 界面与常用命令/快捷键
进入 opencode 后是终端内的 TUI(Text User Interface),不是图形窗口。界面大致分为:对话区(你与 AI 的往来)、输入区(输入提示词或命令)、以及状态栏(当前 Agent、模型等)。常用操作如下:
-
Tab:在 Plan 与 Build 两个 Primary Agent 之间切换,状态栏会显示当前是 Plan 还是 Build。
-
/exit 或 Ctrl+C:退出 TUI。
-
/undo:撤销上一轮 AI 对工作区的改动(仅撤销文件/命令层面的变更,不撤销对话历史)。
-
/init:在项目根目录生成 AGENTS.md 等引导文件,帮助 AI 理解项目。
-
/connect:连接或更换模型/提供商(若使用配置文件中的 API Key 则可能不需要)。
-
@:在支持的情况下可触发文件或符号的模糊搜索,便于在提示中引用项目内文件。
初次使用建议先确认状态栏上的 Agent 与模型名称,避免「想让 AI 改代码却一直处于 Plan」的情况。
六、多会话、分享与桌面版
-
多会话:在同一项目下可以开多个会话,各自有独立对话历史,适合同时进行「修 Bug」和「写新功能」两条线,互不干扰。
-
分享链接:会话可以生成分享链接,方便把「某次对话 + AI 的修改」发给同事或留档,对协作和排查问题很有用。
-
桌面 Beta 版:除了终端 TUI,OpenCode 还提供桌面应用(macOS / Windows / Linux),从官网下载安装即可。桌面版界面更接近传统 IDE 侧边栏聊天,适合不习惯纯终端的用户;功能上与 CLI 一致,同样支持 Plan/Build 切换和多种模型登录。
笔者在终端和桌面版都试过,终端更适合「随时在项目目录敲一句指令」的轻量用法,桌面版更适合长时间对着一个项目边看代码边聊。
七、模型与成本
OpenCode 本身不卖模型,而是「接你已有的或你配置的模型」。用 ChatGPT Plus 登录时,消耗的是你自己的 OpenAI 额度;用 GitHub 登录则走 Copilot 的额度。也可以配置其他 API(如 Claude、Gemini 或本地模型),在配置文件里指定即可。因此,成本完全取决于你选的模型和用量,OpenCode 不额外收费。官方还提供了 Zen 等精选模型列表,方便选「适合编程」的模型,减少试错。
八、隐私与配置
官方强调 隐私优先:不存储你的代码或对话内容,数据直接和你选择的模型服务商通信。对不能把代码外传的场景(如公司内网、敏感项目),可以只接本地或内网部署的模型,这样代码不会出内网。配置上,通过项目或用户目录下的配置文件(如 opencode.jsonc)可以控制:启用/禁用哪些工具、默认用哪个 Agent、模型参数等,文档里都有说明,按需改即可。
九、本机 Vue3 项目(hw_demo)结构说明(真实目录)
以下为本次体验所针对的真实项目结构,便于理解 OpenCode 在「读什么、改什么」。
hw_demo/
├── index.html # 入口 HTML,标题为「华为云码道(CodeArts)代码智能体 - 产品介绍」
├── package.json # Vue 3、Vue Router、Vite 依赖
├── vite.config.js # Vite 配置,仅 @vitejs/plugin-vue
├── src/
│ ├── main.js # 入口:createApp(App).use(router).mount('#app')
│ ├── App.vue # 根组件,仅 <router-view />
│ ├── style.css # 全局样式
│ ├── router/
│ │ └── index.js # Vue Router:DocLayout + 默认路由 DocPage,history 模式
│ ├── views/
│ │ └── DocPage.vue # 文档页:华为云码道产品介绍(长文档型单页)
│ ├── layout/
│ │ ├── DocLayout.vue # 文档布局:AppHeader + AppSidebar + Breadcrumb + router-view
│ │ ├── AppHeader.vue
│ │ └── AppSidebar.vue
│ ├── components/
│ │ ├── Breadcrumb.vue
│ │ └── HelloWorld.vue
│ └── assets/
│ └── vue.svg
路由逻辑:根路径 / 使用 DocLayout,子路由为空时加载 DocPage.vue(文档首页);未匹配路径重定向到 /。因此对 OpenCode 说「分析路由结构」或「在 views 下加一个页面并挂到 router」时,AI 会基于上述真实文件进行 read/edit/write。
十、在 Vue3 与 NestJS 项目中的实际使用
10.1 本机 Vue3 项目(hw_demo)中的真实操作
项目路径:/Users/sesar/study/hw_demo,结构见上一节。
实际执行过的命令与体验:
- 在项目根目录启动 OpenCode
cd /Users/sesar/study/hw_demo
opencode
会进入 TUI 界面,当前工作目录即为此 Vue 项目,AI 的 read/grep/glob/list 等工具都基于该目录。
- 非交互式执行一次任务(CLI)
opencode run "列出当前项目 src 目录下的文件结构,用 list 或 glob 工具"
会在不打开 TUI 的情况下发起一次对话,由 AI 调用 list 或 glob 列出 src 下的文件并输出。本机实测时,该命令会连到已配置的模型(如 GLM-4.7),执行时间取决于网络与模型响应,适合脚本化或快速查项目结构。
- 在 TUI 中的典型用法(Vue 侧)
-
Plan 模式:输入「分析
src/App.vue和src/main.js的职责,说明入口和路由是怎么挂载的」,AI 会只读文件并总结,不会改代码。 -
Build 模式:输入「在
src/views下新增一个空白页面组件,并在router里加一条路由」,AI 会创建.vue文件并修改路由配置;若需安装依赖或跑pnpm dev,可交给 AI 执行bash。 -
若改错了,在对话里用
/undo撤销上一轮改动即可。
- 与 Vite 的配合
在 hw_demo 中执行 pnpm dev 启动前端后,可另开终端运行 opencode,让 AI 在同一个项目里改 Vue 组件或路由;保存后 Vite 会热更新,立刻在浏览器里看到效果,体验顺畅。
10.2 在 NestJS 后端项目中的使用方式
若后端为 NestJS(与 Vue3 前后端分离),用法与 Vue 项目类似,只是工作目录改为后端仓库根目录:
cd /path/to/your/nestjs-project
opencode
-
Plan 模式:例如「分析
src/app.module.ts和各个 module 的依赖关系」「找出所有使用@Injectable()的 Service 并列出」——只读不写,便于熟悉项目。 -
Build 模式:例如「在
src下新增一个users模块,包含 controller、service、module,并注册到AppModule」「给某某接口加参数校验(用 class-validator)」——AI 会创建或编辑.ts文件,并可按需执行npm run build或npm run test做验证。
前后端在两个不同目录时,各开一个终端、各跑一个 opencode 即可:一个在 Vue 项目里改前端,一个在 Nest 项目里改后端,互不干扰;需要联调时,把接口约定或报错信息贴给 OpenCode,让 AI 根据上下文改对应端即可。
10.3 小结
在本机「Vue3 + NestJS + GLM-4.7」环境下,OpenCode 的体验是:在真实项目目录下启动,用 Plan 做只读分析、用 Build 做读写与执行,配合 /undo 和实际运行(如 pnpm dev、npm run build)形成闭环。GLM-4.7 对中文指令和代码生成都够用,在 Vue 组件与 Nest 模块级别的增删改上表现稳定。
10.4 从零开始的一次完整体验流程(分步记录)
下面是一次「从打开终端到让 AI 完成一个小任务」的完整步骤,便于按顺序复现或对照。
步骤 1:确认环境
在终端执行 node -v(本机为 v24.13.0)、which opencode(确认已安装)、opencode auth list(本机为 0 credentials,依赖配置文件中的 provider)。
步骤 2:进入项目目录
cd /Users/sesar/study/hw_demo
确保之后所有 opencode 命令的「当前工作目录」都是该 Vue 项目根目录。
步骤 3:启动 OpenCode TUI
opencode
会进入基于终端的交互界面:顶部或底部通常有状态栏(显示当前 Agent 是 Plan 还是 Build、模型名等),中间为对话区域。若为首次使用且未配置模型,需先通过 /connect 或配置好 ~/.config/opencode/opencode.json 才能正常对话。
步骤 4:确认/切换 Agent
按 Tab 可在 Plan 与 Build 之间切换。若只想让 AI 分析代码、不改文件,选 Plan;若要改代码或执行命令,选 Build。
步骤 5:在 Plan 模式下做一次只读分析
输入例如:
「分析 src/App.vue、src/main.js 和 src/router/index.js 的职责,用一两句话说明入口和路由是怎么挂载的。」
AI 会调用 read 等工具读取这些文件,并回复总结,不会修改任何源代码。
步骤 6:切换到 Build 模式并做一次小改动
按 Tab 切到 Build,输入例如:
「在 src/views 下新建一个名为 About.vue 的页面组件,内容只有标题“关于我们”;并在 src/router/index.js 里为 /about 添加一条路由,使用 DocLayout 作为父级。」
AI 会创建 About.vue 并编辑 router/index.js。完成后可在项目中看到新文件与路由;若不符合预期,可在对话中输入 /undo 撤销上一轮改动。
步骤 7:本地验证
在项目根目录执行 pnpm dev(或 npm run dev),浏览器访问根路径和 /about,确认新页面和路由生效。若 AI 曾执行过 bash 启动 dev server,可跳过或关闭其一避免端口冲突。
步骤 8:非交互式再跑一次(可选)
退出 TUI(如 Ctrl+C 或 /exit)后,在同样目录下执行:
opencode run "用 list 工具列出 src 目录下的内容,并用一句话总结有哪些子目录和文件"
会发起一次非交互式会话,AI 根据当前配置的模型完成任务并输出到终端;响应时间取决于网络与模型,可能需数十秒。
以上流程走通后,即完成了一次「安装 → 配置 → 进入项目 → Plan 只读分析 → Build 改代码 → 本地验证 → CLI 单次任务」的完整体验。
十一、典型使用场景回顾
在实际使用中,有几类场景体验特别明显。读陌生项目:进入一个没接触过的仓库,用 Plan 模式让 AI「先列出项目结构、说明入口和主要模块」,再针对某个目录或文件追问「这段在做什么、和谁有依赖」,全程只读,不会误改。修 Bug:把报错信息或现象描述给 Build 模式的 AI,它会读相关文件、搜调用链,再给出修改建议并直接改代码,用 /undo 可以随时回退。写小工具或脚本:直接说「在项目里加一个某某功能的脚本」,AI 会创建文件、写逻辑,必要时执行命令验证;配合「用 TODO 跟踪进度」可以让它分步骤完成稍复杂的任务。代码审查与重构:先用 Plan 让 AI 分析「这段代码有哪些问题、怎么重构更合理」,确认方案后再切 Build 让它按计划改。整体上,把「先想清楚再动手」交给 Plan,「动手改」交给 Build,习惯之后效率提升明显。
十二、不足与建议(含本机实测小坑)
-
学习成本:Plan/Build 双模式、Tab 切换、
/init、/undo等需要看一点文档或提示才能用顺,建议首次使用前快速过一遍官方「快速开始」。 -
终端依赖:TUI 对终端和字体有一定要求,若终端不支持或字体不合适,可能出现排版错乱,可考虑直接用桌面版。
-
模型表现:代码质量、理解准确度取决于你接的模型,OpenCode 只负责调度工具和会话,不负责模型能力本身。
-
文档与生态:目前文档以英文为主,中文资料多在社区,遇到问题可以查 GitHub Issues 和官方文档。
本机实测时的小坑与对应做法:
- 模型列表与 GLM-4.7
在本机执行 opencode models 时,若尚未通过 /connect 或 opencode auth login 配置智谱,可能只看到少量或自定义 provider(例如仅 myprovider/ep-xxx)。需要先在 TUI 里完成「连接提供商 → 选智谱/Novita 等 → 填 API Key → 选 GLM-4.7」,之后该模型才会出现在列表中并可用于对话。
opencode run "..."的等待时间
在 hw_demo 下执行 opencode run "列出当前项目 src 目录下的文件结构" 时,命令会发起一次非交互式会话,需要等待模型响应与工具调用(list/glob 等)。本机实测时响应时间与网络、模型负载有关,有时需数十秒,属正常现象;若超时,可检查 API Key 与网络,或改用 TUI 交互式使用。
- 工作目录
OpenCode 以「当前工作目录」为项目根,read/grep/edit 等工具都基于此目录。因此务必在项目根下执行 opencode 或 opencode run(例如 cd /Users/sesar/study/hw_demo 后再运行),否则 AI 可能找不到你的 src 或 package.json。
- 配置文件与 0 credentials
本机 opencode auth list 显示 0 credentials,但依然能使用 GLM-4.7,是因为在 ~/.config/opencode/opencode.json 里直接配置了 provider 的 baseURL 和 apiKey。这种方式的优先级与「通过 /connect 或 auth login 登录」可能不同,若你同时使用多种登录方式,以实际生效的模型为准。
建议先在一个小项目或分支上试用几天,熟悉 Plan/Build 的切换和常用指令,再在正式项目里用,会更顺手。
本机实际用到的 CLI 命令一览与真实输出
在体验过程中,本机实际执行过的命令如下;部分命令的真实输出已节选,便于对照。
1. 查看帮助
opencode --help
输出中会列出所有子命令,例如:opencode [project](默认启动 TUI)、opencode run [message..](非交互式执行)、opencode models [provider]、opencode auth、opencode session、opencode upgrade 等;以及全局选项如 -m, --model、-c, --continue、--print-logs、--log-level 等。
2. 查看认证状态
opencode auth list
本机输出示例:
Credentials ~/.local/share/opencode/auth.json,下方为 0 credentials。表示当前没有通过 OAuth 登录任何提供商,模型依赖 ~/.config/opencode/opencode.json 中的 provider 配置(含 API Key)。
3. 查看已配置的模型
opencode models
若已在配置文件中写好 provider 与模型,会列出如 myprovider/ep-20260305155122-9dhwt 等;选择该模型后即可在 TUI 或 opencode run 中使用。
4. 在项目根目录启动 TUI
cd /Users/sesar/study/hw_demo
opencode
当前工作目录即项目根,AI 的 read/grep/edit 等工具均基于此目录。
5. 非交互式执行一条指令
cd /Users/sesar/study/hw_demo
opencode run "用 list 或 glob 列出 src 目录下的文件和子目录,用简短文字总结项目结构"
会发起一次完整会话:连接配置的模型、发送提示、由 AI 调用 list/glob 等工具、最后将结果输出到终端。执行时间可能较长(数十秒到一两分钟),属正常现象。
6. 指定模型运行(可选)
opencode -m myprovider/ep-20260305155122-9dhwt run "列出 src 下的 .vue 文件"
用于在有多模型时显式指定使用哪个模型。
7. 其他常用命令
-
opencode auth login:按提示登录某个提供商(如 OpenAI、GitHub Copilot)。 -
opencode session:查看或管理会话。 -
opencode upgrade:升级 OpenCode 到最新版。 -
opencode stats:查看 token 用量与成本统计。
更多子命令可通过 opencode --help 查看。
十三、总结
在本机「macOS + Vue3(hw_demo)+ NestJS + GLM-4.7」环境下实际使用 OpenCode 后,整体印象是:开源、可插模型、隐私友好,且用 Plan/Build 把「分析」和「执行」分得很清楚。在真实项目目录下启动、用中文给 GLM-4.7 下指令,读文件、改 Vue 组件或 Nest 模块、执行 pnpm dev / npm run build 都能形成闭环;配合 /undo 和前后端分离的两套目录,适合日常开发与联调。若你同样使用 Vue3 + NestJS 并希望用国产大模型(如 GLM-4.7)做编码辅助,OpenCode 值得在本机试一轮。本文基于笔者在本机的真实操作与体验整理,后续会随版本与使用深度再补充或修正。
附录:OpenCode 子命令速查(本机 opencode --help 节选)
| 命令 | 说明 |
|------|------|
| opencode [project] | 启动 TUI,可选项目路径,默认当前目录 |
| opencode run [message..] | 非交互式执行一条消息 |
| opencode models [provider] | 列出可用模型 |
| opencode auth login/list/logout | 管理 OAuth 登录 |
| opencode session | 会话管理 |
| opencode upgrade [target] | 升级 OpenCode |
| opencode stats | token 用量与成本统计 |
| opencode export/import | 导出/导入会话数据 |
| opencode serve | 启动无头服务 |
| opencode web | 启动服务并打开 Web 界面 |
| opencode -m provider/model | 指定模型(可与 run 等组合) |
| opencode -c / -s <session> | 继续上一会话或指定会话 |
文档版本:v1.2 | 体验环境:本机 macOS,Vue3(hw_demo)+ NestJS,GLM-4.7 | 最后更新:2025 年 3 月