Skip to main content

CLI Reference

The PingSLA CLI (pingsla) lets you manage your workspace from the command line — ideal for DevOps workflows, CI/CD pipelines, and scripting.

Installation

npm install -g @pingsla/cli
# or
pnpm add -g @pingsla/cli

Requires Node.js ≥ 18.

Authentication

pingsla auth login
# Prompts for API key

# Or set via environment variable (preferred for CI/CD)
export PINGSLA_API_KEY=psk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Configuration

The CLI reads configuration from (in order of precedence):

  1. PINGSLA_API_KEY environment variable
  2. --api-key flag
  3. ~/.pingsla/config.json (set by pingsla auth login)

Commands Reference

Monitors

# List all monitors
pingsla monitors list
pingsla monitors list --status down
pingsla monitors list --output json

# Get a specific monitor
pingsla monitors get mon_xxxxxxxx

# Create a monitor from a JSON file
pingsla monitors create --file monitor.json

# Pause / Resume
pingsla monitors pause mon_xxxxxxxx
pingsla monitors resume mon_xxxxxxxx

# Delete
pingsla monitors delete mon_xxxxxxxx

# Watch real-time status
pingsla monitors watch

Incidents

# List open incidents
pingsla incidents list
pingsla incidents list --status open
pingsla incidents list --output json

# Get incident detail
pingsla incidents get inc_xxxxxxxx

# Acknowledge
pingsla incidents acknowledge inc_xxxxxxxx

# Resolve
pingsla incidents resolve inc_xxxxxxxx

Status Pages

# List status pages
pingsla status-pages list

# Get public status
pingsla status-pages status your-slug

# Post a manual incident
pingsla status-pages incident create --page sp_xxxxxxxx --title "Investigating API issues"

Workspace

# Show workspace info
pingsla workspace info

# List team members
pingsla workspace members

# Show API key info
pingsla workspace keys

Monitor Config File Format

Create monitors from declarative YAML or JSON files:

# monitor.yaml
name: Production API Health
type: http
url: https://api.yourapp.com/health
method: GET
interval: 60
timeout: 10
expectedStatusCode: 200
alertPolicyId: pol_xxxxxxxx
pingsla monitors create --file monitor.yaml

CI/CD Usage

Pause monitors during deployments to suppress false alerts:

# In your deploy script
pingsla monitors pause mon_xxxxxxxx --reason "Deployment in progress"
./deploy.sh
pingsla monitors resume mon_xxxxxxxx

In GitHub Actions:

- name: Pause monitors
run: pingsla monitors pause ${{ vars.MONITOR_ID }}
env:
PINGSLA_API_KEY: ${{ secrets.PINGSLA_API_KEY }}

- name: Deploy
run: ./deploy.sh

- name: Resume monitors
if: always()
run: pingsla monitors resume ${{ vars.MONITOR_ID }}
env:
PINGSLA_API_KEY: ${{ secrets.PINGSLA_API_KEY }}

Output Formats

pingsla monitors list --output table # Default: formatted table
pingsla monitors list --output json # Machine-readable JSON
pingsla monitors list --output csv # CSV for spreadsheet export

Global Flags

FlagDescription
--api-keyOverride API key for this command
--workspaceTarget a specific workspace ID
--outputOutput format: table, json, csv
--quietSuppress non-essential output
--debugShow HTTP request/response details