These docs cover Pulse Endpoint (paid). Pulse Lite is the free, local-only build — features such as Splunk integration, MDM deployment, the CLI, upload, and licensing don't apply to it. Compare editions →
CLI Reference
Control Pulse Endpoint from the command line for scripted deployments, troubleshooting sessions, and MDM automation.
| Argument | Description |
|---|---|
--start | Start monitoring (launches app if not running) |
--quit | Quit the app immediately |
--status | Print current status and exit |
--dashboard | Open 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 (requires --start, case-insensitive, trailing * matches a family, repeatable, persists until cleared) |
--clear-watch | Clear all CLI-set watched processes (combine with --start to clear then start) |
--clear-pins | Clear all user-pinned processes (useful for admin/MDM scripts) |
--headless | Enable headless mode (persists until --no-headless) |
--no-headless | Disable headless mode |
--license <key> | Activate with a license key |
--help | Show 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 (case-insensitive; repeatable)
/usr/local/bin/pulse --start --watch "Google Chrome" --watch "zoom.us"
# Watch a process family with a trailing * (prefix match)
/usr/local/bin/pulse --start --watch "com.crowdstrike.falcon*"
# Clear CLI-set watches, then start fresh
/usr/local/bin/pulse --start --clear-watch --watch "zoom.us"
# Stop watching entirely
/usr/local/bin/pulse --clear-watch
# 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 480Running 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 480Stop Monitoring Script
#!/bin/bash
# Quit the Pulse Endpoint app
/usr/local/bin/pulse --quitImportant Notes for Enterprise Admins
- User context handled automatically — The
/usr/local/bin/pulsewrapper detects when run as root and automatically elevates to the logged-in user context - One-shot settings —
--durationrequires--startand is cleared after monitoring begins. It is not MDM-managed and can always be set via CLI.--intervalpersists to the UI settings - Watch persistence —
--watchrequires--startbut, unlike--duration, persists across restarts until cleared with--clear-watch(combinable with--startin the same invocation — the clear happens first, then the new watch list applies). Matching is case-insensitive; a trailing*matches by prefix (e.g.com.crowdstrike.falcon*). MDM-managedwatchedProcessestakes precedence over CLI--watchwhen set - 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. Pins use the same case-insensitive/trailing-*matching as--watchandwatchedProcesses— note that pins used to prefix-match implicitly and now match exactly, so pinGoogle Chrome*to include helper processes - Headless mode persists — Unlike
--duration,--headlessremains enabled until explicitly disabled with--no-headless.--headlesscan be managed via MDM (MDM takes precedence when set).--durationis 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
--durationexpires, monitoring stops automatically. The app remains running (useful for viewing collected data) but won't collect new metrics until restarted