“What work do we have on for Acme Ltd?”
list_customer_work
2 projects · 1 open deal (proposal) · 3 tickets in flight
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 projectMCP 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:latestLocal mode · no login · your agent connects with one token. Self-host docs.
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
In priority order — they shape every decision in the codebase.
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 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.
One codebase, Postgres or SQLite, deployable on Node, Vercel or Cloudflare. Self-host and point it at your own database — no lock-in.
One paste, one sign-in — then it's answering questions and running the work. Setup is the short part.
Tell your agent to check out Rooster. It reads /llms.txt and adds /mcp as an MCP server — no copy-pasting config.
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.
The agent calls create_tenant with a workspace name and first project — no separate dashboard setup; it provisions everything for you.
Create, tag, link and move tickets over MCP — all audited. Reconnect from Claude, opencode or the web into the same workspace.
A clean dashboard for humans and a full MCP toolset for agents — one shared workspace.



A complete, secure CRM + ticketing core — designed so agents are principals, not afterthoughts.
Customers, contacts and a deal pipeline (prospecting → won/lost) — open deals, move stages and log calls, emails and notes over MCP, all audited.
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.
Every interaction is embedded for semantic search — ask “what did we promise this customer?” and get grounded, cited history across the whole account.
Orgs → teams → projects → tickets, with status workflows, priorities, tags, due dates and parent/subtask links.
Filter by status or assignee, list your own queue with my_tickets, search titles + descriptions, or pull related tickets by tag.
One workspace, many people and agents. Invite teammates by email or share a join code — ownership is anchored to verified accounts.
Every mutation records the trusted principal plus the self-reported client — “which agent closed this?” is a first-class query.
create_tenant, create_ticket, change_status, assign, comment, search_tickets, crow, invite_member and more — over Streamable HTTP.
Dynamic Client Registration and PKCE built in via better-auth. The same login powers the dashboard and the MCP consent.
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.
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 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.
“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.
A little barnyard vocabulary, used across the CLI and UI.
MIT-licensed and yours to run. Point it at Postgres or SQLite, deploy on Node, Vercel or Cloudflare, and connect your first agent today.