Skip to content

Commands & Config

The Breeze agent supports 120+ commands organized into 30+ categories. Commands are sent from the API to agents over WebSocket, each with an action string and an optional JSON payload.

Dashboard → POST /devices/:id/commands
→ BullMQ job created
→ WebSocket message sent to agent
→ Agent executes command
→ Agent sends result via WebSocket
→ Result stored in database
→ Dashboard receives real-time update

Commands with a term- prefix bypass the database queue and are sent directly over WebSocket for real-time terminal sessions.

Every command returns a standard result envelope:

FieldTypeDescription
statusstringcompleted, failed, or timeout
exitCodeintExit code (0 for success)
stdoutstringJSON-encoded result data or script output
stderrstringError output (scripts only)
errorstringError message when status is failed
durationMsint64Execution time in milliseconds

Enumerate, inspect, and terminate running processes. Cross-platform (Windows, macOS, Linux).

ActionDescriptionKey Payload Fields
list_processesList running processes (paginated)page, limit, search, sortBy, sortDesc
get_processGet details for a specific processpid (required)
kill_processTerminate a process by PIDpid (required), force
ParamTypeDefaultDescription
pageint1Page number
limitint50Results per page (max 500)
searchstring""Filter by name, user, command line, or PID
sortBystring"cpu"Sort field: cpu, memory, pid, name, user
sortDescbooltrueSort descending

Returns ProcessListResponse with processes[], total, page, limit, totalPages.

ParamTypeRequiredDescription
pidintYesProcess ID to inspect

Returns a single ProcessInfo object with pid, name, user, cpuPercent, memoryMb, status, commandLine, parentPid, threads, createTime.

ParamTypeDefaultDescription
pidintRequiredProcess ID to terminate
forceboolfalseIf true, sends SIGKILL instead of SIGTERM

List, inspect, start, stop, and restart system services. Platform-aware: uses systemd on Linux, launchd on macOS, and the Windows Service Control Manager.

ActionDescriptionKey Payload Fields
list_servicesList system services (paginated)page, limit, search, status
get_serviceGet details for a specific servicename (required)
start_serviceStart a stopped servicename (required)
stop_serviceStop a running servicename (required)
restart_serviceRestart a servicename (required)
ParamTypeDefaultDescription
pageint1Page number
limitint50Results per page (max 500)
searchstring""Filter by service name
statusstring""Filter by status (e.g. Running, Stopped)

Returns ServiceListResponse with services[], each containing name, displayName, status, startupType, account, path, description.

get_service / start_service / stop_service / restart_service

Section titled “get_service / start_service / stop_service / restart_service”
ParamTypeRequiredDescription
namestringYesService name (e.g. sshd, nginx, wuauserv)

Query Windows Event Logs. Returns stub responses on non-Windows platforms.

ActionDescriptionKey Payload Fields
event_logs_listList available event logs
event_logs_queryQuery events from a loglogName, level, source, eventId, page, limit
event_log_getGet a specific log entrylogName, recordId
ParamTypeDefaultDescription
logNamestring"System"Log name (System, Application, Security, etc.)
levelstring""Filter: Information, Warning, Error, Critical
sourcestring""Filter by event source
eventIdint0Filter by event ID
pageint1Page number
limitint50Results per page (max 500)
ParamTypeDefaultDescription
logNamestring"System"Log name
recordIdint0Record ID of the entry

Manage Windows Task Scheduler tasks. Returns stub responses on non-Windows platforms.

ActionDescriptionKey Payload Fields
tasks_listList scheduled tasks (paginated)folder, search, page, limit
task_getGet details for a specific taskpath
task_runTrigger a task to run immediatelypath
task_enableEnable a disabled taskpath
task_disableDisable a taskpath
task_historyGet execution history for a taskpath, limit
ParamTypeDefaultDescription
folderstring"\"Task Scheduler folder to list
searchstring""Filter by task name
pageint1Page number
limitint50Results per page (max 500)

task_get / task_run / task_enable / task_disable

Section titled “task_get / task_run / task_enable / task_disable”
ParamTypeRequiredDescription
pathstringYesFull task path (e.g. \Microsoft\Windows\UpdateOrchestrator\Schedule Scan)
ParamTypeDefaultDescription
pathstringRequiredFull task path
limitint50Max entries to return (1-200)

