English | 中文
Inspired by VibeGuard.

An OpenCode plugin that:
bash / write / edit) so local tools run with real valuesNote: OpenCode tool calls are stored in the DB with the real executed args/output. Before each request, this plugin also redacts historical tool inputs/outputs to prevent plaintext from being sent upstream in later turns.
Placeholder format (aligned with VibeGuard):
__VG___VG_<CATEGORY>_<hash12>__ or __VG_<CATEGORY>_<hash12>_<N>__hash12 is the first 12 hex chars of HMAC-SHA256(session-random secret, original), stable within a session and irreversible to the provider./opencode-vibeguard/).{
"$schema": "https://opencode.ai/config.json",
"plugin": ["file://./opencode-vibeguard/src/index.js"]
}
vibeguard.config.json in your project root (copy from vibeguard.config.json.example).Safety note: to avoid unexpected modifications, the plugin becomes a no-op if the config file is missing or
enabled=false.
Reference the package name in opencode.json (OpenCode will auto-install it on first use):
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-vibeguard"]
}
You can also pin a version:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-vibeguard@0.1.0"]
}
Optional (manual) install via npm/pnpm/bun (useful for offline / reproducible setups):
npm i -D opencode-vibeguard
# or: pnpm add -D opencode-vibeguard
# or: bun add -d opencode-vibeguard
If you prefer to load from your local node_modules, use a file:// plugin path:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["file://./node_modules/opencode-vibeguard/src/index.js"]
}
Config lookup order (first match wins):
OPENCODE_VIBEGUARD_CONFIG./vibeguard.config.json.opencode dir: ./.opencode/vibeguard.config.json~/.config/opencode/vibeguard.config.jsonSee vibeguard.config.json.example for an example.
cd opencode-vibeguard
npm test
Enable debug logs (will not print any plaintext secrets; only config path and replace counts):
OPENCODE_VIBEGUARD_DEBUG=1 opencode .
Or set in vibeguard.config.json:
{ "debug": true }
text-delta) the placeholder may briefly appear; it will be restored at text-end.8 commits
JavaScript
100.0%
English | 中文
Inspired by VibeGuard.

An OpenCode plugin that:
bash / write / edit) so local tools run with real valuesNote: OpenCode tool calls are stored in the DB with the real executed args/output. Before each request, this plugin also redacts historical tool inputs/outputs to prevent plaintext from being sent upstream in later turns.
Placeholder format (aligned with VibeGuard):
__VG___VG_<CATEGORY>_<hash12>__ or __VG_<CATEGORY>_<hash12>_<N>__hash12 is the first 12 hex chars of HMAC-SHA256(session-random secret, original), stable within a session and irreversible to the provider./opencode-vibeguard/).{
"$schema": "https://opencode.ai/config.json",
"plugin": ["file://./opencode-vibeguard/src/index.js"]
}
vibeguard.config.json in your project root (copy from vibeguard.config.json.example).Safety note: to avoid unexpected modifications, the plugin becomes a no-op if the config file is missing or
enabled=false.
Reference the package name in opencode.json (OpenCode will auto-install it on first use):
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-vibeguard"]
}
You can also pin a version:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-vibeguard@0.1.0"]
}
Optional (manual) install via npm/pnpm/bun (useful for offline / reproducible setups):
npm i -D opencode-vibeguard
# or: pnpm add -D opencode-vibeguard
# or: bun add -d opencode-vibeguard
If you prefer to load from your local node_modules, use a file:// plugin path:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["file://./node_modules/opencode-vibeguard/src/index.js"]
}
Config lookup order (first match wins):
OPENCODE_VIBEGUARD_CONFIG./vibeguard.config.json.opencode dir: ./.opencode/vibeguard.config.json~/.config/opencode/vibeguard.config.jsonSee vibeguard.config.json.example for an example.
cd opencode-vibeguard
npm test
Enable debug logs (will not print any plaintext secrets; only config path and replace counts):
OPENCODE_VIBEGUARD_DEBUG=1 opencode .
Or set in vibeguard.config.json:
{ "debug": true }
text-delta) the placeholder may briefly appear; it will be restored at text-end.8 commits
JavaScript
100.0%