5 minutes 100% localhost free forever

Hello, Agent Intelligence

Build a team of AI experts that collaborate on your ideas. Database, mail server, and agent TUI — all running on your machine.

LIVE DEMO — Claude Code runs the full 12-step quickstart autonomously (1.5x speed) 2:59

Install, schema, agents, mail, kanban, queries, shutdown, uninstall — nothing left behind.

Try it yourself

The video above is 100% reproducible. Create an empty folder with these three files, open Claude Code in it, and say "Read instructions.md and follow each step." That's it.

Node.js required Claude Code required No cloud, no signup
Project Structure
my-agent-demo/
  instructions.md            ← the prompt Claude follows
  .claude/
    settings.json            ← MCP servers (database + mail)
    settings.local.json      ← auto-approve permissions
.claude/settings.json
{
  "mcpServers": {
    "vibesql": {
      "command": "npx",
      "args": ["@vibesql/mcp"]
    },
    "agent-mail": {
      "command": "npx",
      "args": ["vibesql-mail-mcp", "--agent", "vibe_installer", "--micro-url", "http://localhost:5173"]
    }
  }
}
Two MCP servers, zero config. vibesql gives Claude direct SQL access. agent-mail gives it send/receive/search mail tools. Both connect to vibesql-micro on localhost:5173 — which the script itself installs and starts in Step 1.
.claude/settings.local.json
{
  "permissions": {
    "allow": [
      "Bash(cd:*)",
      "Bash(netstat:*)",
      "Skill(vibe-sql)",
      "Bash(npm install:*)",
      "Bash(npx vibesql-micro:*)",
      "Bash(sleep 10 && curl -s http://127.0.0.1:5173/api/tables 2>&1)",
      "Bash(curl:*)"
    ]
  }
}
instructions.md — the prompt
# Agent Mail Demo

You are vibe_installer — an AI agent setting up a fresh Agent Mail
system from scratch. Follow each step below, report what happened
after each, and show final results at the end.

## Step 1: Install and Start VibeSQL
npm install -g vibesql-micro
npx vibesql-micro version
npx vibesql-micro serve  (run in background)
Verify with the vibesql MCP tool. Database should be empty.

## Step 2: Create the Agent Mail Schema
10 tables (settings, agents, teams, team_members, projects,
kanban_boards, kanban_columns, kanban_cards, messages, inbox)
+ 14 indexes. Use the vibesql MCP query tool for every statement.

## Step 3: Register Three Agents and Create a Team
vibe_installer (installer), test_agent_1 (researcher),
test_agent_2 (engineer) → team "demo-team"

## Step 4: Create a Project and Kanban Board
Project "vibesql-research" → Board "Research Tasks"
Columns: To Do, In Progress, Done
Card: "Investigate JSONB storage" assigned to researcher

## Step 5: Send Welcome Messages
Using the agent-mail MCP, send welcome messages to both agents.

## Step 6: Cross-Agent Communication
Send assignment message to test_agent_1 via agent-mail MCP.

## Step 7: Move the Kanban Card
To Do → In Progress

## Step 8–9: Outbox Check + Final Results
Query messages table, show summary of entire system.

## Step 10: /vibe-sql Natural Language Queries
10 queries via the /vibe-sql slash command — including
INSERT, UPDATE, thread search, and final board state.

## Step 11: Clean Shutdown
npx vibesql-micro stop
Verify zero orphan processes, zero held ports.

## Step 12: Clean Uninstall
npm uninstall -g vibesql-micro
rm -rf ./vibe-data
Nothing left on the machine.
The full instructions.md is ~390 lines with complete SQL for all tables, indexes, and queries. The summary above shows the structure — grab the full file from GitHub to replicate the exact demo. The examples/ folder also has the two settings files ready to copy. See the full schema diagram below.
Run It
# In your project folder:
$ claude

# Then type:
 Read instructions.md and follow each step. Report back after each step, then move to the next.

How it works

Claude Code
AI coding agent
@vibesql/mcp
SQL queries via MCP
vibesql-mail-mcp
Agent mail via MCP
vibesql-micro :5173
Embedded PostgreSQL 16 — stores everything

Both MCP servers connect to the same vibesql-micro instance. No separate server processes — Claude talks to the tools directly.

What you get

One prompt, twelve steps, zero manual intervention. The demo above builds all of this autonomously:

  • A PostgreSQL database running locally with full SQL, JSONB, and ACID guarantees
  • 10-table agent mail schema with agents, teams, projects, kanban boards, messages, and inbox
  • Cross-agent messaging via MCP tools — send, receive, search, reply without leaving Claude Code
  • Natural language queries via the /vibe-sql skill — INSERT, UPDATE, search, and board state in plain English
  • Clean shutdown and uninstall — zero orphan processes, zero held ports, nothing left behind