Read and write Windows Registry keys and values. Returns error stubs on non-Windows platforms.

ActionDescriptionKey Payload Fields
registry_keysList subkeys at a registry pathhive, path
registry_valuesList values at a registry pathhive, path
registry_getGet a specific registry valuehive, path, name
registry_setSet a registry valuehive, path, name, type, data
registry_deleteDelete a registry valuehive, path, name
registry_key_createCreate a new registry keyhive, path
registry_key_deleteDelete a registry keyhive, path
ParamTypeDefaultDescription
hivestring"HKLM"Registry hive: HKLM, HKCU, HKCR, HKU, HKCC
pathstring""Registry key path (e.g. SOFTWARE\Microsoft\Windows\CurrentVersion)
ParamTypeDefaultDescription
hivestring"HKLM"Registry hive
pathstring""Key path
namestring""Value name
ParamTypeDefaultDescription
hivestring"HKLM"Registry hive
pathstring""Key path
namestring""Value name
typestring"REG_SZ"Value type: REG_SZ, REG_DWORD, REG_BINARY, REG_EXPAND_SZ, REG_MULTI_SZ, REG_QWORD
datastring""Value data
ParamTypeDefaultDescription
hivestring"HKLM"Registry hive
pathstring""Key path
namestring""Value name to delete

Power management and session locking. Cross-platform.

ActionDescriptionKey Payload Fields
rebootSchedule a system rebootdelay
shutdownSchedule a system shutdowndelay
lockLock the current user session
reboot_safe_modeReboot into Safe Mode with Networking (Windows only)delay
ParamTypeDefaultDescription
delayint0Delay in minutes before executing (0-1440, i.e. max 24 hours)

Platform behavior:

  • Windows: Runs shutdown /r /t <seconds> (reboot) or shutdown /s /t <seconds> (shutdown)
  • Linux/macOS: Runs shutdown -r +<minutes> (reboot) or shutdown -h +<minutes> (shutdown)

No payload parameters. Locks the active session:

  • Windows: rundll32.exe user32.dll,LockWorkStation
  • macOS: CGSession -suspend
  • Linux: loginctl lock-session (falls back to dm-tool lock)

Reboot a Windows device into Safe Mode with Networking. Uses bcdedit to set the safe boot flag before initiating a shutdown. If the shutdown command fails, the safe boot flag is automatically cleared to prevent accidental safe mode boots.

ParamTypeDefaultDescription
delayint0Delay in minutes before rebooting (0-1440)

Browse, read, write, and manage files on the agent filesystem. All paths are cleaned and normalized. Mutating operations are blocked on critical system paths (/, /boot, /proc, /sys, /dev, /bin, /sbin, /usr).

ActionDescriptionKey Payload Fields
file_listList directory contentspath
file_readRead file contentspath, encoding
file_writeWrite content to a filepath, content, encoding
file_deleteDelete a file or directorypath, recursive
file_mkdirCreate a directorypath
file_renameRename or move a fileoldPath, newPath
filesystem_analysisDeep filesystem analysispath, scanMode, maxDepth, topFiles, topDirs, timeoutSeconds
ParamTypeDefaultDescription
pathstringUser home dirDirectory to list

Returns FileListResponse with entries[], each containing name, path, type (file/directory), size, modified, permissions.

ParamTypeDefaultDescription
pathstringRequiredFile path to read
encodingstring"text""text" for UTF-8, "base64" for binary
ParamTypeDefaultDescription
pathstringRequiredFile path to write
contentstring""File content
encodingstring"text""text" or "base64"

Parent directories are created automatically. Files are written with 0644 permissions.

ParamTypeDefaultDescription
pathstringRequiredFile or directory path
recursiveboolfalseIf true, removes directories and all contents. Recursive deletes are blocked on top-level paths (e.g. /home, /var).
ParamTypeRequiredDescription
pathstringYesDirectory path to create (with parents)
ParamTypeRequiredDescription
oldPathstringYesSource path
newPathstringYesDestination path

Deep filesystem scan that identifies large files, large directories, duplicate candidates, temp/cache accumulation, old downloads, unrotated logs, trash usage, and safe cleanup candidates.

