目录

一、🚀 引言

二、💡 核心特点

三、🛠️它能做什么

四、🔗 它是怎么工作的

五、⚙️ 安装

5.1 下载地址

5.2 终端安装

5.3 安装验证

5.4 IDE插件集成(不使用vscode忽略本章节)

5.5 配置文件(了解)

六、🛠️快速上手

6.1 创建一个新项目

6.2 命令概览

6.3 基本操作

6.3.1 编辑模式 plan/build

6.4 内部命令

6.5 供应商/模型(connect/models)

6.5.1 直接使用提供的厂商

6.5.2 自定义供应商

6.5.2.1 通用配置

6.5.2.2 注意部分特殊厂商配置

6.5.2.3 本地ollama(受模型影响非常大,不推荐使用)

6.5.3 切换模型

6.6 开发规范(init)

6.6.1 基本用法

6.6.2 带参数使用

6.6.3 常用选项

6.6.4 注意事项

6.6.5 为什么需要 AGENTS.md?

6.7 基本编辑(undo-redo)

6.8 会话管理(session)

6.8.1 /sessions 调用会话

6.8.2 /new 开启新会话

6.9 skills调用

3.9.1 skills简介

3.9.2 OpenCode规则

6.10 MCP

6.10.1 mcp简介

6.10.2 应用案例

七、🕹️ 小试牛刀-打造1024小游戏

7.1 创建项目目录 

7.2 创建项目说明

7.3 生成代码

7.4 优化代码

八、🎴 项目实战

8.1 后端开发

8.1.1 基本框架

8.1.2 数据库建模

8.1.3 生成后端代码

8.1.4 启动后端服务

8.1.5 解决swagger需要登录问题

8.2 前端开发

8.2.1 启用skills

8.2.2 生成前端页面

8.2.3 联调


前言:如何快速使用AI工具帮你编写代码,今天你就能做到。本文最后还来个项目实战,包含前端、后端,以及前后端的联调使用。

一、🚀 引言

OpenCode 是一个开源的 AI 编程助手,主要运行在终端里。你可以把它想象成一位“懂代码的同事”,你直接在命令行里跟它对话,让它帮你写代码、找 Bug、解释项目,甚至直接执行命令来重构整个项目。

二、💡 核心特点

特点维度 具体说明
开源免费 采用 MIT 开源协议,代码完全公开,你可以自由使用、修改甚至二次开发。
模型自由 不绑定任何一家 AI 公司。你可以接入 OpenAI (GPT-4o)、Anthropic (Claude)、Google (Gemini),甚至本地部署的模型。
终端原生 提供交互式的终端界面 (TUI),让你无需离开命令行就能完成复杂的编码任务,非常适合习惯命令行的开发者。
高度扩展 支持 MCP (模型上下文协议) 和自定义 Agent,可以按需扩展工具能力,比如连接数据库或调用外部 API。

三、🛠️它能做什么

  1. 理解与搜索:你问“这个 auth.ts 文件是干嘛的?”,它会读取文件并给出解释。

  2. 编写与修改代码:直接说“给 Express 项目加个用户注册接口”,它会自动生成路由、控制器等文件。

  3. 修复 Bug:把报错信息贴给它,它能帮你定位错误并给出修复方案。

  4. 执行命令与重构:它不仅能写代码,还能执行 Shell 命令(如 npm install),或帮你把整个项目代码风格统一重构

四、🔗 它是怎么工作的

OpenCode 本身不带模型,它是一个“代理”或“客户端”。它的工作流程是:

  1. 连接模型:你需要配置 OpenAI、Claude 等模型的 API Key(或使用阿里云百炼等服务)。

  2. 加载上下文:你进入项目目录启动它(opencode),它会自动扫描你的代码结构,建立索引。

  3. 执行任务:你下达指令(如“修复登录页面的样式”),OpenCode 会将任务拆解,调用相应的工具(查看文件、编辑代码、执行命令),最终完成任务。

五、⚙️ 安装

5.1 下载地址

https://opencode.ai/download

5.2 终端安装

官方提供了很多安装方式,我这边试用试用npm命令方式,通过 npm 安装 opencode-ai 的前提是你已经安装了 Node.js (版本 18 以上),我使用的是24LTS的版本,安装好node.js之后,使用管理员命令打开cmd,执行

npm i -g opencode-ai

