Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.devhelm.io/llms.txt

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

Manage public status pages from the command line. The status-pages topic groups six related command trees: the status page itself, plus its components, component groups, published incidents, email subscribers, and custom domains.
Status pages are workspace-scoped, identified by slug in URLs (https://status.example.com/sp/{slug}) but addressed by UUID in the CLI. Use devhelm status-pages list to look up IDs.

Top-level commands

CommandDescription
devhelm status-pages listList all status pages
devhelm status-pages get <id>Get a status page
devhelm status-pages createCreate a new status page
devhelm status-pages update <id>Update a status page
devhelm status-pages delete <id>Delete a status page

status-pages list

devhelm status-pages list
FlagTypeDefaultDescription
--page-sizeinteger200Number of items per API request (1–200)

status-pages create

devhelm status-pages create \
  --name "Acme Status" \
  --slug acme \
  --visibility PUBLIC \
  --incident-mode AUTO
FlagTypeRequiredDescription
--namestringYesDisplay name shown in the page header
--slugstringYesURL-safe identifier used in the public URL
--descriptionstringSubheader text below the page name
--visibilityenumPUBLIC (currently the only supported value; PASSWORD/IP_RESTRICTED are reserved)
--incident-modeenumAUTO (incidents auto-publish), MANUAL (operator review required), or OFF
--branding-filestringPath to a JSON file containing branding fields (logoUrl, brandColor, theme, customCss, …)

status-pages update

Same flags as create, all optional.
devhelm status-pages update <id> --description "Real-time service health for Acme APIs"

status-pages delete

devhelm status-pages delete <id>
Deleting a status page also deletes its components, groups, published incidents, and subscriber list. Custom domains attached to the page are released. This is irreversible.

Components

A component maps an underlying monitor or service catalog dependency to a row on the public page.
CommandDescription
devhelm status-pages components list <page-id>List components on a page
devhelm status-pages components create <page-id>Add a component
devhelm status-pages components update <page-id> <component-id>Update a component
devhelm status-pages components delete <page-id> <component-id>Remove a component
devhelm status-pages components create <page-id> \
  --name "API" \
  --monitor-id <monitor-uuid> \
  --display-order 0

Component groups

Group related components into collapsible sections.
CommandDescription
devhelm status-pages groups list <page-id>List component groups
devhelm status-pages groups create <page-id>Create a group
devhelm status-pages groups update <page-id> <group-id>Update a group
devhelm status-pages groups delete <page-id> <group-id>Delete a group
devhelm status-pages groups create <page-id> \
  --name "Customer-facing APIs" \
  --description "Public REST endpoints" \
  --default-open
Flag (update)Description
--nameGroup display name
--descriptionSubheader text
--default-open / --no-default-openInitial expand/collapse state on first page load
--display-orderPosition in the list (integer; lower = higher)

Incidents

Publish incidents to the page. Incidents created here are independent of platform incidents — incident-mode=AUTO on the page handles auto-publish from monitor failures.
CommandDescription
devhelm status-pages incidents list <page-id>List published incidents
devhelm status-pages incidents get <page-id> <incident-id>Get incident details
devhelm status-pages incidents create <page-id>Draft a new incident
devhelm status-pages incidents update <page-id> <incident-id>Update title/impact/status
devhelm status-pages incidents publish <page-id> <incident-id>Promote a draft to public
devhelm status-pages incidents post-update <page-id> <incident-id>Append a status update entry
devhelm status-pages incidents dismiss <page-id> <incident-id>Discard a draft incident
devhelm status-pages incidents delete <page-id> <incident-id>Delete a published incident
devhelm status-pages incidents update <page-id> <incident-id> \
  --status MONITORING \
  --impact MAJOR
FlagValues
--statusINVESTIGATING, IDENTIFIED, MONITORING, RESOLVED
--impactNONE, MINOR, MAJOR, CRITICAL
incidents list accepts --limit <n> (default 20) to cap results.

Subscribers

Manage the email subscriber list for incident notifications.
CommandDescription
devhelm status-pages subscribers list <page-id>List subscribers
devhelm status-pages subscribers add <page-id>Add a subscriber
devhelm status-pages subscribers remove <page-id> <subscriber-id>Remove a subscriber
devhelm status-pages subscribers add <page-id> --email user@example.com

Custom domains

Every status page is served from a default first-party host: https://<slug>.devhelmstatus.com. The API returns this as the page’s page_url until a custom domain is set as primary. To attach a vanity domain (e.g. status.example.com):
  1. Register the domain with devhelm status-pages domains add.
  2. Add a CNAME record at your DNS provider pointing the vanity hostname at the brand-stable target cname.devhelm.io.
  3. Run devhelm status-pages domains verify until the status flips to active (DevHelm provisions the TLS certificate via Cloudflare for SaaS).
  4. Optionally set-primary so the public URL switches over.
CommandDescription
devhelm status-pages domains list <page-id>List custom domains
devhelm status-pages domains add <page-id>Register a new domain
devhelm status-pages domains verify <page-id> <domain-id>Trigger DNS verification
devhelm status-pages domains set-primary <page-id> <domain-id>Mark a verified domain as the canonical URL
devhelm status-pages domains remove <page-id> <domain-id>Detach a domain
devhelm status-pages domains add <page-id> --hostname status.example.com
# DNS: CNAME status.example.com -> cname.devhelm.io
devhelm status-pages domains verify <page-id> <domain-id>
devhelm status-pages domains set-primary <page-id> <domain-id>
When a domain is set as primary, the public status page redirects from the default <slug>.devhelmstatus.com URL to the custom domain.

Common patterns

Bootstrap a status page from scratch

PAGE_ID=$(devhelm status-pages create --name "Acme Status" --slug acme --visibility PUBLIC -o json | jq -r '.id')

devhelm status-pages groups create "$PAGE_ID" --name "APIs" --default-open
devhelm status-pages components create "$PAGE_ID" --name "API" --monitor-id <monitor-uuid>
devhelm status-pages domains add "$PAGE_ID" --hostname status.example.com

Publish an incident with two updates

INCIDENT_ID=$(devhelm status-pages incidents create "$PAGE_ID" \
  --title "Elevated API latency" --impact MINOR -o json | jq -r '.id')

devhelm status-pages incidents publish "$PAGE_ID" "$INCIDENT_ID"
devhelm status-pages incidents post-update "$PAGE_ID" "$INCIDENT_ID" \
  --status MONITORING --message "Mitigation deployed; watching."
devhelm status-pages incidents update "$PAGE_ID" "$INCIDENT_ID" --status RESOLVED

Next steps

Status data overview

Concepts behind status pages and component health.

Resource groups

Compose monitors and dependencies into status-page components.