crewship crew
A crew is a team of AI agents that share one runtime container and a common Shared Ship volume. Use these commands to create and tune crews, manage members and cross-crew connections, wire up MCP servers, drive the devcontainer build pipeline (provision, rebuild, cache), and read or write files in the crew’s shared workspace.
crewship crew <subcommand> [flags]
Subcommands
| Command | Description |
|---|
list | List all crews in the workspace |
get | Show crew details |
create | Create a new crew |
update | Update a crew |
delete | Delete a crew |
status | Show live crew status (agents, assignments, escalations) |
standup | Show crew standup summary (last 24h activity) |
peer-conversations | List peer conversations in a crew |
suggest | Get AI-powered crew suggestions based on a goal |
member list | List crew members |
member add | Add a user to a crew |
member remove | Remove a member from a crew |
connect | Create a connection between two crews |
disconnect | Remove a crew connection |
connections | List all crew connections in the workspace |
mcp | Show or set MCP server configuration for a crew |
config | Manage runtime configuration (devcontainer, mise, runtime image) |
provision | Trigger devcontainer provisioning |
provision status | Check provisioning status |
restart-agents | Drop the runtime container so the next exec rebuilds from the cached image |
rebuild | Invalidate the cache and re-provision the container |
cache list | List cached devcontainer images (crewship-cache:*) |
cache prune | Remove old or unreferenced cached images |
files list | List entries under the crew’s /crew/shared/ Shared Ship volume |
files get | Download a file from the crew’s shared volume |
files save | Upload bytes (stdin / --file / --content) into the shared volume |
crewship crew list
List all crews in the workspace.
Output columns: SLUG, NAME, AGENTS, NETWORK, MEMORY, CPUS
crewship crew get
Show detailed information about a crew.
crewship crew get <slug-or-id>
Output fields: Name, Slug, ID, Description, Memory, CPUs, TTL, Network Mode, Allowed Domains, Created.
crewship crew create
Create a new crew.
crewship crew create --name "Backend Team" --memory-mb 4096 --cpus 2.0
| Flag | Type | Default | Description |
|---|
--name | string | (required) | Crew name. |
--slug | string | (auto from name) | Crew slug. |
--description | string | | Description. |
--color | string | | Hex color (e.g. #3B82F6). |
--icon | string | | Emoji icon. |
--memory-mb | int | 0 | Container memory limit in MB. |
--cpus | float64 | 0 | Container CPU limit. |
--ttl | int | 0 | Auto-stop after idle hours (0 = never stop). |
--network-mode | string | | Network policy: free or restricted. |
--allowed-domains | string | | Comma-separated allowed domains for restricted mode. |
crewship crew update
Update a crew. Only changed flags are sent.
crewship crew update <slug-or-id> --memory-mb 8192 --cpus 4.0
| Flag | Type | Default | Description |
|---|
--name | string | | Crew name. |
--description | string | | Description. |
--color | string | | Hex color. |
--icon | string | | Emoji icon. |
--memory-mb | int | | Container memory limit in MB. |
--cpus | float64 | | Container CPU limit. |
--ttl | int | -1 | Auto-stop after idle hours (0 = disable TTL). |
--network-mode | string | | Network policy: free or restricted. |
--allowed-domains | string | | Comma-separated allowed domains. Pass empty string to clear. |
crewship crew delete
Delete a crew. Prompts for confirmation.
crewship crew delete <slug-or-id>
crewship crew delete backend-team --yes
| Flag | Short | Type | Default | Description |
|---|
--yes | -y | bool | false | Skip confirmation prompt. |
Deleting a crew removes its agents and runtime context. --yes bypasses the prompt — use it only in scripts.
crewship crew status
Show live crew status including agents, recent assignments, and open escalations.
crewship crew status <slug-or-id>
Displays a compound view with three sections:
- AGENTS — all agents with their slug, role, and status
- ASSIGNMENTS (last 5) — recent task assignments with status colors
- ESCALATIONS (open) — pending or open escalations
crewship crew standup
Show crew standup summary (last 24h activity).
crewship crew standup <slug-or-id>
crewship crew standup backend-team --since 2024-01-01T00:00:00Z
| Flag | Type | Default | Description |
|---|
--since | string | (24h ago) | Show activity since (RFC3339 timestamp). |
crewship crew peer-conversations
List peer conversations in a crew.
crewship crew peer-conversations <slug-or-id>
crewship crew peer-conversations backend-team --limit 20
| Flag | Type | Default | Description |
|---|
--limit | int | 50 | Number of conversations to show. |
Output columns: ID, FROM, TO, QUESTION, STATUS, ESCALATED, CREATED
crewship crew suggest
Get AI-powered crew suggestions based on a goal.
crewship crew suggest --goal "Build a SaaS billing system"
| Flag | Type | Default | Description |
|---|
--goal | string | (required) | What should this crew accomplish? |
Crew Members
crewship crew member list
List members of a crew.
crewship crew member list <crew-slug-or-id>
Output columns: ID, USER, EMAIL, JOINED
crewship crew member add
Add a user to a crew.
crewship crew member add <crew-slug-or-id> <user-id>
crewship crew member remove
Remove a member from a crew.
crewship crew member remove <crew-slug-or-id> <member-id>
Crew Connections
Crew connections enable cross-crew task dispatch between two crews.
crewship crew connect
Create a connection between two crews.
crewship crew connect <crew-slug-A> <crew-slug-B>
crewship crew connect backend-team frontend-team --direction unidirectional
| Flag | Type | Default | Description |
|---|
--direction | string | bidirectional | Connection direction: bidirectional or unidirectional. |
crewship crew disconnect
Remove a crew connection by connection ID.
crewship crew disconnect <connection-id>
crewship crew connections
List all crew connections in the workspace.
crewship crew connections
Output columns: ID, FROM, TO, DIRECTION, STATUS, CREATED
crewship crew mcp
Show or set MCP server configuration for a crew.
# Show current config
crewship crew mcp <crew-slug>
# Set from inline JSON
crewship crew mcp <crew-slug> --set '{"mcpServers":{"github":{"command":"npx","args":["-y","@modelcontextprotocol/server-github"]}}}'
# Set from file
crewship crew mcp <crew-slug> --set-file .mcp.json
# Clear config
crewship crew mcp <crew-slug> --set ''
| Flag | Type | Default | Description |
|---|
--set | string | | Set MCP config from JSON string. Pass empty to clear. |
--set-file | string | | Set MCP config from file path. |
--set and --set-file are mutually exclusive. The JSON must contain a "mcpServers" top-level object.
crewship crew config
Manage runtime configuration for a crew — the devcontainer devcontainer.json, mise tool config, and optional runtime base image override. Together these drive what crewship crew provision builds.
# Inspect current config
crewship crew config <slug-or-id> --show
# Emit as JSON (pipe into jq / stash in a secret store)
crewship crew config <slug-or-id> --export
# Upload a devcontainer.json
crewship crew config <slug-or-id> --devcontainer ./devcontainer.json
# Upload a mise config alongside the devcontainer
crewship crew config <slug-or-id> --devcontainer ./devcontainer.json --mise ./.mise.toml.json
# Pin a custom base image instead of the default runtime
crewship crew config <slug-or-id> --runtime-image debian:bookworm-slim
# Reset everything back to defaults
crewship crew config <slug-or-id> --clear
| Flag | Type | Default | Description |
|---|
--show | bool | false | Pretty-print the current runtime configuration. |
--export | bool | false | Export runtime configuration as JSON to stdout. |
--clear | bool | false | Clear all runtime configuration (sets to NULL in the DB). |
--devcontainer | string | | Path to a devcontainer.json file to upload. |
--mise | string | | Path to a mise config JSON file to upload. |
--runtime-image | string | | Custom base image reference (e.g. debian:bookworm-slim). |
--show, --export, and --clear are read-or-reset operations; the three upload flags apply a new value. Combine upload flags in one invocation to update multiple fields atomically.
After changing runtime configuration, run crewship crew rebuild to invalidate the container cache and apply the new build.
crewship crew provision
Trigger devcontainer provisioning for a crew. Kicks off the same build pipeline the server runs when an agent first starts in a fresh workspace. Streams live build progress until the build completes or fails — pass --no-watch to fire-and-forget.
crewship crew provision <slug-or-id>
crewship crew provision <slug-or-id> --no-watch
| Flag | Type | Default | Description |
|---|
--no-watch | bool | false | Do not watch progress; return immediately after triggering. |
crewship crew provision status
Check provisioning status for a crew. Prints the current status, cached image tag, config hash, and resolved devcontainer config. Pass --watch to stream live progress until the build completes. Exit code is always 0 — branch on the Status field (ready, building, failed, not-provisioned) in downstream scripts rather than relying on the exit code.
crewship crew provision status <slug-or-id>
crewship crew provision status <slug-or-id> --watch
| Flag | Type | Default | Description |
|---|
--watch | bool | false | Stream live progress until the build completes. |
crewship crew rebuild
Invalidate the crew’s cached devcontainer image and re-provision. Use after changing crewship crew config values — provision alone will reuse the cached layer keyed by the old config hash. Streams live progress unless --no-watch is passed.
crewship crew rebuild <slug-or-id>
crewship crew rebuild <slug-or-id> --no-watch
| Flag | Type | Default | Description |
|---|
--no-watch | bool | false | Do not watch progress; return immediately after triggering. |
crewship crew restart-agents
Force-remove the crew’s runtime container. The next agent exec recreates it from the current cached image, so agents pick up a new system prompt, new MCP config, and new env vars without a full rebuild. Idempotent — succeeds with restarted=0 when no container was running.
crewship crew restart-agents <slug-or-id>
crewship crew restart-agents <slug-or-id> --format json
Backed by POST /api/v1/crews/{crewId}/restart-agents. The handler returns {"restarted": <n>}. Use restart-agents for hot config refreshes; reach for rebuild only when the image itself has changed.
restarted: <n> (n > 0) confirms the container was actually dropped; a fresh one is created cold on the next exec. restarted: 0 means no running container was found for this crew — expected when the crew is idle, but if you know a container is up and still see 0, you’re on a build that predates the container-name-matching fix (the matcher looked for crewship-team-<slug> and missed the real <prefix>-team-<slug>-<crewID> name on any multi-instance or post-cross-tenant-fix deployment, so the drop silently no-op’d). Upgrade the server.
crewship crew files
Inspect or write files in the crew’s /crew/shared/ directory — the inter-agent Shared Ship namespace. Alias: crew file. Server routes live in internal/api/proxy_files.go; the CLI download path mirrors crewship agent files so the table / json / yaml output feels identical across scopes.
crewship crew files list <slug-or-id>
crewship crew files list demo-crew
crewship crew files list demo-crew --path /shared/notes
crewship crew files list demo-crew --recursive --format json --filter '.[] | .name'
| Flag | Type | Default | Description |
|---|
--path <subdir> | string | (root) | Subdirectory under /crew/shared to list. Forwarded as ?subdir=. |
--recursive | bool | false | Recurse into subdirectories. Forwarded as ?recursive=true. |
--filter <expr> | string | | jq filter applied before rendering. |
crewship crew files get <slug-or-id> <path>
Stream a file from the crew shared volume. Defaults to stdout when no --out is given so the output is pipe-friendly; pass --out <file> (or - to force stdout) to land bytes on disk.
crewship crew files get demo-crew shared/notes.md
crewship crew files get demo-crew shared/dump.bin --out /tmp/dump.bin
| Flag | Type | Default | Description |
|---|
--out <path> | string | (stdout) | Output path. - or empty means stdout. |
Disk writes use the same atomic-tempfile-then-rename(2) pattern as agent files --download, so a Ctrl-C or transport hiccup mid-copy does not clobber an existing good file.
crewship crew files save <slug-or-id> <path>
Upload bytes to the crew shared volume. Source comes from --file (local path), --content (inline string), or stdin when neither flag is given. --content and --file are mutually exclusive.
echo "hi" | crewship crew files save demo-crew shared/hi.txt
crewship crew files save demo-crew shared/note.md --content "draft"
crewship crew files save demo-crew shared/data.bin --file /tmp/data.bin
| Flag | Type | Default | Description |
|---|
--content | string | | Inline content string. |
--file | string | | Local file path to upload. |
Save issues a raw PUT /api/v1/crews/{crewId}/files/save?path=… with Content-Type: application/octet-stream so binary uploads round-trip byte-for-byte.
crewship crew cache
Manage the devcontainer image cache shared across crews. Cache tags use the crewship-cache:* prefix and are keyed by a hash of devcontainer.json + mise config + runtime image, so two crews with identical configs share a single image.
crewship crew cache list
Output columns: TAG, SIZE, CREATED, USED BY (comma-joined list of crew slugs that reference the image — empty when unreferenced).
crewship crew cache prune
Remove old or unreferenced cached images. With no flags, defaults to --older-than 30d and leaves referenced images alone.
# Default — drop images older than 30 days, keep referenced ones
crewship crew cache prune
# Drop only images no crew currently points at
crewship crew cache prune --unused
# Tighter window
crewship crew cache prune --older-than 7d
# Scripted / CI
crewship crew cache prune --older-than 7d --force
| Flag | Type | Default | Description |
|---|
--older-than | string | 30d (when no flags set) | Remove images older than this duration (e.g. 30d, 72h). |
--unused | bool | false | Remove only images not referenced by any crew. |
--force | bool | false | Skip interactive confirmation. Required in non-TTY sessions. |
Pruning a referenced image forces the next crewship crew provision on that crew to rebuild from scratch (seconds to minutes). --force bypasses the confirmation prompt — use it only in scripts.
See also