@nineup/cli
v0.1.1
Published
Official command-line interface for Nineup — manage monitors, status pages, and incidents from the terminal.
Readme
@nineup/cli
Official command-line interface for Nineup — status pages that show you what broke and why.
npm install -g @nineup/cli
nineup loginWhat it does
Everything you can do in the Nineup dashboard, from a terminal:
- Monitor CRUD + on-demand checks, pause/resume, ping history, daily stats
- Status page CRUD, monitor attachment, custom domains, browser preview
- Incident CRUD, manual updates, resolve/reopen
- Account profile, browser session management, plan + usage info
- Personal Access Token management for CI / agents
- Public status read (no auth) by slug
Quick start
# Pair this CLI with your account (opens browser; no password typed)
nineup login
# Who am I?
nineup whoami
# Create a monitor
nineup monitor create --name "API" --url "https://api.example.com/health"
# List all down monitors and dump their ids
nineup monitor list --json | jq -r '.data[] | select(.currentStatus=="down") | .id'
# Open a public status page
nineup page open my-serviceAuthentication
- Interactive (developer):
nineup loginruns a device-flow pairing — the CLI prints a code, you open a URL, approve. No password ever enters the terminal. - Non-interactive (CI / agents): mint a Personal Access Token from
/dashboard/settings/cli(or vianineup auth tokens create), then exportNINEUP_TOKEN=nup_....
Credentials are stored at ~/.config/nineup/credentials.json (chmod 600). Multiple accounts are supported via --profile <name> or NINEUP_PROFILE.
Output formats
--output table # default in a TTY (pretty unicode tables, colored)
--output json # default when piped; stable envelope; see docs/AGENTS.md
--output ndjson # one resource per line, no envelope
--output yaml | tsv | csv
--fields a,b,c # column / projection selector--json is shorthand for --output json. Errors always go to stderr — your stdout pipeline stays clean.
Stdin
Any create or update accepts JSON on stdin via the - positional:
cat monitor.json | nineup monitor create -Command tree
nineup login | logout | whoami
nineup health | overview | status <slug> | version-info
nineup auth login | logout | whoami
nineup auth tokens list | create | revoke <id>
nineup account get | update [--name]
nineup account sessions list | revoke <id> | revoke-all
nineup monitor list [--page <id>]
nineup monitor get <id> | create | update <id> | delete <id>
nineup monitor pause <id> | resume <id> | check <id>
nineup monitor pings <id> [--limit N --offset N]
nineup monitor stats <id> [--days N]
nineup page list | get <id> | create | update <id> | delete <id>
nineup page monitors <id> | open <slug>
nineup page attach add <pageId> <monitorId>
nineup page attach remove <pageId> <monitorId>
nineup incident list [--status --page]
nineup incident get <id> | create | update <id> | delete <id>
nineup incident resolve <id> | reopen <id>
nineup incident updates add <id> --status --message
nineup incident updates list <id>
nineup plan get
nineup billing portal
nineup config get [key] | set <k> <v> | path
nineup commands # full command tree as JSON (for agents)
nineup schema dump # JSON Schema for every response shapeEvery command supports nineup <cmd> --help.
Agents & scripting
See docs/AGENTS.md for the JSON contract, exit codes, and integration recipes.
Releasing
GitHub Actions handles the publish flow — see docs/RELEASING.md.
Environment variables
| Var | Effect |
|---|---|
| NINEUP_API_URL | API base URL (default https://nineup.dev) |
| NINEUP_TOKEN | PAT, takes precedence over saved credential |
| NINEUP_PROFILE | named credential set to use |
| NINEUP_OUTPUT | default output format |
| NINEUP_NO_COLOR / NO_COLOR | disable color |
| NINEUP_DEBUG=1 | verbose stderr |
License
MIT
