OpenCode 虽然以 TUI(终端用户界面)为核心,但通过与 VS Code 等 IDE 的深度集成和 Client/Server 远程模式,它的使用场景远不止终端。本章覆盖将 OpenCode 嵌入现有开发环境的所有方式。
最直接的方式:在 VS Code 的集成终端中使用。
# Ctrl+` 打开 VS Code 终端 $ opencode "分析当前打开的文件"
OpenCode 自动感知 VS Code 当前项目——包括打开的文件、工作区配置、Git 状态。
┌───────────────────┬──────────────────┐ │ VS Code 编辑器 │ 终端 (OpenCode) │ │ │ │ │ 查看 AI 生成的 │ 与 AI 对话 │ │ 代码变更 │ 下达任务 │ │ │ 实时观察执行 │ │ 手动微调 │ │ │ Git diff │ /undo 回退 │ │ │ │ └───────────────────┴──────────────────┘
左侧编辑器中审阅代码,右侧终端中与 AI 沟通——这是最高效的双屏工作流。
将 OpenCode 常用操作绑定到 VS Code Tasks:
// .vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "OpenCode: 审查当前文件",
"type": "shell",
"command": "opencode '审查 ${relativeFile},按严重度分级输出'",
"presentation": { "reveal": "always", "panel": "dedicated" }
},
{
"label": "OpenCode: 为当前文件生成测试",
"type": "shell",
"command": "opencode '为 ${relativeFile} 编写完整测试'",
"presentation": { "reveal": "always" }
},
{
"label": "OpenCode: 重构当前函数",
"type": "shell",
"command": "opencode '重构当前文件中的最长函数,拆分为更小的单元'",
"presentation": { "reveal": "always" }
}
]
}
// .vscode/keybindings.json
[
{ "key": "ctrl+shift+r", "command": "workbench.action.tasks.runTask", "args": "OpenCode: 审查当前文件" },
{ "key": "ctrl+shift+t", "command": "workbench.action.tasks.runTask", "args": "OpenCode: 为当前文件生成测试" },
{ "key": "ctrl+shift+f", "command": "workbench.action.tasks.runTask", "args": "OpenCode: 重构当前函数" }
]
OpenCode 提供 VS Code 扩展,安装后可以在侧边栏中直接与 AI 对话:
在 VS Code 扩展市场搜索 "OpenCode"
安装后侧边栏出现 OpenCode 面板
直接在面板中输入提示词,AI 修改当前文件
在 JetBrains IDE 的终端窗口中直接使用:
# 打开 Terminal 标签(Alt+F12) $ opencode "重构 Java 服务类,提取接口"
# 在 Vim 中 :terminal 打开终端 :terminal opencode "审查当前 buffer 的内容"
或通过 Vim 的 job-control 将输出直接插入:
:r !opencode -q "生成当前文件的 docstring"
Client/Server 模式是 OpenCode 的远程开发能力:你可以在一台机器上运行 OpenCode Server(拥有 GPU/本地模型),在另一台机器上通过 Client 连接。
┌──────────┐ 网络 ┌──────────┐ │ Client │ ←----------→ │ Server │ │ (你的笔记本)│ │ (GPU 服务器)│ │ │ │ │ │ TUI 界面 │ │ AI 引擎 │ │ 文件操作 │ │ 模型推理 │ │ 轻量级 │ │ 密集型 │ └──────────┘ └──────────┘
# 在高性能机器上 opencode server --port 8080 --host 0.0.0.0 # 带认证 opencode server --port 8080 --token my-secret-token
# 从笔记本连接 opencode client --server http://gpu-server:8080 --token my-secret-token # 或通过环境变量 export OPENCODE_SERVER_URL=http://gpu-server:8080 export OPENCODE_SERVER_TOKEN=my-secret-token opencode "分析大项目的性能瓶颈"
| 场景 | 优势 |
|------|------|
| 本地模型 + 弱客户端 | MacBook Air 用远程 RTX 4090 跑本地模型 |
| 团队共享 GPU | 一人买显卡,全队共用 |
| 远程开发 | 在家用笔记本连公司工作站 |
| CI/CD Server | GitHub Actions 连自建 OpenCode Server |
// opencode.json (Server 端)
{
"server": {
"port": 8080,
"host": "0.0.0.0",
"auth_token": "${OPENCODE_SERVER_TOKEN}",
"max_clients": 5,
"timeout": 3600
}
}
// opencode.json (Client 端)
{
"client": {
"server_url": "http://gpu-server:8080",
"auth_token": "${OPENCODE_SERVER_TOKEN}",
"reconnect": true,
"retry_interval": 5
}
}
始终使用 auth_token:不要在公网暴露无认证的 Server
使用 TLS:通过 nginx 反向代理加 HTTPS
限制 host:生产环境指定内网 IP 而非 0.0.0.0
设置 max_clients:限制并发连接数
# nginx 反向代理示例
server {
listen 443 ssl;
server_name opencode.internal;
ssl_certificate /etc/ssl/certs/opencode.crt;
ssl_certificate_key /etc/ssl/private/opencode.key;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
OpenCode 不只是一个终端工具。通过 VS Code 扩展嵌入你的编辑器,通过 Client/Server 模式跨机器使用,它形成了一个完整的 AI 编程基础设施——无论你在哪台机器上开发,AI 都随时待命。