60-Second Smoke Test
If you just want to see the dashboard come up on your machine, this is enough:Prerequisites for the Full Setup
- Docker (or Apple Containers on macOS 26+) — one Linux container per crew, shared by its agents
- An LLM API key (Anthropic, OpenAI, or Google) — agents call out to whichever provider you wire up
- Go 1.26+ and Node.js 22+ + pnpm — only if you build from source instead of using the binary
Installation
- Homebrew
- curl | bash
- Docker Compose
- From source
Initial Setup
Start the server
http://localhost:8080 with an embedded UI and SQLite database.Create the first admin user
Two first-class ways — pick the one that matches your deploy:
- Browser
- CLI / headless / CI
- Open
http://localhost:8080—/loginauto-redirects to/bootstrapon a fresh instance. - Fill in name + email + password (min 8 chars), click Continue to workspace setup.
/bootstrap is closed for good.Hardening for public instances (opt-in). If you expose a fresh instance to the internet before bootstrapping it, set
CREWSHIP_BOOTSTRAP_WINDOW=5m (any Go duration) to arm a finite deploy-race window: /bootstrap accepts requests only for that interval after startup, then returns 410 Bootstrap window expired — restart the server to open a new one so a scanner can’t grab the admin account. Both the browser form and crewship init POST the same /api/v1/bootstrap endpoint and share the window; for unattended provisioning that lands minutes-to-hours after boot, restart the server immediately before the call so the window is fresh. Left unset (the default), bootstrap simply stays open until the first admin exists.Select a workspace (multi-workspace setups)
crewship init creates your first workspace and marks it as the default — you can skip this step on a single-workspace install. If you belong to more than one workspace, pick which one the CLI targets for every subsequent command:~/.crewship/cli-config.yaml and used by every subsequent CLI call. Override per-command with --workspace <slug> if needed.Check system health
(Optional) Opt out of crash reporting
Crewship v0.1 beta enables anonymous crash reporting by default. To opt out before any data leaves your machine:Full details — what is and isn’t sent, routing to your own Sentry, defense-in-depth scrubbing — in the Telemetry guide.
Create Your First Crew
Add a credential
Store your LLM API key in the encrypted vault:The key is validated against the provider API, then encrypted with AES-256-GCM before storage.
--type API_KEY is for plain provider API keys (sk-ant-api...).
If you instead have a Claude Code OAuth token from a flat-rate
subscription (sk-ant-oat...), use --type AI_CLI_TOKEN — the
runtime injects the two differently, and mixing them up breaks
agent authentication.Assign the credential
--env-var-name flag is required — it specifies the environment variable the agent will use.Open the Dashboard
Navigate to http://localhost:8080 to see the web UI where you can:- View crew boards and agent status
- Monitor real-time logs from inside each container
- Manage credentials and skills
- Create and track missions
- Chat with agents directly
What’s Next?
Architecture
Learn how the runtime, sidecar proxy, container isolation, and IPC fit together under the hood.
Credentials
Set up credential failover, scoping, and the Keeper guardrail.
Production Checklist
The 6 things a production agent system needs — and how Crewship covers all of them.
Orchestration
Create missions with multi-agent task delegation.