vibe-webhook-opencode
v1.0.0
Published
OpenCode plugin for VibeControls notifications - companion to @burdenoff/vibe-plugin-notify
Downloads
82
Maintainers
Readme
opencode-vibe-webhook
OpenCode native plugin for VibeControls notifications. Companion plugin to @burdenoff/vibe-plugin-notify.
Runs inside OpenCode for 100% reliable event detection and sends events to VibeControls Agent for webhook delivery.
Architecture
┌─────────────────────────────┐ ┌─────────────────────────────────┐
│ OpenCode │ │ VibeControls Agent │
│ │ │ │
│ opencode-vibe-webhook │────────>│ vibe-plugin-notify │
│ (this plugin) │ POST │ │
│ │ │ Configured Webhooks: │
│ - Native event detection │ │ ├── Slack │
│ - 100% reliable │ │ ├── Discord │
│ - Zero latency │ │ └── Custom │
└─────────────────────────────┘ └─────────────────────────────────┘Quick Start
1. Install vibe-plugin-notify in VibeControls
vibe plugin install @burdenoff/vibe-plugin-notify2. Add webhooks via VibeControls CLI
vibe notify add https://hooks.slack.com/services/xxx3. Add this plugin to OpenCode
In ~/.config/opencode/opencode.jsonc:
{
"plugin": ["opencode-vibe-webhook"]
}Or with full path:
{
"plugin": ["/path/to/opencode-vibe-webhook/dist/index.js"]
}4. Done!
Events from OpenCode automatically flow to VibeControls, which delivers to your webhooks.
Commands
Use /vibehook in OpenCode to manage settings:
| Command | Description |
| ------------------------ | ---------------------------------- |
| /vibehook status | Show current configuration |
| /vibehook test | Test VibeControls connection |
| /vibehook add <url> | Add direct webhook (bypass Vibe) |
| /vibehook list | List direct webhooks |
| /vibehook remove <id> | Remove a direct webhook |
| /vibehook events | Show event presets |
| /vibehook vibe-enable | Enable VibeControls notifications |
| /vibehook vibe-disable | Disable VibeControls notifications |
Examples
/vibehook status
/vibehook test
/vibehook add https://hooks.slack.com/services/xxx "Backup Slack"Configuration
Config is stored at ~/.config/opencode/vibe-webhook.json:
{
"webhooks": [],
"vibeAgentUrl": "http://localhost:3005",
"vibeNotifyEnabled": true,
"vibeNotifyEvents": ["default"],
"notifyChildSessions": false,
"debug": false,
"logFile": null
}Pre-configured
- VibeControls notifications enabled by default - No setup needed
- Events flow to
http://localhost:3005/api/notify/hook - Manage webhooks centrally via
vibe notifyCLI
Direct Webhooks (Optional)
Add direct webhooks for backup or custom routing:
/vibehook add https://hooks.slack.com/services/xxxThese bypass VibeControls and deliver directly.
Supported Events
| Event | Description | Notification |
| -------------------- | ----------------------- | ---------------------- |
| session.idle | Task completed | ✅ Task Completed |
| session.error | Task failed | ❌ Task Failed |
| question.asked | AI asks user a question | ❓ Question Asked |
| permission.updated | Permission requested | 🔔 Permission Required |
| session.created | New session started | 🚀 Session Started |
| session.status | Working/retrying | ⏳ Working... |
| file.edited | File modified | ✏️ File Edited |
| command.executed | Command run | 💻 Command Executed |
Event Presets
| Preset | Events |
| ---------- | ----------------------------------------------------------------------- |
| minimal | session.idle |
| default | session.idle, session.error, question.asked, permission.updated |
| standard | Above + session.created |
| verbose | Above + session.status, file.edited, command.executed |
| all | All events |
Why This Architecture?
| Approach | Where Webhooks Live | Pros | | --------------- | ------------------- | -------------------------------- | | This plugin | VibeControls Agent | Central management, CLI, retries | | Direct webhooks | OpenCode config | Simple, no agent needed | | Both | Both | Redundancy, flexibility |
Recommended: Use VibeControls Agent for webhook management. Add direct webhooks only for backup or special cases.
Troubleshooting
Test VibeControls connection
/vibehook testEnable debug logging
Edit ~/.config/opencode/vibe-webhook.json:
{
"debug": true,
"logFile": "/tmp/vibe-webhook.log"
}Watch logs: tail -f /tmp/vibe-webhook.log
Common issues
| Issue | Solution |
| -------------------------- | ------------------------------------------- |
| VibeControls not reachable | Start VibeControls Agent with notify plugin |
| No notifications | Run /vibehook status to check config |
| Wrong events | Edit vibeNotifyEvents in config file |
Related Packages
- @burdenoff/vibe-plugin-notify - VibeControls webhook management plugin
- VibeControls Agent - AI coding assistant orchestration
License
MIT
