CLI Reference

Control Pulse Endpoint from the command line for scripted deployments, troubleshooting sessions, and MDM automation.

ArgumentDescription
--startStart monitoring (launches app if not running)
--quitQuit the app immediately
--statusPrint current status and exit
--dashboardOpen the dashboard window
--interval <sec>Set collection interval (1-10 seconds, requires --start, persists to UI)
--duration <min>Set capture duration (0-7200 minutes, requires --start, one-shot, 0 = unlimited)
--watch <name>Watch a process by exact name (requires --start, case-sensitive, repeatable, one-shot)
--clear-pinsClear all user-pinned processes (useful for admin/MDM scripts)
--headlessEnable headless mode (persists until --no-headless)
--no-headlessDisable headless mode
--license <key>Activate with a license key
--helpShow help message
Example Usage
# Start monitoring with 8-hour limit
/usr/local/bin/pulse --start --duration 480

# Start with 10-second collection interval for 1 hour
/usr/local/bin/pulse --start --interval 10 --duration 60

# Watch specific processes (exact name, case-sensitive)
/usr/local/bin/pulse --start --watch "Google Chrome" --watch "zoom.us"

# Check current status
/usr/local/bin/pulse --status

# Open the dashboard
/usr/local/bin/pulse --dashboard

# Quit the app
/usr/local/bin/pulse --quit

# Clear all user-pinned processes (admin use)
/usr/local/bin/pulse --clear-pins

# Switch to headless mode (with 8-hour limit)
/usr/local/bin/pulse --headless --start --duration 480

Running from Jamf or MDM Scripts

The pulse CLI wrapper at /usr/local/bin/pulse automatically handles user context elevation when run as root. This means Jamf and MDM scripts can call it directly without manual launchctl asuser handling.

Jamf Policy Script
#!/bin/bash
# Start an 8-hour monitoring session
# The pulse wrapper handles user context automatically
/usr/local/bin/pulse --start --duration 480
Stop Monitoring Script
#!/bin/bash
# Quit the Pulse Endpoint app
/usr/local/bin/pulse --quit

Important Notes for Enterprise Admins

  • User context handled automatically — The /usr/local/bin/pulse wrapper detects when run as root and automatically elevates to the logged-in user context
  • One-shot settings--duration and --watch require --start and are cleared after monitoring begins. --duration is not MDM-managed and can always be set via CLI. --interval persists to the UI settings
  • Pinned process management — Users can pin up to 5 processes in the GUI. Admins can remotely clear all pinned processes with --clear-pins. This works whether the app is running or not
  • Headless mode persists — Unlike one-shot settings, --headless remains enabled until explicitly disabled with --no-headless. --headless can be managed via MDM (MDM takes precedence when set). --watch and --duration are CLI-only
  • Headless requires a destination — In headless mode, monitoring only auto-starts if local storage or Splunk upload is configured. Without a destination, the app launches but won't collect
  • Duration expiry — When --duration expires, monitoring stops automatically. The app remains running (useful for viewing collected data) but won't collect new metrics until restarted