Status pages

CLI

Manage status pages, set their layout and post incidents from the terminal or a pipeline with nrc monitor status-pages.

Verified November 5, 2026

The nrc monitor status-pages commands need CLI 0.23.0 or later.

The Norcube CLI (norcube, alias nrc) manages status pages under nrc monitor status-pages. Pages are named by their id or exact slug, and component names by their id or exact public name. Every command supports --org <slug>, --profile <name>, -o table|json|yaml|text and --query (see output and scripting).

There are no commands for custom domains or logos. Those pages show how to use nrc api instead, which works from CLI 0.22.0.

Create and publish a page

create takes every setting as a flag and fills in none of them. A boolean takes =false to turn it off.

nrc monitor status-pages create "Acme status" \
  --slug acme \
  --time-zone Europe/Prague \
  --uptime-days 90 \
  --history-days 90 \
  --show-uptime-bars \
  --show-uptime-percent \
  --show-response-time=false \
  --search-indexing

nrc monitor status-pages layout set acme --file layout.json
nrc monitor status-pages preview-link acme    # works for 15 minutes
nrc monitor status-pages publish acme         # public within a minute

Manage pages

nrc monitor status-pages list
nrc monitor status-pages list --monitor "Shop"    # the pages that show a monitor
nrc monitor status-pages get acme
nrc monitor status-pages update acme --name "Acme Inc. status" --uptime-days 30
nrc monitor status-pages update acme --slug acme-inc
nrc monitor status-pages unpublish acme
nrc monitor status-pages delete acme

unpublish and delete ask first. Without a terminal, pass --yes.

Layout

layout get -o json prints the document layout set takes, so you can edit it and send it back. --file - reads standard input. layout set prints the saved layout, with the ids of new rows. See Layout for the format.

nrc monitor status-pages layout get acme
nrc monitor status-pages layout get acme -o json > layout.json
nrc monitor status-pages layout set acme --file layout.json

nrc monitor status-pages layout get acme -o json \
  | jq '.groups[0].collapsed = true' \
  | nrc monitor status-pages layout set acme --file -

Post incidents

nrc monitor status-pages incidents list acme --status open
nrc monitor status-pages incidents get acme <incident>

nrc monitor status-pages incidents create acme \
  --title "Elevated API errors" \
  --status investigating \
  --impact minor \
  --message "We are looking into it." \
  --component "API=partial_outage"

nrc monitor status-pages incidents updates create acme <incident> \
  --status monitoring \
  --message "A fix is rolling out."

nrc monitor status-pages incidents updates create acme <incident> \
  --status resolved \
  --message "All clear."

nrc monitor status-pages incidents update acme <incident> --title "Elevated API errors in Europe"

--message-file reads the text from a file (- for standard input) in place of --message. --component is repeatable, and takes <id or name>=<status>. --started-at takes a timestamp, a date or an age such as 20m. On a published page, a post or an update is public within a minute, and these commands print its public address.

In CI

Give the CI token the monitor.statuspages scope; no other scope lets it change a page or post on it. See Limits, scope and permissions.

Commands report problems through the standard exit codes: for example, a post on a resolved incident exits 8, and a token without the scope exits 5.

ID=$(nrc monitor status-pages incidents create acme \
  --title "Scheduled database upgrade overran" \
  --status identified --impact minor \
  --message "We are finishing the upgrade." \
  -o text | cut -f1)

nrc monitor status-pages incidents updates create acme "$ID" \
  --status resolved --message "The upgrade is finished."

On this page