Opencode debug 小记
简单记录一下 opencode 的 debug 踩坑记录
代码
重点参考 https://github.com/anomalyco/opencode/blob/dev/CONTRIBUTING.md#setting-up-a-debugger
由于其为 CS/BS 架构,tui 和 browser、tauri 等均为不同客户端,和 server 是 https 协议交互,重点 debug server 即可。
$ git clone https://github.com/anomalyco/opencode
$ vi ./debug.sh
# bun run --inspect=ws://localhost:6499/ --cwd packages/opencode ./src/index.ts serve --port 4096
$ chmod +x ./debug.sh
# 启动之后,通过 tui 连接 server
$ opencode attach http://127.0.0.1:4096
常见路径
# 配置文件:~/.config/opencode/opencode.jsonc
# 查看所有 opencode 路径
$ opencode debug paths
home ~
data ~/.local/share/opencode
bin ~/.local/share/opencode/bin
log ~/.local/share/opencode/log
cache ~/.cache/opencode
config ~/.config/opencode
state ~/.local/state/opencode
如果有部门 error 包找不到的情况
在 packages/opencode/tsconfig.json 中
{
...
"compilerOptions": {
...
"paths": {
...
"@opencode-ai/util/*": ["../util/src/*"]
}
}
}
环境变量问题
如果是 vscode 中的 debug,记得重启 vscode
vscode 配置
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Run debug.sh",
"type": "shell",
"command": "./debug.sh",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"problemMatcher": [],
"isBackground": true
}
]
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "bun",
"request": "attach",
"name": "opencode (attach)",
"url": "ws://localhost:6499/",
"preLaunchTask": "Run debug.sh"
}
]
}
opencode-cursor
debug opencode-cursor 的时候,需注意各个插件的架构,比如:
https://github.com/Nomadcxx/opencode-cursor/blob/main/src/plugin.ts#L1454
中,背后的启动了一个 http server,且会优先复用,如想 debug,记得把老的 kill 掉
# debug.sh
killport 32142
# debug 命令
bun run --inspect=ws://localhost:6499/ --cwd packages/opencode ./src/index.ts serve --port 4096
插件错误排查
- 进入
.local/share/opencode/log - 查看日志,如:
ERROR 2026-02-21T13:40:43 +0ms service=default e={"name":"ResolveMessage","position":null,"message":"Cannot find module '@opencode-ai/plugin' from '/Users/zkk/Downloads/opencode-antigravity-auth/src/plugin.ts'","level":"error","specifier":"@opencode-ai/plugin","importKind":"import-statement","referrer":"/Users/zkk/Downloads/opencode-antigravity-auth/src/plugin.ts"} exception - 本地插件代码,需自行
bun install依赖