opencode-context-canaryWarn when an OpenCode model omits its context-health marker.
0
155
8 in 7 days
32.6
Multi-signal model
23 days ago
2026-07-28
Install and configure
opencode.jsonWrites to this project's opencode.json — applies to this repository only.
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-context-canary@0.1.0"]
}Writes to ~/.config/opencode/opencode.json — applies to every project.
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-context-canary@0.1.0"]
}If you want to modify the plugin locally, install it into the project and reference the local path.
shell
pnpm add -D opencode-context-canaryopencode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.
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.