Skip to main content

crewship setup

The CLI-side counterpart to the browser onboarding wizard. After crewship login --pair --code=… you have an authenticated session but no crew yet — the wizard hasn’t run. crewship setup closes that gap so a user who prefers the terminal can complete onboarding without opening a browser. Hits the same POST /api/v1/onboarding/setup endpoint as the browser, so server-side validation, language injection, and template deploy behave identically across both surfaces.
Requires an authenticated session (crewship login). Errors with not logged in — run \crewship login —pair —code=…` first` when no token is present.

Flags

When --token is not passed, the command falls back to the adapter’s conventional env var (ANTHROPIC_API_KEY for CLAUDE_CODE/OPENCODE, GOOGLE_API_KEY for GEMINI_CLI, OPENAI_API_KEY for CODEX_CLI, CURSOR_API_KEY, FACTORY_API_KEY). Only when that’s empty does it prompt.

Crew templates

The list lives in the binary (not fetched from /api/v1/crew-templates) so crewship setup --help is usable on an air-gapped machine.

Examples

Each prompt has a sensible default; bare Enter accepts the first option. The telemetry prompt’s default follows the server’s current state (prerelease builds default yes, stable builds default no), and any explicit --telemetry flag skips it entirely.

Scripted / CI

In --yes mode the command fails fast if --crew, --adapter, or the token are missing. Errors:
  • --crew is required in non-interactive mode
  • --adapter is required in non-interactive mode
  • no token provided — pass --token=$(claude setup-token) (or the equivalent for <adapter>), or export <ENV_VAR> before running setup

Blank crew (single agent)

A blank template creates one crew named My Crew with a single agent named after the adapter (e.g. Gemini CLI (Google) #1).

Common errors

  • **unknown crew template "X" — see \crewship setup —help` for the list** — —crew` accepted only the five slugs above.
  • **unknown adapter "X" — see \crewship setup —help`** — adapter keys are uppercase with underscores; claude-codeis rejected,CLAUDE_CODE` is accepted.
  • token looks too short (need at least 8 characters) — quick guard against pasting a partial token.
  • **that looks like an Anthropic API key (sk-ant-api…). Crewship needs the CLI token from \claude setup-token` (sk-ant-oat… value) — run that command on your machine and paste the result** — surfaced when an Anthropic adapter is paired with what looks like a console API key. The CLI tokens start with sk-ant-oat, not sk-ant-api`.

What it prints on success

The server URL is whichever one this CLI invocation actually talked to (resolved from --server, then the active profile (--profile / CREWSHIP_PROFILE), then CREWSHIP_SERVER env, then ~/.crewship/cli-config.yaml), so the printed link always matches the workspace you just provisioned. The pre-send transport-security check runs against that same effective server, even when a stale CREWSHIP_SERVER is exported alongside an active profile.

See also

  • crewship login — pair the CLI before running setup.
  • crewship init — bootstrap the very first admin user on a fresh server (run before setup).
  • crewship seed — populate a dev/demo workspace with crews, agents, and integrations.
  • crewship crew — manage crews after the initial template lands.