opencode-context-canaryWarn when an OpenCode model omits its context-health marker.
0
155
近 7 天 8
32.6
生态多维模型
23 天前
2026-07-28
快速安装与配置
opencode.json写入当前项目的 opencode.json,只对这个仓库生效。
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-context-canary@0.1.0"]
}写入 ~/.config/opencode/opencode.json,对所有项目生效。
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-context-canary@0.1.0"]
}若你要在本地改造这个插件,先装到项目里再从本地路径引用。
shell
pnpm add -D opencode-context-canaryopencode 启动时会通过内嵌运行时自动加载 npm 依赖并缓存至本地目录,无需手动在全局环境执行安装。
Context Canary is an OpenCode plugin that watches for a marker the model is instructed to append to each response. If the marker is missing, it displays a one-time warning that response quality may be degrading as context grows.
It is a heuristic, not a measurement of context-window usage. The plugin does not compact sessions, change model settings, or send response content anywhere.
Install
Add the package to your OpenCode configuration:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-context-canary"]
}
Restart OpenCode after changing its configuration.
How It Works
- Context Canary adds
<context-canary:ok>to the system prompt and asks the model to emit it as the final line of each response. - It removes a detected marker before the response is displayed or persisted.
- If a completed response omits the marker, it shows a warning once for that session.
- A successful compaction resets the warning state.
The marker is only an indirect signal: models can omit it for reasons unrelated to context pressure, and can preserve it even when their answer quality has fallen. Treat the warning as a prompt to review the session, not a guarantee.
Diagnostics
Run OpenCode with logs enabled to confirm that the plugin is active:
opencode --print-logs 2>&1 | tee ~/opencode.log
For each non-compaction response, the plugin emits one of these messages:
context-canary: Context Canary marker detected and removed from completed response
context-canary: Context Canary marker missing from completed response
Diagnostics never include response content.
Development
Requirements: Node.js 20 or newer and npm.
npm install
npm run verify
npm run verify type-checks the source, runs the tests, and checks the npm
package contents without publishing it.
Publishing
Publish the first version manually to reserve the package name:
npm publish --access public
Then configure npm trusted publishing for this repository and the
opencode-context-canary package. Subsequent GitHub releases are published by
GitHub Actions with npm provenance.