OpenCode 是一个开源的 , 提供了 / / , 并且可以使用任何模型, 相比于 Claude Code / Gemini Cli 等同类型的产品, 它更加开放
OpenCode 是一个开源免费的 , 在各大厂商都发布自己的 时, OpenCode 完全开源和开放, 并且可以接入几乎市面上的所有厂商的 , 因为它的开放性, 它在 上的 比 Claude Code 还要多
现阶段各大厂商都发布自己的 , 例如 Claude Code / Gemini Cli / trae, 但 每家都在制定自己的标准或协议, 例如 使用 , 使用 , 使用 , 对于 MCP / Command / Skills / Plugins 等的标准和支持度也有差异, 也就是说如果你要使用某个厂商的模型编码, 那么就只能使用它们推出的
OpenCode 做的就是兼容各家厂商的大模型, 你可以在这里看到支持的 providers
OpenCode 提供了多种安装方式, 这里我们选择使用 bun 进行安装, 因为它比 Node.js 更快性能更好
OpenCode 提供了免费的模型, 你可以在 opencode zen pricing 中查看

opencode zen 提供的免费模型好像有频率限制, 不是很稳定, 而且不支持 GLM 的 视觉理解等 MCP 服务, 这里可以直接接入已经订阅的 GLM Coding Plan
或使用 npx:
然后修改 中的模型:
其他供应商或模型的接入方式可以查看 providers
最终启动 时可能会遇到没有权限创建目录的问题:
看起来只是单纯的目录权限问题, 我们来看看当前用户是否有权限:
这里 目录属于 用户, 我们将其改为当前用户:
直接执行 启动

直接输入 符号就可以在输入框中搜索并引用文件

直接输入 符号, 然后输入命令按下回车即可执行, 例如

OpenCode 支持打开外部编辑器编写信息, 在编辑长信息时可能有点用, 首先添加环境变量 , 然后输入 即可进入 制定的编辑器中编辑信息, 具体配置方式参考 editor setup – OpenCode
例如我们将外部编辑器设置为 :
然后使用 加载一下相关的配置文件, 再启动 即可
执行 命令生成被大多数 支持的 文件:

执行后 会阅读整个项目的源码, 然后生成一个让 可以快速理解项目的 文件, 并且每次启动 时都会加载这个 文件, 类似于 的 文件, 但是他更加通用
执行 查看现有的模型:

这里我们切换为 , 然后确定

执行 切换推理/思考过程是否显示

执行 可以不打开交互式终端直接发送消息
执行 查看 token 消耗量 / 消费额 等信息
执行 会启动一个 服务, 可以在浏览器中通过 web 页面的形式使用 :

mdns discovery
执行 可以使此 服务在本地网络中被公开访问, 参考 mdns discovery
提供了 :

OpenCode 自带了一些常用的指令:
- : 压缩会话
- : 清空会话
- : 导出会话, 导出为 文件, 并使用 打开文件
- : 初始化 文件, 详见 初始化项目
- : 列出支持的
- : 查看所有历史会话
- : 分享当前会话, 类似于 的 功能智谱 AI GLM 教程
- : 退出
- / : 退出当前模式
- : 切换模式
我更习惯使用 , 所以真正用到的快捷键只有这些
- 当前项目的配置文件在
- 全局配置文件在
直接在配置文件中声明 MCP 服务
会从以下位置读取 :
- 项目配置:
- 全局配置:
- 项目 Claude Code:
- 全局 Claude Code:
会读取 作为可以直接调用的工具, 以 为例:
这样就创建了两个工具: 和
可以在项目中创建 文件( 文件允许添加注释) 来配置 , 最重要的就是权限相关的配置了:
或者使用更加细粒度的权限控制:
的权限是根据工具名称来划分的, 此外还有一些安全措施:
- read: 读取文件(匹配文件路径)
- edit: 所有文件修改(涵盖edit,,,)writepatchmultiedit
- glob: 文件通配符(匹配通配符模式)
- grep: 内容搜索(匹配正则表达式模式)
- list: 列出目录中的文件(与目录路径匹配)
- bash: 运行 shell 命令(匹配已解析的命令,例如git status —porcelain)
- task: 启动子代理(与子代理类型匹配)
- skill: 加载技能(与技能名称匹配)
- lsp: 运行 LSP 查询(目前是非细粒度的)
- todoread / todowrite: 阅读/更新待办事项列表
- webfetch: 获取 URL(与 URL 匹配)
- websearch / codesearch: 网络/代码搜索(与查询匹配)
- external_directory: 当工具访问项目工作目录之外的路径时触发
- doom_loop: 当同一工具调用重复 3 次且输入完全相同时触发
的自定义命令跟 的 Slash Commands 基本一致, 可以直接参考我的另一篇文章 Claude Code 系列教程之 斜杠命令(Slash Commands)
不同点在于参数的声明和使用, 在 中直接使用 或者 / 来使用参数, 不支持声明参数
更多使用方式参考 opencode commands
支持在更新完代码之后自动进行格式化, 例如 使用 , 使用 , 前端项目使用 / / … 更多详情参考 formatters
- OpenCode
- Claude Code
- Gemini Cli
- trae
- bun
- GLM 的 视觉理解等 MCP 服务
- GLM Coding Plan
- 点击这里
- editor setup – OpenCode
- Slash Commands
- Claude Code 系列教程之 斜杠命令(Slash Commands)
- opencode zen pricing
- providers
- opencode commands
- formatters
- mdns discovery
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/263934.html原文链接:https://javaforall.net
