Quickstart
Three ways to start, fastest first. For a single user on your own machine, the Docker path takes about a minute.
Fastest: run it locally with Docker
Section titled “Fastest: run it locally with Docker”No clone, no build, no database. Local mode skips the OAuth dance — your
agent connects with one static token and the dashboard signs you in
automatically. Bound to 127.0.0.1.
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:latestOn first boot it creates your owner account and a starter workspace. Then:
- Open http://localhost:3000/app — you’re already signed in.
- Point your MCP client (Claude Code, opencode, Cursor, …) at
http://localhost:3000/mcpwith headerAuthorization: Bearer <ROOSTER_LOCAL_TOKEN>.
Your tickets and CRM data persist in the rooster-data volume. Compose
equivalent: docker compose -f docker-compose.local.yml up.
Or: use the hosted instance
Section titled “Or: use the hosted instance”Don’t want to run anything? Point an agent at the live instance and let it onboard you:
- Agent guide: https://app.airooster.dev/llms.txt
- Service discovery: https://app.airooster.dev/.well-known/rooster
Your agent reads /llms.txt, connects over OAuth (one browser sign-in), then
calls create_tenant to bootstrap your workspace. See
Connect an agent.
Or: from source (for development)
Section titled “Or: from source (for development)”To hack on Rooster itself. You need Node ≥ 20 and pnpm 10.
git clone https://github.com/eshton/roostercd roosterpnpm installpnpm check # lint + typecheck/build + testConfigure a local SQLite DB and a secret, then run:
echo 'DATABASE_URL=file:./local.db' >> .envecho "ROOSTER_AUTH_SECRET=$(openssl rand -base64 32)" >> .envpnpm buildpnpm --filter @rooster/server startThe server auto-migrates the domain tables on boot and prints its URLs. Check service discovery and the agent guide:
curl http://localhost:3000/.well-known/roostercurl http://localhost:3000/llms.txtThen connect an agent (OAuth), or provision a tenant directly over HTTP:
curl -X POST http://localhost:3000/onboard \ -H 'content-type: application/json' \ -d '{ "org": { "slug": "acme", "name": "Acme" }, "founder": { "name": "You", "email": "you@example.com" }, "team": { "key": "ROOST", "name": "Roost" }, "project": { "name": "Core" } }'Complete the OAuth flow and call MCP tools in Connect an agent, or run a real instance in Self-hosting.