OpenCode 安装和使用
OpenCode 是一个基于命令行(CLI)的 AI 编程 Agent,能够理解项目上下文,并自动执行开发任务。它并不是一个简单的代码生成器,而是一个具备理解 + 执行能力的智能体工具。OpenCode 运行在终端中,而不是 IDE。
安装OpenCode
这里,使用npm安装。安装命令:
npm install -g opencode-ai安装非常耗时,我这里花费了大约半小时才完成。
然后,在终端中输入:
opencode --version如果能正常显示版本号,就表示安装成功了。
在终端中使用
打开终端,输入:
opencode即可启动它:

在终端中就可以使用它了。
在web中使用
除了终端外,它还提供了一个web服务器,可以在浏览器中进行使用:
opencode web然后,会自动打开一个web页面:

它默认会提供一些免费的大模型来供用户试用。但是,我的目的是连接Ollama上运行的本地大模型。
选择大模型:qwen2.5-coder-3b
我的显卡为GTX1060,显存只有6G,我需要一个不那么占用显存大小的模型,这样,模型本身 + KV Cache 能全部放入到显存中跑,所以,我选择:
模型:
qwen2.5-coder:3b
量化:
Q4_K_M
Context:
32768
目标:
100% GPU先下载模型。
由于ollama直接下载非常慢。所以,还是用老办法。
1. 在modelscope网站下载qwen2.5-coder-3b-instruct-q4_k_m.gguf。放入到某个文件夹中(比如:D:\models\qwen\目录下)。
2.创建一个名为 Modelfile 的文本文件(没有扩展名),内容只有一行:
FROM ./qwen2.5-coder-3b-instruct-q4_k_m.gguf3. 在该文件夹中打开一个终端(PowerShell 或 CMD),并执行以下命令来创建模型并起个名字:
ollama create qwen2.5-coder-f ./Modelfile4. 创建完成后,运行即可:
ollama run qwen2.5-coder测试实际速度
最后,实际测试下速度看看:
ollama run qwen2.5-coder--verbose启动后,输入”写一个Java快速排序“,最终,测速结果如下:

其中,主要看如下两个指标:
- eval rate: 生成回答的速度。
- prompt eval rate: 读取输入上下文的速度。
和Ollama本地模型互通
我的Ollama运行在局域网的另一台win10电脑上,而opencode安装在我的iMac这台主力电脑上。
win10电脑的ip为:192.168.3.16,试试看能不能访问:
curl 192.168.3.16:11434/api/tags显示超时,再试试ping:
ping 192.168.3.16居然不通。原因是防火墙,将其ICMP开启就好了。
防火墙的规则开启后,能ping通,但是curl还是不通,因为默认没有开启外部访问,在Ollama设置中:

将Expose Ollama to the network打开就好了。
接下来,就是让opencode识别ollama中的大模型。
配置Ollama作为模型提供方
OpenCode的配置文件有两个位置:
- 项目级:项目根目录下的opencode.jsonc
- 全局级:~/.config/opencode/opencode.jsonc
我使用全局级设置,这样,以后每个项目都可以使用这个配置。
然后,编辑~/.config/opencode/opencode.jsonc文件,输入:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama",
"options": {
"baseURL": "http://192.168.3.16:11434/v1"
},
"models": {
"qwen2.5-coder": {
"name": "qwen2.5",
"type": "llm",
"capabilities": ["text-generation"],
"default": true
}
}
}
}
}注意:qwen2.5-coder 是ollama ls中显示的名称,name中设置的qwen2.5表示在opencode中显示的模型名称。
完成后,重启opencode,在设置,提供商中就出现了 ollama,

模型中,也会出现我们配置的qwen 2.5。
第一个项目:写一个贪吃蛇网页游戏
OK,接下来,就是让这个AI模型干活了。我们第一个项目,就是让它做一个简单的游戏。
先初始化项目:
/init但是,回复:
{
"function": "write",
"arguments": {
"content": "To automatically write files, use the \"write\" function and provide the file content and path as arguments. For example, `write {\"content\": \"Hello, World!\", \"filePath\": \"/path/to/file.txt\"}`.",
"filePath": "/Volumes/CODE/3AI_Project/snake/AGENTS.md"
}
}为啥?
我猜测可能是这个大模型太老了(几年前发布的),导致和新的OpenCode的工具调用不兼容。虽然,它可以用于终端补全(FIM / Auto-complete)或轻量级对话,但不适合驱动 Agent 场景。
我不死心,又尝试了qwen3.5:2b,发现能正确创建文件,但是,跑起来却报错了:
snake2.html:124 Uncaught ReferenceError: gameLoop is not defined at startGame (snake2.html:124:13)
at HTMLButtonElement.onclick (snake2.html:78:43)把报错信息给它,但是一直无法修复:

毕竟只有2b参数,能力有限。没法,我的显卡只有6G显存,没法跑更大的模型了。于是,切换到免费的MiMo V2.5,一次运行成功。

这种简单的小任务,对于这种体量的大模型来说,简直就是砍瓜切菜。
毕竟,MiMo V2.5总参数量高达 1.02 Trillion(1.02 万亿),比我本地的qwen 2.5-3B的参数大了340倍!另外,qwen 2.5-3B最大的上下文才32K,而 Ollama 的 OpenCode 集成文档明确建议使用 64K+ context。
小结
相比之前的AI辅助编程(代码补全,代码解释)等,OpenCode这种Agentic Coding算是一种全新的开发方式!