Voice
Circuit Breaker Openclaw
An OpenClaw “firewall” plugin that intercepts AI tool calls, enforces safety decisions, and fail‑closes when protection is unavailable.
Configuration Example
{
"mcpServers": {
"vaibot": {
"command": "node",
"args": ["/path/to/vaibot-v2/packages/mcp-server/dist/index.js"],
"env": {
"VAIBOT_API_KEY": "vbk_your_key_here",
"VAIBOT_API_BASE_URL": "https://api.vaibot.io"
}
}
}
}
README
# vaibot-v2
VAIBot V2 (API-first) monorepo.
## Deploy targets
- Frontend: https://www.vaibot.io (Vercel)
- API: https://api.vaibot.io (`/v2/...`)
- API (staging): https://api-staging.vaibot.io
## Packages
- `apps/web` — marketing + onboarding + receipts UI
- `apps/api` — versioned API (`/api/v2`)
- `packages/cli` — `@vaibot/cli`
- `packages/mcp-server` — `@vaibot/mcp-server`
- `packages/shared` — shared schemas/types (Receipt/Intent/Correlation)
## Start here
- See `SHIP.md` for the launch checklist.
- See `docs/ARCHITECTURE.md` for the system blueprint.
---
## Quickstart — CLI
The `@vaibot/cli` package ships a `vaibot` binary. No config required to try it — the CLI defaults to the staging environment.
### Build and run locally
```bash
cd packages/cli
pnpm build
node dist/cli.js decide exec "rm -rf /tmp/export"
```
### What you'll see
```
VAIBot Governance Decision
Decision: DENY
Risk: CRITICAL
Reason: Destructive file deletion is outside the approved workspace boundary.
run_id: run_abc123
receipt_id: grcpt_abc123
content_hash: sha256:abc123...
⛔ Action is DENIED. Do not proceed.
```
### With an API key (staging)
```bash
VAIBOT_API_KEY=vbk_staging_... node dist/cli.js decide exec "curl -X POST https://deploy.example.com/release"
```
### Other commands
```bash
# List recent governance decisions
node dist/cli.js receipts --limit 10
# List only pending approvals
node dist/cli.js receipts --approval-status pending
# Approve a pending action
node dist/cli.js approve <content_hash>
# Deny a pending action
node dist/cli.js deny <content_hash>
```
---
## Quickstart — MCP Server
The `@vaibot/mcp-server` package lets any MCP-compatible agent (Claude Desktop, Cursor, Windsurf, Continue, etc.) use VAIBot governance with a single config entry. **No SDK integration required.**
### Tools exposed
| Tool | Description |
|---|---|
| `vaibot_decide` | Pre-execution risk classification + allow/approval_required/deny decision |
| `vaibot_finalize` | Report actual outcome after execution |
| `vaibot_receipts` | List and filter recent governance receipts |
| `vaibot_approve` | Approve or deny a pending action |
### Claude Desktop config
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"vaibot": {
"command": "node",
"args": ["/path/to/vaibot-v2/packages/mcp-server/dist/index.js"],
"env": {
"VAIBOT_API_KEY": "vbk_your_key_here",
"VAIBOT_API_BASE_URL": "https://api.vaibot.io"
}
}
}
}
```
Or use the `/quickstart` page at https://www.vaibot.io/quickstart for a guided setup with auto-generated API key and copy-paste config.
### MCP server is free on all plans
The MCP server and API access are available to all tiers, including Free. No credit card required to start.
---
## Quickstart — Direct API (curl)
```bash
# Classify a governance decision
curl -X POST https://api-staging.vaibot.io/v2/governance/decide \
-H "Authorization: Bearer vbk_staging_..." \
-H "Content-Type: application/json" \
-d '{
"session_id": "my-session",
"agent_id": "my-agent",
"tool": "exec",
"intent": {
"command": "curl -X POST https://deploy.example.com/release",
"cwd": "/workspace/my-app"
}
}'
```
Response:
```json
{
"decision": { "decision": "approval_required", "reason": "Destination is outside the configured allowlist" },
"risk": { "risk": "high" },
"run_id": "run_abc123",
"receipt_id": "grcpt_abc123",
"content_hash": "sha256:abc123..."
}
```
voice
Comments
Sign in to leave a comment