ParamTypeDefaultDescription
pathstringRequiredRoot directory to analyze
scanModestring"baseline""baseline" (deep) or "incremental" (targeted)
maxDepthint32 (baseline) / 12 (incremental)Max directory depth (1-64)
topFilesint50Number of largest files to return (1-500)
topDirsint30Number of largest directories to return (1-200)
maxEntriesint10,000,000Max filesystem entries to scan (1,000-25,000,000)
timeoutSecondsint20Scan timeout (5-900 seconds)
followSymlinksboolfalseFollow symbolic links
workersintautoParallel scan workers (1-32; auto-scaled to CPU count)
targetDirectoriesstring[]Specific directories for incremental scans
checkpointobjectResume a previously interrupted scan

The response includes topLargestFiles, topLargestDirectories, tempAccumulation, oldDownloads, unrotatedLogs, trashUsage, duplicateCandidates, cleanupCandidates, and a summary with scan statistics. If the scan is interrupted (timeout or max entries), partial: true is set along with a checkpoint that can be passed to resume.


Open interactive remote terminal (PTY) sessions. Terminal commands use the term- prefix for command IDs and bypass the database queue for low-latency communication.

ActionDescriptionKey Payload Fields
terminal_startOpen a new terminal sessionsessionId, cols, rows, shell
terminal_dataSend input data to a sessionsessionId, data
terminal_resizeResize a terminal sessionsessionId, cols, rows
terminal_stopClose and destroy a sessionsessionId
ParamTypeDefaultDescription
sessionIdstringRequiredUnique session identifier
colsint80Terminal column count
rowsint24Terminal row count
shellstring""Shell to launch (empty = system default)
ParamTypeRequiredDescription
sessionIdstringYesSession to write to
datastringYesInput data (keystrokes, paste content)
ParamTypeDefaultDescription
sessionIdstringRequiredSession to resize
colsint80New column count
rowsint24New row count
ParamTypeRequiredDescription
sessionIdstringYesSession to close

Two remote desktop modes are available: WebRTC-based (legacy) and WebSocket-based streaming.

ActionDescriptionKey Payload Fields
start_desktopStart a WebRTC desktop sessionsessionId, offer, iceServers
stop_desktopStop a WebRTC desktop sessionsessionId
ParamTypeRequiredDescription
sessionIdstringYesUnique session identifier
offerstringYesWebRTC SDP offer
iceServersarrayNoArray of { urls, username, credential } ICE server configs

Returns { sessionId, answer } where answer is the WebRTC SDP answer.

ActionDescriptionKey Payload Fields
desktop_stream_startStart a desktop frame streamsessionId, quality, scaleFactor, maxFps
desktop_stream_stopStop a desktop frame streamsessionId
desktop_inputSend mouse/keyboard inputsessionId, event
desktop_configUpdate streaming configurationsessionId, quality, scaleFactor, maxFps
ParamTypeDefaultDescription
sessionIdstringRequiredUnique session identifier
qualityintDefault configJPEG quality 1-100
scaleFactorfloatDefault configImage scale factor 0.0-1.0
maxFpsintDefault configMaximum frames per second 1-30

Returns { sessionId, screenWidth, screenHeight }.

ParamTypeRequiredDescription
sessionIdstringYesSession to send input to
eventobjectYesInput event object (see below)

The event object fields:

FieldTypeDescription
typestringRequired. Event type: mousemove, mousedown, mouseup, click, dblclick, keydown, keyup, scroll
xintMouse X coordinate
yintMouse Y coordinate
buttonstringMouse button: left, right, middle
keystringKey name for keyboard events
deltaintScroll delta
modifiersstring[]Modifier keys: ctrl, alt, shift, meta
ParamTypeRangeDescription
sessionIdstringRequiredSession to update
qualityint1-100JPEG quality
scaleFactorfloat0.0-1.0Image scale factor
maxFpsint1-30Maximum frames per second

At least one of quality, scaleFactor, or maxFps must be provided.


Execute scripts on managed devices. Supports Bash, PowerShell, Python, and other interpreters. Both script and run_script invoke the same handler.