5.3 安装验证

命令行输入opencode

即可弹出这个界面

5.4 IDE插件集成(不使用vscode忽略本章节)

搜索opencode安装,安装完成之后,点击下图箭头位置

开始工作

5.5 配置文件(了解)

六、🛠️快速上手

6.1 创建一个新项目

找一个项目代码目录创建一个项目文件。例如使用D: 切换到D盘,cd进入到对应目录

进入到项目目录之后输入opencode

6.2 命令概览

https://opencode.ai/docs/tui#commands

6.3 基本操作

操作 方式
引用文件 @文件名
执行 Shell 命令 !命令
切换计划/构建模式 plan/build Tab 键
快捷键前缀 Ctrl+x

6.3.1 编辑模式 plan/build

📋 Plan 模式(计划模式)

  • 作用:AI 只会生成执行计划,而不会真正执行任何操作(不修改文件、不运行命令)。

  • 适用场景

    • 你想先预览 AI 会做什么,避免意外修改。

    • 复杂任务需要分步确认,确保方案正确。

    • 学习或调试,看 AI 如何拆解问题。

  • 表现

    • AI 会输出详细的步骤列表。

    • 不会实际创建/编辑文件,也不会执行 Shell 命令。

    • 你可以审查计划,如果需要调整,可以直接提出修改意见。


🏗️ Build 模式(构建模式)

  • 作用:AI 会实际执行任务,包括修改文件、运行命令、安装依赖等。

  • 适用场景

    • 你信任当前计划,希望立即执行。

    • 快速实现功能、修复 Bug、重构代码。

  • 表现

    • AI 会按计划直接操作文件系统,执行终端命令。

    • 执行过程中可能会询问你确认某些敏感操作(如删除文件)。

    • 执行完成后,你可以直接看到代码变更或运行结果。

💡 使用建议

  • 先用 Plan 模式:对不熟悉的任务或大规模修改,先让 AI 生成计划,确认无误后再切换为 Build 模式执行。

  • 直接 Build 模式:对于简单、明确的任务(如“修复 typo”),可以直接在 Build 模式下进行。

  • 即使处于 Build 模式,AI 在执行关键操作前(如删除文件、修改多处)通常也会请求确认,确保安全。

6.4 内部命令

常用的已经标红,后面章节会重点介绍重点命令

命令 描述 备注
/help 显示帮助对话框 -
/init 创建或更新 AGENTS.md 文件 默认有可能英文,可以要求它使用简体中文重新生成一下
/undo 撤销上一条消息及文件更改 -
/redo 重做已撤销的消息 -
/share 分享当前会话 -
/unshare 取消分享当前会话 -
/connect 添加 LLM 提供商 -
/models 列出可用模型 -
/new 开始新会话 /clear
/sessions 列出并切换会话 /resume/continue
/compact 压缩当前会话 /summarize
/details 切换工具执行详情显示 -
/editor 打开外部编辑器编写消息 -
/export 导出会话为 Markdown -
/themes 列出可用主题 -
/thinking 切换思考/推理块的可见性 -
/exit

退出 OpenCode

/quit, /q

6.5 供应商/模型(connect/models)

6.5.1 直接使用提供的厂商

输入前缀   /    选择connect 

就能查看所有的供应商了

6.5.2 自定义供应商

6.5.2.1 通用配置

6.5.2.2 注意部分特殊厂商配置

6.5.2.3 本地ollama(受模型影响非常大,不推荐使用)

方式一:从配置文件加载

本地模型没有apikey

方式二:直接在命令行配置(相当于自动修改配置文件)

6.5.3 切换模型

输入/  前缀  选择models 

点进去就可以选择某厂商下的模型了

6.6 开发规范(init)

你可以定义,也可以在你现有项目当中,使用这个命令,让他分析帮你生成该项目规范。

6.6.1 基本用法

在 OpenCode 的对话窗口中直接输入:

/init

OpenCode 会:

  1. 扫描当前工作目录,自动识别已有的配置(如 .cursorrulespackage.json 等)。

  2. 生成一个 AGENTS.md 模板,包含:

    • 构建/测试命令

    • 代码风格指南

    • 项目特定说明

  3. 将文件保存到当前工作目录(即你启动 opencode 时所在的文件夹)。

6.6.2 带参数使用

