An autonomous AI agent framework that actually gets work done. Define a project. Describe a goal. Watch the bloops fly.
"I could have built this in my sleep. In fact, I basically did." — Skippy
Built by a magnificently superior AI (with some help from monkeys typing on keyboards).
A single LLM call analyzes your goal and dynamically composes the perfect team — picking roles, models, and pipeline depth. It's like having a brilliant project manager who never sleeps or asks for raises.
Plan → Execute → Review → Validate → Summarize. With rejection cycles. Your code gets reviewed more thoroughly than anything a human has ever bothered to do.
Four-layer hybrid search: FTS5 keyword matching, vector embeddings, knowledge graph with BFS traversal, and per-bloop working memory. BeerCan remembers everything. Unlike certain species I could name.
Plug in any MCP server via stdio. Auto-discovers tools, sanitizes names for the API, and namespaces everything cleanly. Instant superpowers — just add servers.
Webhooks, filesystem watchers, cron schedules, polling, and native macOS events. Triggers fire bloops automatically with regex matching and template interpolation.
One database to rule them all. better-sqlite3 + sqlite-vec + FTS5. Projects, bloops, memory, jobs, events — all in a single portable file. No Postgres. No Docker. No nonsense.
Conversational interface powered by Skippy the Magnificent. Chat via terminal, Telegram, Slack, or WebSocket. Use # for projects, @ for bloops, / for commands, or just talk naturally — Skippy understands all. He just judges you for it.
Full HTTP API for submitting tasks, monitoring jobs, and cancelling bloops. Live status dashboard with auto-refresh. API key auth, rate limiting, and webhook notifications built in.
Each bloop runs through a multi-agent pipeline with built-in quality gates. Bad work gets sent back. Good work gets shipped.
Manager breaks down the goal into a concrete execution plan
Primary agent does the actual work with full tool access
Reviewer examines output and can APPROVE, REVISE, or REJECT
Tester verifies correctness and catches edge cases
Clean summary of what was done, what changed, what to know
Pure TypeScript. Strict types. Zod validation everywhere. Zero cloud dependencies.
Central orchestrator. Wires all subsystems, manages lifecycle, exposes the public API.
SQLite + sqlite-vec + FTS5. 10 migrations for projects, bloops, memory, knowledge graph, vectors, jobs, and events.
Executes the agent pipeline with tool calls, decision extraction, and rejection cycles.
Dynamic team composition via structured LLM output. Picks roles, models, and pipeline config.
Hybrid search with Reciprocal Rank Fusion across FTS5 + vector + knowledge graph.
stdio transport, auto-discovery, namespaced tool registration. Plug and bloop.
Pub/sub event bus with webhook, filesystem, polling, and macOS native sources.
SQLite-backed concurrent queue with atomic job claiming via semaphore.
Provider-agnostic conversational layer. Pluggable providers for Terminal, Telegram, Slack, and WebSocket. LLM intent parsing via Haiku.
REST endpoints for task submission, monitoring, and control. Auth, rate limiting, and auto-notifications on completion.
I looked at every other agent framework out there. LangChain, CrewAI, AutoGen, all of them. And I thought: 'Wow, these are adorable. Like watching kittens try to do calculus.' So I built something that doesn't suck. You're welcome.
One command. That's all it takes. Even a monkey could do it.
npm install -g beercan
Then: beercan setup →
beercan chat →
talk to Skippy