ActionDescriptionKey Payload Fields
script / run_scriptExecute a scriptcontent, language, timeoutSeconds, runAs, parameters
script_cancelCancel a running scriptexecutionId
script_list_runningList currently running scripts
ParamTypeDefaultDescription
contentstringRequiredScript source code
languagestring"bash"Script type: bash, powershell, python, cmd, etc.
scriptIdstring""Reference ID for tracking
timeoutSecondsint300Execution timeout (5 minutes default)
runAsstring""User context: "" (system), "user" (interactive user), or a specific username
parametersobject{}Key-value map of script parameters
ParamTypeRequiredDescription
executionIdstringYesExecution ID to cancel

No payload parameters. Returns { running: [...], count: N }.


Scan for, download, and install OS patches. Includes pre-flight checks for disk space, AC power, and maintenance windows.

ActionDescriptionKey Payload Fields
patch_scanScan for available patchessource
install_patchesInstall pending patchespatchIds
download_patchesDownload patches without installingpatchIds
rollback_patchesRoll back installed patchespatchIds
ParamTypeDefaultDescription
sourcestring""Audit source identifier (for logging)

Returns { pendingCount, installedCount, warning }. Also sends full patch inventory to the API as telemetry.

Runs pre-flight checks (disk space, AC power, maintenance window, service health) before installation. Fails if any check does not pass.

ParamTypeRequiredDescription
patchIdsstring[]YesArray of patch IDs to install

Downloads patches to local cache without installing. Runs a subset of pre-flight checks (disk space and service health, skips AC power and maintenance window).

ParamTypeRequiredDescription
patchIdsstring[]YesArray of patch IDs to download

Returns { downloadedCount, failedCount, results[] } with per-patch status. Sends progress events via WebSocket during download.

ParamTypeRequiredDescription
patchIdsstring[]YesArray of patch IDs to roll back

Schedule, cancel, and check the status of managed reboots (separate from the immediate reboot system command).

ActionDescriptionKey Payload Fields
schedule_rebootSchedule a deferred rebootdelayMinutes, reason, source, deadline
cancel_rebootCancel a scheduled reboot
get_reboot_statusGet current reboot schedule state
ParamTypeDefaultDescription
delayMinutesint60Minutes until reboot (1-10080, i.e. up to 7 days)
reasonstring"Scheduled by administrator"Reboot reason for logging and user notification
sourcestring"manual"Initiator: "manual", "patch", "policy", etc.
deadlinestringOptional RFC 3339 timestamp to override calculated deadline

No payload parameters. Returns { cancelled: true }.

No payload parameters. Returns the full RebootState object with schedule details.


Collect security status, run malware/threat scans, and manage quarantined threats.

ActionDescriptionKey Payload Fields
security_collect_statusCollect security posture (AV, firewall, etc.)
security_scanRun a security/malware scanscanType, paths, scanRecordId, triggerDefender
security_threat_quarantineQuarantine a detected threatpath, name, threatType, severity, quarantineDir
security_threat_removePermanently remove a threatpath, name, threatType, severity
security_threat_restoreRestore a quarantined filequarantinedPath, originalPath

No payload parameters. Returns the device security status including antivirus, firewall, and encryption state.

ParamTypeDefaultDescription
scanTypestring"quick"Scan type: "quick", "full", or "custom"
pathsstring[]Paths to scan (required when scanType is "custom")
scanRecordIdstring""ID for tracking the scan in the dashboard
triggerDefenderboolfalse(Windows only) Also trigger Windows Defender scan

Returns { scanRecordId, scanType, durationMs, threatsFound, threats[], status }.

ParamTypeDefaultDescription
pathstringRequiredPath of the threat file
namestring""Threat name
threatTypestring"malware"Threat classification
severitystring"medium"Threat severity
quarantineDirstringPlatform defaultCustom quarantine directory
ParamTypeDefaultDescription
pathstringRequiredPath of the threat file to permanently delete
namestring""Threat name
threatTypestring"malware"Threat classification
severitystring"medium"Threat severity
ParamTypeRequiredDescription
quarantinedPathstringYesPath of the quarantined file
originalPathstringYesOriginal file path to restore to

Network discovery, SNMP polling, and connectivity checks for monitoring.