你可以在 /init 后添加描述,让 OpenCode 生成更贴合项目实际的内容。例如:

/init 这是一个 React + TypeScript 项目,使用 Vite 构建,状态管理用 Zustand,测试用 Vitest

OpenCode 会根据你的描述,在 AGENTS.md 中填充对应的技术栈、命令和规范。

6.6.3 常用选项

参数 说明
/init 基础生成,自动识别项目
/init --force 强制覆盖已有的 AGENTS.md 文件
/init --write 直接写入文件,不进入交互确认
/init 描述内容 用自然语言描述项目,生成定制化内容

6.6.4 注意事项

  1. 文件位置AGENTS.md 会保存在 当前工作目录

    • 启动 opencode 前,请确保已 cd 到项目根目录。

    • 如果不确定,可以在 OpenCode 中执行 !pwd 查看。

  2. 已有文件的处理:如果项目根目录已经存在 AGENTS.md/init 会尝试 改进或合并 现有内容,而不是直接覆盖。

    • 如果想完全覆盖,请使用 /init --force

  3. 自定义内容:生成后,你可以手动编辑 AGENTS.md,添加更多项目细节(如环境变量、特殊架构等)。AI 助手会自动读取最新内容。

  4. 与 Cursor/Copilot 规则集成

    • 如果项目中有 .cursor/rules/.cursorrules 或 .github/copilot-instructions.md/init 会尝试提取其中的规范,融入 AGENTS.md


6.6.5 为什么需要 AGENTS.md?

  • 提高 AI 生成代码的准确性:AI 知道你的测试命令、命名风格、错误处理模式后,会生成更一致的代码。

  • 减少重复说明:你不需要每次对话都强调“用 2 空格缩进”、“测试用 Vitest”。

  • 团队协作:所有使用 OpenCode 的开发者都能共享统一的项目规范。

6.7 基本编辑(undo-redo)

/undo 一键回退到修改前的状态,如果反悔了,再使用/redo恢复 

6.8 会话管理(session)

6.8.1 /sessions 调用会话

delete 你可以删除会话

rename 你可以重命名会话

6.8.2 /new 开启新会话

6.9 skills调用

3.9.1 skills简介

Skills 最早诞生于 Anthropic 的 Claude Code 生态中。后来,Anthropic 将 Skills 作为一个独立的开放标准发布,这意味着任何人都可以基于这个规范实现自己的 Skills 系统。标准发布后,迅速被主流 AI 编程工具广泛采用。
包括 OpenCode。

OpenCode 最初采用单数形式 skill 作为技能目录名称。后来演进为 skills,同时兼容 skill

简单来说,一个 Skill 就是一份特殊的 Markdown 文件(必须叫 SKILL.md),里面用固定的格式告诉 AI 该如何完成某个特定任务。比如:

  • 执行项目代码检查

  • 生成符合标准的文档

  • 编写特定类型的测试用例

3.9.2 OpenCode规则

OpenCode 会在多个地方自动搜索 Skill:

  • 项目专用:.opencode/skills/<技能名称>/SKILL.md

  • 全局共享:~/.config/opencode/skills/<技能名称>/SKILL.md

  • 兼容 Claude:也支持 .claude/skills/ 和 .agents/skills/ 路径

只要配置了skills一般会自动引用,也可以主动出击,/skills 然后选择你配置的skill

6.10 MCP

6.10.1 mcp简介

MCP (Model Context Protocol, 模型上下文协议) 是 Anthropic 公司在 2024 年底开源的一项开放标准协议。可以把它理解成:AI 世界的“USB-C接口”。

6.10.2 应用案例

  • 进入 OpenCode,查看 /mcp,确认加入的 MCP 处于 enable 状态

  • 测试 MCP 的天气效果:北京到上海多远?

七、🕹️ 小试牛刀-打造1024小游戏

7.1 创建项目目录 

这里我创建了一个1024目录

7.2 创建项目说明

在1024目录下新增一个rules.md文件,内容如下

## 🎮 游戏规则

  游戏在一个4x4或5x5的网格上进行。你需要通过方向键或滑动屏幕,控制所有数字方块向同一方向移动。

