Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.crewship.ai/llms.txt

Use this file to discover all available pages before exploring further.

crewship instance

Manage instance-level configuration. Settings live in the singleton app_settings table and are shared across every workspace on this crewshipd binary. Most users do not need this command; it exists for the operator running crewship start.
crewship instance settings <subcommand> [flags]
The settings group accepts the alias setting. Underneath sits a thin wrapper over /api/v1/instance/settings.

Subcommands

CommandDescription
settings listList every key/value pair currently stored.
settings get <key>Read one setting.
settings set <key> <value>Upsert. Sensitive keys are stored verbatim but echoed back as ***.
settings delete <key>Remove a setting. Aliases: remove, rm. Pass --yes to skip the confirmation prompt.

crewship instance settings list

crewship instance settings list
Columns: KEY, VALUE, UPDATED. The global --format flag is honoured (table, json, yaml). Sensitive value redaction. Three key-prefix patterns are written through but read as ***:
  • smtp.password
  • oauth.*.client_secret
  • webhook.*.secret
This is server-side redaction — list and get both return *** for these keys. There is no read-the-real-value path; verify the value landed correctly by checking that the dependent service (SMTP send, OAuth callback, webhook delivery) actually works.

crewship instance settings get

crewship instance settings get smtp.host
# Key     : smtp.host
# Value   : mail.acme-engineering.com
# Updated : 2026-05-27T08:14:22Z
Returns 404 if the key has never been set. The compiled-in default (if any) is not surfaced — callers fall back via the same code path the web UI uses.

crewship instance settings set

crewship instance settings set smtp.host mail.acme-engineering.com
crewship instance settings set smtp.password "$(cat ~/.secrets/smtp-password)"
# ✓ Setting saved: smtp.password = ***
Upserts. There is no separate createset is idempotent. The echoed response for a sensitive key is ***, not the literal value you sent — this is the redaction layer, not a bug.

crewship instance settings delete

crewship instance settings delete smtp.host
# Delete instance setting "smtp.host"? [y/N]: y
# ✓ Setting deleted.

crewship instance settings delete smtp.host --yes  # skip prompt
A small set of bootstrap-protected keys are rejected server-side with 403:
  • instance.bootstrap_at
  • instance.first_user_id
  • schema.version
Deleting these would break re-bootstrap on the next restart, so they cannot be removed via this surface. To rotate them, restart the daemon onto a fresh DB and re-bootstrap.

API

VerbPathWrapped by
GET/api/v1/instance/settingssettings list
GET/api/v1/instance/settings/{key}settings get
PUT/api/v1/instance/settings/{key}settings set
DELETE/api/v1/instance/settings/{key}settings delete
All four require OWNER / ADMIN (canRole "manage").

See also

  • crewship system — adjacent admin diagnostics (Keeper status, version, stats).
  • crewship system stats — workspace-scoped aggregate; complements the instance-wide settings here.