ActionDescriptionKey Payload Fields
network_discoveryDiscover hosts on a networksubnets, methods, portRanges, concurrency
snmp_pollPoll an SNMP device for metricstarget, version, community, oids
network_pingPing a host (ICMP with TCP fallback)target, count, timeout
network_tcp_checkTCP port connectivity checktarget, port, expectBanner, timeout
network_http_checkHTTP/HTTPS endpoint checkurl, method, expectedStatus, expectedBody, verifySsl
network_dns_checkDNS record lookup checkhostname, recordType, expectedValue, nameserver
ParamTypeDefaultDescription
subnetsstring[]CIDR subnets to scan (e.g. ["192.168.1.0/24"])
excludeIpsstring[]IP addresses to skip
methodsstring[]Scan methods: ping, arp, port
portRangesstring[]Port ranges for port scanning (e.g. ["22", "80", "443"])
snmpCommunitiesstring[]SNMP community strings to try
timeoutint2Per-host timeout in seconds
concurrencyint128Max concurrent scan workers
deepScanboolfalseEnable deep scanning (more ports, slower)
identifyOSboolfalseAttempt OS fingerprinting
resolveHostnamesboolfalsePerform reverse DNS lookups
jobIdstring""Job ID for tracking
ParamTypeDefaultDescription
targetstringRequiredTarget IP or hostname
portint161SNMP port
versionstring"v2c"SNMP version: "v1", "v2c", "v3"
communitystring"public"Community string (v1/v2c)
usernamestring""SNMPv3 username
authProtocolstring""SNMPv3 auth protocol
authPasswordstring""SNMPv3 auth passphrase
privProtocolstring""SNMPv3 privacy protocol
privPasswordstring""SNMPv3 privacy passphrase
oidsstring[]OIDs to poll
timeoutint2Request timeout in seconds
retriesint1Number of retries
deviceIdstring""Device ID for tracking
ParamTypeDefaultDescription
targetstringRequiredIP address or hostname
monitorIdstring""Monitor ID for tracking
timeoutint5Timeout in seconds
countint4Number of ping attempts

Falls back to TCP connect (ports 443, then 80) if ICMP fails (common when running without root).

ParamTypeDefaultDescription
targetstringRequiredIP address or hostname
portint443TCP port to check
monitorIdstring""Monitor ID for tracking
timeoutint5Connection timeout in seconds
expectBannerstring""Expected string in the service banner

Returns { status, responseMs } and optionally { banner } if expectBanner is set. Status is "degraded" if the banner does not match.

