OpenCode Grid
⚠️ 平台要求:本扩展仅支持 Windows。 它通过 COMSPEC 代理链(tg-shell.cmd + tg-proxy.ps1)在操作系统层面拦截 opencode 的 shell 调用,依赖 .cmd / .ps1 / node-pty,在 macOS / Linux 上无法工作。在非 Windows 平台点击 Setup OpenCode 会向 opencode 全局配置写入一个无效的 shell 路径,可能导致 opencode 命令执行异常;如已误装,请点击 Disable Proxy 即可恢复。
基于 koenma/terminal-grid v0.4.0,增加 COMSPEC shell 代理,实现 opencode bash 工具到网格终端的路由。
架构
opencode bash 工具
→ tg-shell.cmd (COMSPEC shell 代理)
→ tg-proxy.ps1 (PowerShell API 客户端)
→ POST /api/exec (嵌入扩展的 HTTP 服务器, 127.0.0.1:7890)
→ 写入网格单元格终端
- 不使用 MCP 协议 — 纯 HTTP REST
- 不使用 spawn/PTY 拦截 — OS 级别 COMSPEC 代理
- 单元格选择通过侧边栏下拉菜单完成
安装
xcopy /E /I opencode-grid %USERPROFILE%\.vscode\extensions\opencode-grid
重启 VS Code。
使用
1. 打开网格
Ctrl+Shift+P → OpenCode Grid: Open Custom Grid → 选择布局(如 2×3)
2. 设置 Shell 代理(一次性,仅限 Windows)
点击侧边栏 Setup OpenCode 按钮,自动写入 ~/.config/opencode/opencode.json 的 shell 路径。
⚠️ 仅限 Windows。 非 Windows 平台请勿点击,否则会写入无效的 shell 路径。误点后点击 Disable Proxy 即可复原。
2b. 禁用/恢复代理(v0.7.0+ 完全复原)
- 禁用:点击 Actions 卡片中的 Disable Proxy 按钮 — 自动从备份恢复
~/.config/opencode/opencode.json 的原始 shell 值(若启用代理前已有自定义 shell 则精确还原,原无 shell 则删除该键恢复到 opencode 默认),重启生效
- 恢复:再点击 Setup OpenCode 按钮写回代理 → 命令回到网格单元格(重启生效);且在覆盖前将当前配置备份到
opencode.json.pre-tg 以备下次禁用时完全复原
- 备份机制:
setupOpencode 写入代理前,将原 shell 值备份到 ~/.config/opencode/opencode.json.pre-tg(含 hasShell、原值、时间戳);disableShellProxy 从此备份还原原值,不再单纯 delete shell
- 按钮文案随状态变化:启用时显示 "Disable Proxy",禁用时显示 "Proxy Disabled"(半透明)
3. 路由命令到单元格
从侧边栏下拉单元格选择器选择目标单元格 → 在 opencode 中运行命令 → 命令写入所选单元格。
4. 添加自定义 API(可选)
侧边栏 Custom API 卡片中点击 "+ Add Provider",填写:
- Provider Name(显示名,如
My Custom GPT)
- Base URL(如
https://api.openai.com/v1 或 http://127.0.0.1:11434/v1)
- API Key(明文,或用
{env:VAR_NAME} / {file:path} 引用环境变量/文件)
- Models(至少一个 Model ID + 显示名)
保存后写入 ~/.config/opencode/opencode.json(先备份 .bak)。在卡片底部 Active model 下拉选择默认模型。重启 opencode 进程使配置生效。
文件说明
| 文件 |
作用 |
dist/extension.js |
扩展主代码:WebviewPanel + HTTP API 服务器 + 侧边栏 |
tg-shell.cmd |
COMSPEC 代理包装器:拦截 shell 调用 → 调用 PowerShell → 回退到 cmd.exe |
tg-proxy.ps1 |
PowerShell API 代理:读取参数 → 调用 POST /api/exec |
package.json |
扩展元数据 + 命令 + 配置项 |
~/.config/opencode/opencode.json.pre-tg |
(运行时生成)Setup 前备份的原 shell 值,Disable Proxy 据此完全复原 |
API 端点(嵌入 HTTP 服务器,默认 7890 端口)
| 端点 |
说明 |
GET /api/health |
健康检查 |
GET /api/info |
网格信息 |
GET /api/diag |
诊断(含 selectedCell) |
POST /api/exec |
在单元格执行命令(返回输出) |
POST /api/send |
向单元格发送文本 |
POST /api/read |
读取单元格输出 |
POST /api/broadcast |
广播到所有单元格 |
许可
MIT License。基于 koenma/terminal-grid v0.4.0 修改。