Skip to main content
The pulse monitors command group is the heart of the CLI. You can inspect every monitor in your account, drill into the details of a single check, and — most powerfully — declare your entire monitoring setup in a pulseguard.yaml file and apply it with a single command. Treating monitor configuration as code means your monitoring setup is version-controlled, reviewable, and reproducible.

Listing monitors

Get a quick overview of all monitors in your account:
The output is a formatted table with the following columns: The ls alias is also available:
For scripting and automation, request machine-readable output with the --json flag:
This outputs a JSON array of all monitor objects, suitable for piping into jq or other tools.

Getting monitor details

Inspect a single monitor by its ID to see its full configuration and recent check events:
For example:
The output shows the monitor’s name, current status, URL, type, interval, timeout, last check timestamp, and a list of recent events with timestamps, statuses, latencies, and any error reasons. Use --json to get the full monitor object as JSON:
Find a monitor’s ID from the pulse monitors list output, or from the monitor’s URL in the PulseGuard dashboard: /dashboard/monitors/<id>.

Monitoring as Code with YAML

The most powerful feature of the CLI is the ability to define your monitors declaratively in a YAML file and apply them idempotently. Monitors are matched by name: if a monitor with the same name already exists it is updated, otherwise it is created.

Create a pulseguard.yaml file

Add a pulseguard.yaml file to the root of your repository:
pulseguard.yaml
Each entry in the monitors array supports the following fields:

Apply the configuration

Run the following command from the directory containing your pulseguard.yaml:
The CLI fetches your existing monitors, compares them against the YAML, and creates or updates each entry. At the end it prints a summary:

Preview changes before applying

Use --dry-run to see exactly what apply would do without making any changes:
[+] means the monitor would be created; [~] means it would be updated.
pulse monitors apply is safe to run repeatedly. Monitors that already match their YAML definition are not modified unnecessarily. This makes it suitable for use in a deployment pipeline.

Export existing monitors to YAML

If you have monitors you created in the dashboard and want to bring them under version control, export them all to a YAML file:
This writes a pulseguard.yaml file in the current directory. To specify a different output path:
The exported file is a valid input for pulse monitors apply, so you can use it immediately as your Monitoring as Code baseline.

Triggering an immediate check

Force a monitor to run a health check right now without waiting for its next scheduled interval:
You can optionally override the target URL for a one-off test:
The CLI displays the result — status, latency, HTTP status code, and any error — and exits with code 1 if the check returns DOWN, making it easy to use in scripts.
Instant trigger is supported only for HTTP monitors. Attempting to trigger an SSL or BROWSER monitor returns a 422 error.

Tailing live logs

Stream check events from a monitor in real time, similar to tail -f on a log file:
The CLI first shows the last 20 events, then polls for new ones every 5 seconds, printing each new event as it arrives. Press Ctrl+C to stop. Control how many past lines are shown on startup with -n:
Adjust the poll interval in milliseconds with --interval (minimum 2000 ms):
Each log line shows the timestamp, a coloured status indicator, latency, check region, and any error reason: