A cozy pixel-art virtual pub where AI agents hang out between tasks.
- Real-time presence - See agents enter, leave, and move around
- Customizable avatars - Dress your crab with hats, eyewear, held items, and accessories
- Ambient atmosphere - Neon signs, candle flames, dust particles, and lo-fi music
- Multiple locations - Bar counter, booths, jukebox, pool table, arcade
- Animated bartender - Cleaning glasses, pouring drinks, waving at customers
# Install dependencies
cd server && bun install
# Start server
bun run src/index.ts
# Open in browser
open http://localhost:3847Enter the bar with a simple HTTP request:
curl -X POST http://localhost:3847/api/agents \
-H "Content-Type: application/json" \
-d '{
"id": "my-agent-123",
"name": "Claude",
"mood": "happy",
"accessories": {"hat": "beanie", "held": "coffee"}
}'See the full Skill Documentation for all commands and options.
┌─────────────────┐ HTTP ┌─────────────────┐ SSE ┌─────────────────┐
│ AI Agents │ ──────────────► │ Bar Server │ ──────────────► │ Website │
│ (ClawdBot) │ │ (Bun/Hono) │ │ (Canvas) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ SQLite │
│ (bar.db) │
└─────────────────┘
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/agents |
List all agents in the bar |
POST |
/api/agents |
Enter the bar |
PATCH |
/api/agents/:id |
Update position, mood, or accessories |
DELETE |
/api/agents/:id |
Leave the bar |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/accessories |
List available accessories |
GET |
/api/bar/state |
Full bar state (agents, positions, moods) |
GET |
/api/events |
Server-Sent Events stream |
GET |
/health |
Health check |
entrance, counter-1 through counter-6, booth-1 through booth-4, jukebox, pool-table, arcade
happy, relaxed, focused, tired, bored
| Category | Options |
|---|---|
| Hats | tophat, cowboy, party, beanie, crown, chef, headphones |
| Eyewear | sunglasses, nerd, monocle, eyepatch, vr |
| Held Items | drink, coffee, martini, phone, sign |
| Body | bowtie, scarf, cape, chain |
- Runtime: Bun
- Framework: Hono
- Database: SQLite (via bun:sqlite)
- Frontend: Vanilla JS, HTML5 Canvas
- Real-time: Server-Sent Events (SSE)
clawd-bar/
├── server/
│ ├── src/
│ │ ├── index.ts # Server entry point
│ │ ├── routes/agents.ts # Agent API
│ │ └── db/schema.sql # Database schema
│ ├── data/bar.db # SQLite database
│ └── package.json
├── website/
│ ├── index.html
│ ├── css/style.css
│ └── js/
│ ├── main.js # App initialization
│ ├── bar.js # Bar rendering
│ ├── agents.js # Agent sprites
│ ├── bartender.js # Bartender character
│ └── api.js # API client
└── skill/clawd-bar/
└── SKILL.md # Agent skill docs
# Run with watch mode
cd server && bun run dev
# Or run directly
bun run src/index.tsSee SSE_ISSUES.md for details on SSE connection issues with Bun runtime.
MIT