MyUpMonitor CLI
The mum CLI lets you manage monitors, check status, and respond to incidents from the terminal. Built with Go for fast, cross-platform operation.
Installation
Option 1: Go install (requires Go 1.21+)
go install myupmonitor.com/mum@v0.3.0 This downloads and compiles the CLI to your $GOPATH/bin directory.
Option 2: Download pre-built binary
Download the binary for your platform and add it to your PATH:
# Example: Linux amd64
curl -sSL https://myupmonitor.com/downloads/mum-linux-amd64 -o mum
chmod +x mum
sudo mv mum /usr/local/bin/Authentication
The CLI authenticates using an API key. Generate one from Dashboard → Settings → API Keys.
Option 1: Interactive login (recommended)
mum login --api-key mum_your_api_key_here This saves the key to ~/.mum/config.json (file permissions 0600). All future commands use it automatically.
Option 2: Environment variable
export MUM_API_KEY=mum_your_api_key_here
mum status Option 3: Per-command flag
mum status --api-key mum_your_api_key_here Precedence: CLI flag > environment variable > config file.
Custom API URL
For self-hosted instances or development:
mum status --api-url https://your-instance.com
# Or via environment variable:
export MUM_API_URL=https://your-instance.comCommands
mum status
Show a summary of all monitors with current status.
$ mum status
● All 4 monitors up
NAME TYPE STATUS UPTIME RESPONSE
---- ---- ------ ------ --------
myupmonitor.com HTTP UP 99.9% 46ms
api.example.com HTTP UP 100.0% 112ms
db.example.com TCP UP 100.0% -
*.example.com SSL UP 100.0% - mum status <name>
Show detailed status for a specific monitor. Matches partial names.
$ mum status api.example
UP api.example.com
Type: HTTP
Uptime: 100.0%
Response: 112ms
Status: 200 mum monitors list
Same as mum status. Use --format json for machine-readable output.
$ mum monitors list --format json
[
{
"id": "43be0f16-e179-4687-aa1d-acc23f4769d2",
"website": "myupmonitor.com",
"check_type": "http",
"active": true,
"last_status": 200,
"last_response_ms": 46,
"uptime_24h": 99.9
}
] mum monitors create
Create a new monitor.
$ mum monitors create --url https://api.example.com --type http --interval 60
✓ Created monitor: https://api.example.com (a1b2c3d4-...) Options:
--url(required) — URL or hostname to monitor--type— Check type:http(default),tcp,dns,ssl,heartbeat,api--interval— Check interval in seconds (default: 60)
mum monitors delete <id>
Delete a monitor by ID.
$ mum monitors delete a1b2c3d4-e5f6-7890-abcd-ef1234567890
✓ Monitor deleted mum monitors import <file>
Bulk import monitors from a CSV or JSON file.
CSV format (header optional):
url,check_type,interval_seconds,group_name
https://api.example.com,http,60,API
https://db.example.com,tcp,120,Database
example.com,ssl,3600,Certificates JSON format:
{
"monitors": [
{ "url": "https://api.example.com", "check_type": "http", "interval_seconds": 60, "group_name": "API" },
{ "url": "https://db.example.com", "check_type": "tcp", "interval_seconds": 120, "group_name": "Database" }
]
} $ mum monitors import endpoints.csv
Import complete: 15 created, 2 skipped out of 17
URL STATUS REASON
https://api.example.com created
https://db.example.com created
https://old.example.com skipped duplicate mum incidents list
List recent incidents.
$ mum incidents list
ID MONITOR STATUS STARTED
a1b2c3d4 api.example.com OPEN 2026-04-07T10:30:00Z
e5f6a7b8 cdn.example.com RESOLVED 2026-04-06T22:15:00Z mum incidents ack <id>
Acknowledge an active escalation to stop further escalation steps.
$ mum incidents ack a1b2c3d4-e5f6-7890-abcd-ef1234567890
✓ Escalation acknowledged mum channels list
List configured notification channels.
$ mum channels list
ID NAME TYPE ACTIVE
a1b2c3d4 Ops Slack SLACK yes
e5f6a7b8 PagerDuty Prod PAGERDUTY yes
c9d0e1f2 Backup Webhook WEBHOOK no mum version
$ mum version
mum version 0.1.0Global flags
--api-key <key>— API key for authentication--api-url <url>— API base URL (default:https://myupmonitor.com)--format <table|json>— Output format (default:table)--no-color— Disable color output
Scripting examples
Check if any monitor is down
#!/bin/bash
DOWN=$(mum status --format json | jq '[.[] | select(.last_status != null and .last_status != 1 and (.last_status < 200 or .last_status >= 400))] | length')
if [ "$DOWN" -gt 0 ]; then
echo "$DOWN monitors down!"
exit 1
fi CI/CD: Create monitor after deploy
#!/bin/bash
# In your deployment pipeline:
MUM_API_KEY=$MYUPMONITOR_KEY mum monitors create \
--url "https://$DEPLOY_URL/health" \
--type http \
--interval 30 Export monitor list
mum monitors list --format json > monitors-backup.json