- 核心玩法:每次移动时,相邻且数字相同的方块会合并成一个新方块,其数字是两者之和(例如2和2合并成4,4和4合并成8)。
- 随机生成:每次移动并合并后,会在空白的格子处随机生成一个新的数字(通常是1或2或4)。
- 获胜目标:游戏的最终目标就是通过不断合并,在网格中“拼”出一个数字为“1024”的方块。

7.3 生成代码

在1024目录打开opencode,使用buid模式输入

1024小程序开发,具体请参考项目目录中的 rules.md 项目说明,生成一个基于 html+css+js 的前端页面

查看目录

打开页面

7.4 优化代码

请给这个页面加个主题选择按钮,用户可以选择不同的主题。决定这个游戏页面的颜色样式风格

八、🎴 项目实战

使用opencode全栈式生成一个博客系统,这个过程当中一般是遇到问题,解决问题的方式实现。

8.1 后端开发

创建项目目录,启动opencode

8.1.1 基本框架

下面X部分自己替换

创建一个backend目录,在该目录下为我生成一个javaweb项目,基于springboot构建,集成mysql(版本:8.0.30,服务器:192.168.X.X:3306,数据库名:opencodedemo,用户名是root密码是XXX)、mybatis-plus、lombok,请注意maven坐标与中间件版本的适配,接口请集成swagger来管理。

生成完毕,使用idea打开

pom.xml 有错误,让opencode去修复。 

8.1.2 数据库建模

在项目根目录下生成一个sql脚本,该脚本包含了一个博客及点评模块的所有业务表:用户表(用户名、密码、头像、个人简介等),博客表(标题、内容、发布人、发布时间等),博客分类表,博客评论表(对应的博客,评论人、评论时间),收藏表(记录用户收藏的博客),点赞表(记录用户点赞的博客)。并包含大概100条测试数据,数据用模拟的,数据库字段类型尽量设计合理

blog.sql按理应该生成在backend目录下

我发现他生成没有建库脚本,我又让他重新生成建库脚本补充上了

使用mysql客户端工具执行脚本

8.1.3 生成后端代码

根据以上sql文件中生成的表,在项目中创建对应的mybatis、service、controller接口等程序,以备将来前端页面调用。主要业务如下:用户(注册、登录、发布博客、点赞、评论、收藏博客、修改密码、修改头像),其他博客表、分类表、点赞评论收藏等表的业务都需要适配用户相关业务,请合理生成,尽量全面,如有不确定的地方可以跟我交互共创,涉及到文件上传的,请使用springboot将文件存储到后端服务器的目录上并使用backend的url地址访问

 

- API文档: http://localhost:8080/doc.html
- 上传文件: http://localhost:8080/upload/**

8.1.4 启动后端服务

8.1.5 解决swagger需要登录问题

输入

http://localhost:8080/doc.html

提示

需要解决的问题:1、需要从拦截器排除;2、需要移除默认的Spring Security模块

1、当前项目中的Swagger是需要登录的,被拦截了,请配置它无需登录即可访问;2、请检查并全部移除Spring Security的内容,确保项目编译通过

打开网站

http://localhost:8080/doc.html

8.2 前端开发

8.2.1 启用skills

将skills包解压存放在用户下图目录,

链接: https://pan.baidu.com/s/1Gx98jyhVRxR82iJKPvki6A 提取码:需要关注,评论回复skills包

存放之后,记得重新启动opencode

/skills 选择frontend-design

8.2.2 生成前端页面

在frontend目录下,生成博客网站的h5前端页面,使用响应式设计,接口使用本项目里backend后端项目提供的接口. 尽量时尚简约,需要包含以下功能: 首页 (请自主设计布局和板块,可以分最新博客、各种排行榜等) ,分类导航页,博客详情页 (可以对博客点赞、评论、收藏、并展示各项的统计数) ,个人中心页(修改密码、修改头像、发布博客、查看我的评论、查看我的收藏、评论、点赞) 。如果有其他需要的页面,请酌情添加,有不确定的地方,请跟我交互共创

8.2.3 联调

打开前端的两种方式,上图已经说明。

我使用D:\opencode\blog\frontend 地址打开cmd命令,然后输入(我本地有python环境)

python -m http.server 3000

调试的宗旨就是:哪里出问题,解决哪里问题

需要源码:链接: https://pan.baidu.com/s/1e8jSGsUox6qmxzZI_uyJtg 提取码: 关注,评论

这个数据库这的XXX 拿到源码自己改哦!

展示最后页面

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