← Back to Plugins
Voice

Circuit Breaker Openclaw

vaibot-io By vaibot-io 👁 4 views ▲ 0 votes

An OpenClaw “firewall” plugin that intercepts AI tool calls, enforces safety decisions, and fail‑closes when protection is unavailable.

GitHub

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

Loading comments...