Skip to content

Quickstart

Three ways to start, fastest first. For a single user on your own machine, the Docker path takes about a minute.

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.

Terminal window
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

On 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/mcp with header Authorization: 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.

Don’t want to run anything? Point an agent at the live instance and let it onboard you:

Your agent reads /llms.txt, connects over OAuth (one browser sign-in), then calls create_tenant to bootstrap your workspace. See Connect an agent.

To hack on Rooster itself. You need Node ≥ 20 and pnpm 10.

Terminal window
git clone https://github.com/eshton/rooster
cd rooster
pnpm install
pnpm check # lint + typecheck/build + test

Configure a local SQLite DB and a secret, then run:

Terminal window
echo 'DATABASE_URL=file:./local.db' >> .env
echo "ROOSTER_AUTH_SECRET=$(openssl rand -base64 32)" >> .env
pnpm build
pnpm --filter @rooster/server start

The server auto-migrates the domain tables on boot and prints its URLs. Check service discovery and the agent guide:

Terminal window
curl http://localhost:3000/.well-known/rooster
curl http://localhost:3000/llms.txt

Then connect an agent (OAuth), or provision a tenant directly over HTTP:

Terminal window
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.