Skip to main content

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

CommandDescription
listList all crews in the workspace
getShow crew details
createCreate a new crew
updateUpdate a crew
deleteDelete a crew
statusShow live crew status (agents, assignments, escalations)
standupShow crew standup summary (last 24h activity)
peer-conversationsList peer conversations in a crew
suggestGet AI-powered crew suggestions based on a goal
member listList crew members
member addAdd a user to a crew
member removeRemove a member from a crew
connectCreate a connection between two crews
disconnectRemove a crew connection
connectionsList all crew connections in the workspace
mcpShow or set MCP server configuration for a crew
configManage runtime configuration (devcontainer, mise, runtime image)
provisionTrigger devcontainer provisioning
provision statusCheck provisioning status
restart-agentsDrop the runtime container so the next exec rebuilds from the cached image
rebuildInvalidate the cache and re-provision the container
cache listList cached devcontainer images (crewship-cache:*)
cache pruneRemove old or unreferenced cached images
files listList entries under the crew’s /crew/shared/ Shared Ship volume
files getDownload a file from the crew’s shared volume
files saveUpload bytes (stdin / --file / --content) into the shared volume

crewship crew list

List all crews in the workspace.
crewship crew list
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
FlagTypeDefaultDescription
--namestring(required)Crew name.
--slugstring(auto from name)Crew slug.
--descriptionstringDescription.
--colorstringHex color (e.g. #3B82F6).
--iconstringEmoji icon.
--memory-mbint0Container memory limit in MB.
--cpusfloat640Container CPU limit.
--ttlint0Auto-stop after idle hours (0 = never stop).
--network-modestringNetwork policy: free or restricted.
--allowed-domainsstringComma-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
FlagTypeDefaultDescription
--namestringCrew name.
--descriptionstringDescription.
--colorstringHex color.
--iconstringEmoji icon.
--memory-mbintContainer memory limit in MB.
--cpusfloat64Container CPU limit.
--ttlint-1Auto-stop after idle hours (0 = disable TTL).
--network-modestringNetwork policy: free or restricted.
--allowed-domainsstringComma-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
FlagShortTypeDefaultDescription
--yes-yboolfalseSkip 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
FlagTypeDefaultDescription
--sincestring(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
FlagTypeDefaultDescription
--limitint50Number 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"
FlagTypeDefaultDescription
--goalstring(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
FlagTypeDefaultDescription
--directionstringbidirectionalConnection 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 ''
FlagTypeDefaultDescription
--setstringSet MCP config from JSON string. Pass empty to clear.
--set-filestringSet 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
FlagTypeDefaultDescription
--showboolfalsePretty-print the current runtime configuration.
--exportboolfalseExport runtime configuration as JSON to stdout.
--clearboolfalseClear all runtime configuration (sets to NULL in the DB).
--devcontainerstringPath to a devcontainer.json file to upload.
--misestringPath to a mise config JSON file to upload.
--runtime-imagestringCustom 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
FlagTypeDefaultDescription
--no-watchboolfalseDo 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
FlagTypeDefaultDescription
--watchboolfalseStream 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
FlagTypeDefaultDescription
--no-watchboolfalseDo 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'
FlagTypeDefaultDescription
--path <subdir>string(root)Subdirectory under /crew/shared to list. Forwarded as ?subdir=.
--recursiveboolfalseRecurse into subdirectories. Forwarded as ?recursive=true.
--filter <expr>stringjq 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
FlagTypeDefaultDescription
--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
FlagTypeDefaultDescription
--contentstringInline content string.
--filestringLocal 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

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
FlagTypeDefaultDescription
--older-thanstring30d (when no flags set)Remove images older than this duration (e.g. 30d, 72h).
--unusedboolfalseRemove only images not referenced by any crew.
--forceboolfalseSkip 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