@burdenoff/vibe-plugin-notify
v1.1.0
Published
Webhook notifications for AI coding tools - VibeControls Agent plugin
Downloads
281
Maintainers
Readme
@burdenoff/vibe-plugin-notify
Generic webhook notification plugin for AI coding tools - a VibeControls Agent plugin.
Receives events from AI coding tools (OpenCode, Claude Code, Gemini CLI, etc.) and delivers to configured webhooks (Slack, Discord, custom).
Architecture
┌─────────────────────┐ ┌─────────────────────────────────────────────┐
│ AI Coding Tool │ │ VibeControls Agent │
│ │ │ │
│ Tool-specific │────>│ vibe-plugin-notify │
│ plugin (e.g. │POST │ │ │
│ opencode-vibe- │ │ ├──> Slack webhook │
│ webhook) │ │ ├──> Discord webhook │
└─────────────────────┘ │ └──> Custom webhook │
└─────────────────────────────────────────────┘Why this architecture?
| Component | Purpose |
| -------------------- | -------------------------------------------------------------- |
| Tool-specific plugin | Runs inside AI tool - 100% reliable native event detection |
| vibe-plugin-notify | Runs in VibeControls - webhook management, CLI, delivery |
Supported AI Tools
| Tool | Plugin | Status |
| ----------- | ----------------------- | ------- |
| OpenCode | opencode-vibe-webhook | Ready |
| Claude Code | Coming soon | Planned |
| Gemini CLI | Coming soon | Planned |
Quick Start
1. Install this plugin in VibeControls
vibe plugin install @burdenoff/vibe-plugin-notify2. Install tool-specific plugin
For OpenCode:
# Add to opencode.json
{
"plugins": ["opencode-vibe-webhook"]
}3. Add a webhook
vibe notify add https://hooks.slack.com/services/xxx/yyy/zzzThat's it! When your AI tool completes a task, you'll get a notification.
CLI Commands
| Command | Description |
| -------------------------- | ------------------------ |
| vibe notify add <url> | Add a webhook URL |
| vibe notify list | List all webhooks |
| vibe notify remove <id> | Remove a webhook |
| vibe notify test <id> | Send a test notification |
| vibe notify enable <id> | Enable a webhook |
| vibe notify disable <id> | Disable a webhook |
Usage Examples
Add a Slack Webhook
vibe notify add https://hooks.slack.com/services/T00/B00/XXX --name "Slack Alerts"Add a Discord Webhook
vibe notify add https://discord.com/api/webhooks/123/abc --name "Discord"Add with specific events
vibe notify add https://example.com/webhook --events "session.idle,session.error"REST API
| Method | Endpoint | Description |
| -------- | ---------------------------------- | ------------------------------- |
| GET | /api/notify/health | Health check |
| POST | /api/notify/hook | Receive events from tool plugin |
| GET | /api/notify/webhooks | List webhooks |
| POST | /api/notify/webhooks | Create webhook |
| DELETE | /api/notify/webhooks/:id | Delete webhook |
| POST | /api/notify/webhooks/:id/test | Test webhook |
| POST | /api/notify/webhooks/:id/enable | Enable webhook |
| POST | /api/notify/webhooks/:id/disable | Disable webhook |
| GET | /api/notify/deliveries | Delivery history |
Webhook Payload
When an AI tool completes a task, webhooks receive:
{
"id": "dlv_abc123",
"timestamp": "2026-02-27T10:30:00.000Z",
"event": {
"type": "session.idle",
"sessionId": "sess_xyz",
"sessionTitle": "Add user authentication",
"projectName": "my-app",
"properties": {}
},
"source": {
"agent": "vibecontrols-agent",
"plugin": "notify",
"version": "1.0.0",
"tool": "opencode"
}
}Slack Format
:white_check_mark: *Task Completed* (opencode)
> Add user authenticationDiscord Format
**Task Completed** (opencode)
> Add user authenticationSupported Events
| Event | Description |
| ------------------ | ------------------------ |
| session.idle | Task completed (default) |
| session.error | Task failed |
| permission.asked | AI needs user permission |
| * | All events |
Creating a Tool Plugin
To add support for a new AI coding tool, create a plugin that posts events to /api/notify/hook:
// Example event payload
const event = {
type: "session.idle",
source: "your-tool-name",
properties: {
sessionID: "sess_123",
sessionTitle: "Task description",
},
timestamp: new Date().toISOString(),
};
await fetch("http://localhost:4321/api/notify/hook", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(event),
});See opencode-vibe-webhook for a reference implementation.
Requirements
- VibeControls Agent 2.0+
- Tool-specific plugin (e.g.,
opencode-vibe-webhookfor OpenCode) - Bun 1.3+
License
Proprietary - Burdenoff Consultancy Services Pvt. Ltd.
