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.com

Commands

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.0

Global 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