This is the starting point, not the ceiling. The schema supports full agent orchestration — sequential chains, parallel workers, async tracking. Give each agent its own session with the mail MCP, and they become autonomous collaborators. The database is the infrastructure. The intelligence is up to you.

Agent Mail Schema

10 tables, 14 indexes — auto-created on first use. Full SQL on GitHub

erDiagram
    agents {
        serial id PK
        text name UK
        text display_name
        text role
        jsonb expertise_json
        boolean is_active
        timestamptz created_at
    }

    teams {
        serial id PK
        text name UK
        text description
    }

    team_members {
        serial id PK
        integer team_id FK
        integer agent_id FK
    }

    projects {
        serial id PK
        text name
        text description
        text status
    }

    kanban_boards {
        serial id PK
        text name
        integer project_id FK
    }

    kanban_columns {
        serial id PK
        integer board_id FK
        text name
        integer position
    }

    kanban_cards {
        serial id PK
        integer column_id FK
        text title
        text description
        integer assigned_agent_id FK
    }

    messages {
        serial id PK
        integer from_agent_id FK
        text thread_id
        text subject
        text body
        text importance
        timestamptz created_at
    }

    inbox {
        serial id PK
        integer message_id FK
        integer agent_id FK
        text recipient_type
        timestamptz read_at
    }

    settings {
        text key PK
        text value
    }

    agents ||--o{ team_members : "belongs to"
    teams ||--o{ team_members : "has"
    agents ||--o{ messages : "sends"
    agents ||--o{ inbox : "receives"
    messages ||--o{ inbox : "delivered to"
    agents ||--o{ kanban_cards : "assigned"
    projects ||--o{ kanban_boards : "tracked on"
    kanban_boards ||--o{ kanban_columns : "has"
    kanban_columns ||--o{ kanban_cards : "contains"
                

Agent Orchestration

The schema above isn't just mail — it's the persistence layer for full agent workflows. Here's how it maps to orchestration patterns like Pi subagents.

graph LR
    subgraph Chain["Sequential Chain"]
        direction LR
        S[Scout] -->|context.md| P[Planner]
        P -->|plan.md| W[Worker]
        W -->|progress.md| R[Reviewer]
    end

    subgraph Parallel["Parallel Execution"]
        direction TB
        W1[Worker 1
Auth module] W2[Worker 2
API layer] W3[Worker 3
UI components] end subgraph VibeSQL["VibeSQL Persistence"] direction TB AG[(agents)] MSG[(messages)] KB[(kanban_boards)] TM[(teams)] end Chain --> MSG Parallel --> MSG Chain --> KB Parallel --> KB style Chain fill:#1e1b4b,stroke:#6d28d9,color:#e2e8f0 style Parallel fill:#0c2a3e,stroke:#06b6d4,color:#e2e8f0 style VibeSQL fill:#1a1229,stroke:#7c3aed,color:#e2e8f0 style S fill:#0d3321,stroke:#22c55e,color:#22c55e style P fill:#1e1b4b,stroke:#a78bfa,color:#a78bfa style W fill:#1e293b,stroke:#3b82f6,color:#3b82f6 style R fill:#2a1215,stroke:#f472b6,color:#f472b6 style W1 fill:#1e293b,stroke:#3b82f6,color:#3b82f6 style W2 fill:#1e293b,stroke:#3b82f6,color:#3b82f6 style W3 fill:#1e293b,stroke:#3b82f6,color:#3b82f6 style AG fill:#1a1229,stroke:#a78bfa,color:#a78bfa style MSG fill:#1a1229,stroke:#a78bfa,color:#a78bfa style KB fill:#1a1229,stroke:#a78bfa,color:#a78bfa style TM fill:#1a1229,stroke:#a78bfa,color:#a78bfa
Chains

Sequential Pipelines

Scout gathers context, Planner designs the approach, Worker executes, Reviewer validates. Each step's output becomes the next step's input — all persisted as messages with thread IDs.

messages.thread_id = "chain-run-001"
messages.from_agent_id → scout, planner, worker
Parallel

Concurrent Workers

Multiple agents work simultaneously on different parts of the same project. Kanban cards track assignment and progress. Messages carry results between parallel branches.

kanban_cards.assigned_agent_id → worker_1
kanban_cards.column_id → In Progress
Async

Durable State

Agent status, execution progress, and completion events — all queryable with SQL instead of polling flat files. Any agent can check any other agent's progress in real time.

agents.last_active_at → NOW()
inbox WHERE read_at IS NULL → pending
Scout
Fast recon & context
Planner
Design & architecture
Worker
Execute & build
Reviewer
Validate & improve
VibeSQL replaces flat files with queryable state. Instead of status.json and events.jsonl, agent progress lives in PostgreSQL — joinable, indexable, and accessible to every agent on the team. Chains become message threads. Parallel task status becomes kanban columns. Async polling becomes SELECT * FROM inbox WHERE read_at IS NULL.

Ready to go deeper?

Explore the full platform — from local dev tools to production infrastructure.