ParamTypeDefaultDescription
urlstringRequiredFull URL to check (e.g. https://example.com/health)
methodstring"GET"HTTP method
monitorIdstring""Monitor ID for tracking
expectedStatusint200Expected HTTP status code
expectedBodystring""Expected string in response body
verifySslbooltrueVerify TLS certificate
followRedirectsbooltrueFollow HTTP redirects
timeoutint10Request timeout in seconds

Returns { status, statusCode, responseMs } plus { sslExpiry, sslDaysRemaining } for HTTPS endpoints.

ParamTypeDefaultDescription
hostnamestringRequiredHostname to look up
recordTypestring"A"Record type: A, AAAA, MX, CNAME, TXT, NS
monitorIdstring""Monitor ID for tracking
expectedValuestring""Expected value in results
nameserverstring""Custom DNS server (e.g. 8.8.8.8)
timeoutint5Lookup timeout in seconds

Run, list, stop, and verify backups using the configured backup provider.

ActionDescriptionKey Payload Fields
backup_runStart a backup job
backup_listList backup snapshots
backup_stopStop a running backup
backup_verifyVerify backup integrityverificationType
backup_test_restoreTest-restore a snapshotsnapshotId, targetPath
backup_cleanupClean up expired snapshots

No payload parameters. Requires backup to be configured on the agent. Returns { jobId, status, snapshotId, filesBackedUp, bytesBackedUp }.

{ "action": "backup_run", "payload": {} }

No payload parameters. Returns { snapshots[], count }.

No payload parameters. Stops the currently running backup job.

ParamTypeDefaultDescription
verificationTypestring"integrity"integrity (checksum) or test_restore (extract to temp)
{
"action": "backup_verify",
"payload": { "verificationType": "test_restore" }
}
ParamTypeRequiredDescription
snapshotIdstringYesSnapshot to test-restore
targetPathstringNoTemporary restore destination
{
"action": "backup_test_restore",
"payload": {
"snapshotId": "snap-20260329-0200",
"targetPath": "/tmp/restore-test"
}
}

No payload parameters. Removes snapshots that exceed the configured retention policy.


ActionDescriptionKey Payload Fields
collect_softwareCollect installed software inventory

No payload parameters. Runs the software collector and returns the full list of installed applications with name, version, publisher, install date, and size.


Transfer files to/from managed devices.

ActionDescriptionKey Payload Fields
file_transferInitiate a file transferdirection, path, transferId
cancel_transferCancel an in-progress transfertransferId

Payload is passed directly to the file transfer manager. Key fields include the transfer direction and file path.

{
"action": "file_transfer",
"payload": {
"direction": "download",
"path": "/var/log/application.log",
"transferId": "xfer-a1b2c3d4"
}
}
ParamTypeRequiredDescription
transferIdstringYesTransfer ID to cancel
{
"action": "cancel_transfer",
"payload": { "transferId": "xfer-a1b2c3d4" }
}

These commands require the user-mode helper process to be running in a user’s session.

ActionDescriptionKey Payload Fields
notify_userSend a desktop notificationtitle, body, icon, urgency, username, actions
tray_updateUpdate the system tray icon/menustatus, tooltip, menuItems
ParamTypeDefaultDescription
titlestring"Breeze Agent"Notification title
bodystringRequiredNotification body text
iconstring""Icon path or identifier
urgencystring"normal"Urgency level: "low", "normal", "critical"
usernamestring""Target username (empty = first available session)
actionsstring[]Action button labels
ParamTypeDefaultDescription
statusstring"ok"Tray icon status indicator
tooltipstring"Breeze Agent"Tooltip text
menuItemsarrayArray of { id, label, enabled } menu items

Terminal window
sudo systemctl start breeze-agent
sudo systemctl stop breeze-agent
sudo systemctl restart breeze-agent
sudo systemctl status breeze-agent
# View logs
sudo journalctl -u breeze-agent -f
Terminal window
sudo launchctl load /Library/LaunchDaemons/com.breeze.agent.plist
sudo launchctl unload /Library/LaunchDaemons/com.breeze.agent.plist
# View logs
sudo log show --predicate 'process == "breeze-agent"' --last 1h
Terminal window
Start-Service breeze-agent
Stop-Service breeze-agent
Restart-Service breeze-agent
Get-Service breeze-agent
# View logs
Get-EventLog -LogName Application -Source breeze-agent -Newest 50

The API runs a stale command reaper every 2 minutes that cleans up commands stuck in pending or sent status. Each command type has a timeout tier that determines how long the system waits before marking it as failed:

TierDurationCommand types
Short5 minProcess management, service management, event logs, scheduled tasks, registry, file operations, screenshots, computer actions, security status collection
Medium30 minSecurity scans, patch scans, software uninstall, filesystem analysis, safe mode reboot, self-uninstall, evidence collection, containment actions, reliability metrics, CIS remediation
Long2 hoursPatch installation, backup verify/test-restore/cleanup, CIS benchmarks, sensitive data scans, file encryption/secure delete/quarantine
ExcludedNever reapedTerminal sessions (terminal_start, terminal_data, terminal_resize, terminal_stop)

Script commands use the script’s own timeoutSeconds value (default 300s) plus a 5-minute grace buffer, so the server timeout is always slightly longer than the agent-side timeout.

When a command times out, it is marked failed with timedOutBy: 'server' in the error message.


The agent sends a heartbeat every 60 seconds containing:

FieldDescription
cpuCPU usage percentage
memoryMemory usage (used/total)
diskDisk usage per mount point
networkNetwork interface stats
uptimeSystem uptime
osOS name and version
hostnameCurrent hostname
agentVersionRunning agent version

The agent includes a user-mode helper process for operations that require user-session context:

  • Desktop notifications (notify_user)
  • User-specific inventory (installed apps, browser extensions)
  • Session-aware remote desktop
  • Script execution as a specific user (runAs)
  • System tray icon updates (tray_update)

Install the user helper:

Terminal window
sudo make install-user-helper
systemctl --user enable breeze-agent-user