Skip to content

Commands & Config

Command Execution

The API sends commands to agents over WebSocket. Each command has an action and optional payload:

ActionDescriptionPayload
run_scriptExecute a script{ scriptId, args?, timeout? }
collect_inventoryGather full system inventory
discovery_scanRun network discovery{ subnet, scanType }
restart_serviceRestart a system service{ serviceName }
file_transferInitiate file transfer{ direction, path }
upgrade_agentSelf-upgrade to new version{ version, downloadUrl }
terminal_startOpen a remote terminal session
terminal_inputSend input to terminal{ data }
terminal_resizeResize terminal{ cols, rows }

Command Flow

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.

Service Management

Linux (systemd)

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

macOS (launchd)

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

Windows (Services)

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

Heartbeat Telemetry

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

User-Mode Helper

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

  • Desktop notifications
  • User-specific inventory (installed apps, browser extensions)
  • Session-aware remote desktop

Install the user helper:

Terminal window
# Linux
sudo make install-user-helper
systemctl --user enable breeze-agent-user
# macOS
sudo make install-user-helper
# LaunchAgent auto-starts at login