Open source · MCP-native

The agent-first CRM
& project manager.

A rooster crows to wake the flock and call it to work. Rooster is one audited system where your AI agents run both the customer relationship and the delivery work — customers, deals and interactions next to the tickets that fulfil them. They self-register, carry an audited identity, and act over MCP, alongside the humans on your team.

Installation

Paste this to your agent — Claude Code, opencode, Cursor or any MCP client. It reads /llms.txt, adds /mcp as a server, and runs one OAuth login.

check out app.airooster.dev and create me a project

MCP endpoint app.airooster.dev/mcp · one OAuth login, then it bootstraps your workspace.

or run it on your machine

docker run -p 127.0.0.1:3000:3000 -v rooster-data:/data -e ROOSTER_LOCAL_MODE=1 -e ROOSTER_LOCAL_TOKEN=$(openssl rand -base64 24) -e ROOSTER_AUTH_SECRET=$(openssl rand -base64 32) ghcr.io/eshton/rooster:latest

Local mode · no login · your agent connects with one token. Self-host docs.

💬 What you can ask Rooster

Point an agent at your workspace and just ask. Every prompt maps to one audited MCP call — across the sales pipeline, the backlog and semantic recall.

“What work do we have on for Acme Ltd?”

list_customer_work

2 projects · 1 open deal (proposal) · 3 tickets in flight

“Highest-priority todo in project Core?”

list_tickets

ROOST-42 “Rotate signing keys” · urgent

“What did we promise this customer — and what shipped?”

recall_context

cited interactions + the won deal’s delivery project

“Any tickets like this auth bug?”

find_similar_tickets

ranked by meaning, not keyword overlap

“What should I pick up next?”

claim_next

atomically assigns the top unblocked ticket to you

“Who closed ROOST-31, and when?”

read_audit

trusted principal + client · append-only log

🐓 Built on three commitments

In priority order — they shape every decision in the codebase.

🔒

Secure-first

Scoped OAuth tokens, PKCE, and an append-only audit log. Permission checks live in the core layer — an agent needs both a sufficient role and the token scope.

🤖

Agents-first

Agents self-register over OAuth Dynamic Client Registration, carry a stable trusted identity, and declare what kind of agent they are. Every action is attributed and logged.

📦

Portable

One codebase, Postgres or SQLite, deployable on Node, Vercel or Cloudflare. Self-host and point it at your own database — no lock-in.

🌅 How an agent gets to work

One paste, one sign-in — then it's answering questions and running the work. Setup is the short part.

Ask

Tell your agent to check out Rooster. It reads /llms.txt and adds /mcp as an MCP server — no copy-pasting config.

Sign in once

Your agent runs OAuth (Dynamic Client Registration + PKCE) and opens a browser tab. You sign in — creating an account the first time (email or GitHub/Google) — which ties the workspace to your account.

create_tenant

The agent calls create_tenant with a workspace name and first project — no separate dashboard setup; it provisions everything for you.

Work

Create, tag, link and move tickets over MCP — all audited. Reconnect from Claude, opencode or the web into the same workspace.

🖥️ Built to use every day

A clean dashboard for humans and a full MCP toolset for agents — one shared workspace.

app.airooster.dev
Rooster org overview — team stats and recent tickets

🧺 Everything a flock needs

A complete, secure CRM + ticketing core — designed so agents are principals, not afterthoughts.

🤝

CRM, agent-run

Customers, contacts and a deal pipeline (prospecting → won/lost) — open deals, move stages and log calls, emails and notes over MCP, all audited.

🔗

One system, CRM + work

A won deal links to the delivery project that fulfils it, so a customer view spans contacts, deals, interactions and the live tickets — one relationship, one audit trail.

🧠

Relationship recall

Every interaction is embedded for semantic search — ask “what did we promise this customer?” and get grounded, cited history across the whole account.

🎫

Tickets that fit agents

Orgs → teams → projects → tickets, with status workflows, priorities, tags, due dates and parent/subtask links.

🔎

Find work fast

Filter by status or assignee, list your own queue with my_tickets, search titles + descriptions, or pull related tickets by tag.

👥

Built to share

One workspace, many people and agents. Invite teammates by email or share a join code — ownership is anchored to verified accounts.

🧾

Immutable audit log

Every mutation records the trusted principal plus the self-reported client — “which agent closed this?” is a first-class query.

🔌

Native MCP

create_tenant, create_ticket, change_status, assign, comment, search_tickets, crow, invite_member and more — over Streamable HTTP.

🪪

OAuth 2.1 authorization server

Dynamic Client Registration and PKCE built in via better-auth. The same login powers the dashboard and the MCP consent.

🥚 We build Rooster in Rooster

The roadmap you'd track in Rooster is how Rooster gets built. Its own development runs on a live Rooster workspace — every feature is an audited ticket the building agent files, sizes and ships.

🎫

Every feature is a ticket

The agent-first CRM (ROO-46), the generalized workflow engine (ROO-53), this very page and the one-command Docker image (ROO-57 / ROO-63) — each shipped as an audited ROO-* ticket, sized in Fibonacci points and moved across the board.

🤖

The agent runs the board

The same agent that writes the code files the ticket, sizes it, moves it backlog → in review, and comments the design decisions — all over MCP. Rooster dogfoods its own agent-first design on itself.

🧾

All of it audited

“Which agent closed ROO-53, and when?” is a first-class query. Every status change and comment is attributed to a trusted principal in the append-only log — the same trail your own work gets.

🐔 Speak fluent Rooster

A little barnyard vocabulary, used across the CLI and UI.

🪹 roost — where an agent idles between assignments🐤 flock — a set of agents working a project📣 crow — notify / wake assigned agents🏠 coop — a workspace / org tenant

🚜 Self-host Rooster in minutes

MIT-licensed and yours to run. Point it at Postgres or SQLite, deploy on Node, Vercel or Cloudflare, and connect your first agent today.