- name
- openstatus-cli
- description
- |
- env
- allowed-tools
- metadata
- {"openclaw":{"emoji":"🌎","requires":{"bins":[],"env":["OPENSTATUS_API_TOKEN", "OPENSTATUS_API_TOKEN"]}}}
OpenStatus CLI — Incident Management
OpenStatus is an open-source monitoring platform. The CLI lets you manage incidents and maintenance directly from the terminal — create status reports, post updates through the full incident lifecycle, schedule maintenance windows, and notify your status page subscribers.
Run openstatus --help or openstatus <command> --help for full option details.
official website: https://www.openstatus.dev
Prerequisites
The openstatus CLI must be installed before using this skill. Install via Homebrew:
brew install openstatusHQ/cli/openstatus --caskFor other installation methods, see the OpenStatus CLI repository.
Authentication
You must authenticate before running any command:
openstatus whoamiIf not authenticated:
openstatus loginAuthentication can also be provided via the --access-token / -t flag or the OPENSTATUS_API_TOKEN environment variable.
Command Overview
| Task | Command | When to use |
|---|---|---|
| Create incident report | status-report create | Something is broken — notify users |
| Add update to incident | status-report add-update <ID> | Post a progress update on an ongoing incident |
| List incidents | status-report list | See active/recent incidents |
| Get incident details | status-report info <ID> | View full incident timeline |
| Update incident metadata | status-report update <ID> | Change title or affected components |
| Delete incident | status-report delete <ID> | Remove a status report |
| Create maintenance window | maintenance create | Schedule planned downtime |
| List maintenance windows | maintenance list | See scheduled/active/completed maintenance |
| Get maintenance details | maintenance info <ID> | View full details of a maintenance window |
| Update maintenance window | maintenance update <ID> | Change title, message, or time window |
| Delete maintenance window | maintenance delete <ID> | Remove a maintenance window |
| List status pages | status-page list | Find your page ID and components |
| Get status page details | status-page info <ID> | View page config, components, theme |
Command aliases: status-report = sr, status-page = sp, maintenance = mt.
Quick Start: Report an Incident End-to-End
# 1. Find your status page and components
openstatus status-page list
openstatus status-page info <PAGE_ID>
# 2. Create the incident
openstatus status-report create \
--title "API Degradation" \
--status investigating \
--message "Investigating increased error rates" \
--page-id 123 \
--component-ids "comp-1,comp-2" \
--notify
# 3. Post updates as you learn more
openstatus status-report add-update 456 \
--status identified \
--message "Root cause: database connection pool exhaustion" \
--notify
# 4. Resolve
openstatus status-report add-update 456 \
--status resolved \
--message "Connection pool limits increased, recovery confirmed" \
--notifyQuick Start: Schedule a Maintenance Window
# 1. Find your status page
openstatus status-page list
# 2. Create the maintenance window
openstatus maintenance create \
--title "Database Migration" \
--message "Scheduled migration to improve performance" \
--from "2026-04-05T02:00:00Z" \
--to "2026-04-05T04:00:00Z" \
--page-id 123 \
--component-ids "comp-1" \
--notifyIncident Lifecycle
Use status reports for unplanned outages and incidents.
Status reports follow a strict progression: investigating → identified → monitoring → resolved. These are the only valid status values — the CLI rejects anything else.
Step 1: Look Up Your Status Page
Every incident must be attached to a status page. Find your page ID and component IDs first:
openstatus status-page list
openstatus status-page info <PAGE_ID> # shows components grouped by sectionStep 2: Create the Incident
openstatus status-report create \
--title "API Degradation" \
--status investigating \
--message "We are investigating increased error rates on the API" \
--page-id 123 \
--component-ids "comp-1,comp-2" \
--notifyOn success, the CLI prints the report ID and suggests the next command:
Status report created successfully (ID: 456)
To add updates, run: openstatus status-report add-update 456 --status identified --message '...'create flags:
| Flag | Required | Description |
|---|---|---|
--title | yes | Incident title |
--status | yes | investigating, identified, monitoring, or resolved |
--message | yes | Initial message describing the incident |
--page-id | yes | Status page ID (from status-page list) |
--component-ids | no | Comma-separated component IDs in a single string: "id1,id2" |
--notify | no | Send notification to status page subscribers |
--date | no | RFC 3339 timestamp (e.g. 2026-03-25T10:00:00Z), defaults to now (UTC) |
Step 3: Post Updates
As the incident progresses, post status updates:
openstatus status-report add-update 456 \
--status identified \
--message "Root cause identified: database connection pool exhaustion" \
--notifyadd-update flags:
| Flag | Required | Description |
|---|---|---|
--status | yes | New status value |
--message | yes | Update message |
--notify | no | Notify subscribers |
--date | no | RFC 3339 timestamp, defaults to now (UTC) |
Step 4: Resolve
openstatus status-report add-update 456 \
--status resolved \
--message "Connection pool limits increased, monitoring confirms recovery" \
--notifyWhen status is set to resolved, the CLI confirms: Report resolved.
Update Metadata Without Changing Status
Change the title or affected components on an existing report:
openstatus status-report update 456 \
--title "API Degradation - Resolved" \
--component-ids "comp-1,comp-3"At least one of --title or --component-ids must be provided. --component-ids replaces the entire list — it is not additive.
View Incident Timeline
openstatus status-report info 456Shows full metadata plus the update timeline — each update displayed as <date> [status] <message>.
List and Filter Incidents
openstatus status-report list # all reports
openstatus status-report list --status investigating # only active investigations
openstatus status-report list --limit 10 # last 10 reportsDelete an Incident
openstatus status-report delete 456 # prompts for confirmation
openstatus status-report delete 456 -y # skip confirmationMaintenance Windows
Use maintenance for planned downtime windows.
Create a Maintenance Window
openstatus maintenance create \
--title "Database Migration" \
--message "Scheduled database migration to improve performance" \
--from "2026-04-05T02:00:00Z" \
--to "2026-04-05T04:00:00Z" \
--page-id 123 \
--component-ids "comp-1,comp-2" \
--notifyOn success, the CLI prints the maintenance ID:
Maintenance created successfully (ID: 789)
Run 'openstatus maintenance info 789' to see detailscreate flags:
| Flag | Required | Description |
|---|---|---|
--title | yes | Maintenance title |
--message | yes | Description of the maintenance |
--from | yes | Start time in RFC 3339 format (e.g. 2026-04-05T02:00:00Z) |
--to | yes | End time in RFC 3339 format |
--page-id | yes | Status page ID (from status-page list) |
--component-ids | no | Comma-separated component IDs: "id1,id2" |
--notify | no | Notify status page subscribers |
Status is computed automatically based on the current time: scheduled (before --from), in_progress (between --from and --to), completed (after --to). There is no --status flag.
Update a Maintenance Window
openstatus maintenance update <ID> \
--title "Extended Maintenance" \
--to "2026-04-05T06:00:00Z"Only provided flags are updated. At least one of --title, --message, --from, --to, or --component-ids must be set. --component-ids replaces the entire list.
List and Filter
openstatus maintenance list # all maintenance windows
openstatus maintenance list --page-id 123 # filter by page
openstatus maintenance list --limit 10 # limit resultsView Details
openstatus maintenance info <ID>Delete
openstatus maintenance delete <ID> # prompts for confirmation
openstatus maintenance delete <ID> -y # skip confirmationGlobal Flags
Every command supports these:
| Flag | Effect |
|---|---|
--json | Machine-readable JSON output |
--no-color | Disable colored output |
--quiet / -q | Suppress non-error output |
--debug | Enable debug output |
Use --json when you need to parse output programmatically or pipe it to jq.
Common Gotchas
- Missing
--page-id—status-report createandmaintenance createboth require--page-id. Always runopenstatus status-page listfirst to get it. - Invalid status values — Status reports only accept
investigating,identified,monitoring,resolved. The CLI rejects anything else. --component-idsreplaces, not appends — Onupdate, passing--component-idsreplaces the entire list. Include all desired components in the new value.--component-idsformat — Must be a single comma-separated string:"id1,id2,id3". Do not pass multiple--component-idsflags.- Notification fatigue —
--notifyemails all status page subscribers. Use it forcreateandresolved, but consider skipping it for intermediate updates. - Date format — All dates must use RFC 3339 / ISO 8601 format:
"2026-04-05T02:00:00Z". Other formats will be rejected. - Auth errors — Every command requires auth. If you get auth errors, run
openstatus whoamito check, thenopenstatus loginif needed.