Every command the cloud can send to a VelaOS agent. 45+ commands across device lifecycle, apps, policy, diagnostics, Pi hardware.
Commands are published to vela/{device_id}/commands with QoS 1. Every command has a command_id; the agent replies on vela/{device_id}/response with status: completed or failed.
Example command envelope json
{
"cmd": "reboot",
"command_id": "6a7b8c9d-1234-5678-9abc-def012345678",
"delay": 30,
"ts": 1744545600
}Example response json
{
"command_id": "6a7b8c9d-1234-5678-9abc-def012345678",
"status": "completed",
"ts": 1744545630
}Device lifecycle Command Description Since reboot Reboot the device (optional delay){ "delay": 30 } 1.0 wipe Factory reset — erases all data 1.0 factory_reset Alias for wipe 1.0 lock Lock the screen immediately 1.0 selective_wipe Clear managed app data + certificates, keep OS 1.0 approved Cloud notifies device it was approved by admin 1.0
App lifecycle Command Description Since app_install Install APK via URL with SHA-256 verify{ "package": "com.x.y", "url": "https://...", "hash": "abc..." } 1.0 app_remove Uninstall an app 1.0 start_app Launch an app{ "package_name": "com.x.y" } 1.0 force_stop_app Kill a running app 1.0 disable_app Hide / disable app (DPM.setApplicationHidden) 1.0 enable_app Re-enable a hidden app 1.0 block_uninstall Prevent user from uninstalling{ "package_name": "...", "blocked": true } 1.0 clear_app_data Clear cache + user data for an app 1.0 set_permission Grant/deny/default runtime permission{ "package_name": "...", "permission": "android.permission.CAMERA", "state": "granted" } 1.0 app_config Push managed config bundle to an app 1.0
Policy Command Description Since policy_update Apply new policy JSON (triggers compliance report) 1.0 policy_push Alias for policy_update 1.0 config_sync Re-apply currently cached policy 1.0
Certificates Command Description Since install_cert Install cert + private key into KeyStore{ "cert_pem": "...", "key_pem": "...", "fingerprint": "..." } 1.0 get_installed_certs List installed CA certificates 1.0 reset_password Reset device password using reset token{ "password": "...", "token": "hex..." } 1.0
System Command Description Since set_system_setting Write to Settings.System/Secure/Global{ "namespace": "system", "key": "...", "value": "..." } 1.0 set_time Set system time and/or timezone 1.0 set_wallpaper Download wallpaper URL and set it 1.0 show_message Display toast or dialog on device 1.0 send_intent Broadcast or launch activity/service{ "type": "broadcast", "action": "..." } 1.0 download_file Download a file from cloud storage 1.0
Remote control Command Description Since execute_shell Run shell command with timeout{ "command": "...", "timeout_seconds": 30 } 1.0 file_ops delete / mkdir / write / copy (path-restricted) 1.0 input_tap Simulate touch at x,y 1.0 input_text Type text 1.0 input_keyevent Send Android keyevent 1.0
Diagnostics Command Description Since collect_logs Collect logcat + bundle to storage 1.0 screenshot Capture and upload screenshot 1.0 network_diagnostics Run ping / traceroute / DNS lookup 1.0 play_integrity_check Return device attestation info 1.0 request_bugreport Trigger Android bugreport collection 1.0
Updates Command Description Since ota_update Trigger OS OTA download + install (ROM-dependent) 3.0 agent_update Self-update the agent APK 2.0
Pi hardware Command Description Since hdmi_cec Display power via CEC (standby/on/status){ "action": "standby" } 2.1 set_cpu_governor Set CPU scaling governor{ "governor": "performance" } 2.1 gpio_write Write to GPIO pin{ "pin": 17, "value": 1 } 2.1 gpio_read Read GPIO pin state 2.1 set_adb_network Enable/disable ADB over network 2.1
Batch Command Description Since process_subcommands Run up to 20 subcommands sequentially{ "subcommands": [{ "cmd": "..." }, ...] } 2.1
Unknown commands The agent replies status: unsupportedto any command it doesn't recognize. This lets you roll out new command types without breaking older agent versions — the cloud detects unsupportedand surfaces it in the device detail page as "agent needs upgrade".
Next steps