Command Palette
Search for a command to run...

Action reference

The agent supports 23 action types grouped by what they manage. Where it makes sense, an action carries a desired state (PRESENT or ABSENT) so re-dispatching it against an already-converged device is a no-op. An assignment can also use UNINSTALL mode to force ABSENT on the action without rewriting the action itself.

Packages and updates

ActionBackendsPurpose
PACKAGEapt, dnf, pacman, zypperInstall or remove a named package
UPDATEapt, dnf, pacman, zypperRun update && upgrade (or the distro equivalent)
REPOSITORYapt, dnf, pacman, zypperAdd or remove a package repository with GPG key validation
DEBdpkgInstall a .deb from a URL with SHA-256 verification
RPMrpmInstall an .rpm from a URL with SHA-256 verification
APP_IMAGEAppImageInstall a portable AppImage with system integration
FLATPAKflatpakInstall a Flatpak from the configured remote

Before any package operation the agent self-heals the package manager: clears apt / pacman / zypper locks, recovers an interrupted dpkg --configure -a, remounts read-only filesystems, and repairs DNF history. You don't need to clean up after a failed install before retrying.

System configuration

ActionPurpose
SHELLRun a shell script. An optional detection script gives you idempotency.
SCRIPT_RUNRun a one-shot script with output capture (no idempotency expected)
SERVICEManage a service unit. systemd today; OpenRC, runit, and s6 slots are reserved in the proto but not yet implemented.
FILEManage file content, ownership, and mode. Managed-block diffing for fragments inside a larger file.
DIRECTORYManage directory presence, ownership, and mode
REBOOTReboot the device
SYNCTrigger an out-of-band reconciliation tick

Identity and access

ActionPurpose
USERCreate, modify, or delete a system user with linux_uid, home, shell, and groups
GROUPCreate or delete a system group
SSHManage a user's authorized_keys
SSHDManage sshd_config through priority-ordered Override fragments
ADMIN_POLICYSudoers or doas.conf fragments built from an access_level template
LPSLocal Password Solution. Rotates local-account passwords on a schedule and stores ciphertext at rest.

Security and networking

ActionPurpose
ENCRYPTIONLUKS passphrase rotation with optional TPM or user-passphrase enrolment. GELI and CGD are proto-enum placeholders only.
WIFIManage NetworkManager wireless profiles

Lifecycle

ActionPurpose
AGENT_UPDATESelf-update the agent binary. SHA-256 verified, swap-and-restart.

REBOOT and SYNC are the only instant actions today. They dispatch over the agent's mTLS stream immediately rather than waiting for the next reconciliation tick. Like every dispatch, they carry a CA-signed SignedActionEnvelope whose bytes bind the action type, execution ID, desired state, timeout, and target device. The agent verifies the signature over those exact bytes before acting, so a compromised gateway or Valkey can't forge a fleet-wide reboot or retarget a captured envelope.

There's also a separate "rerun a device's current policy now" operator action — DispatchAssignedActions. That one is not an instant action: it walks the device's assignments and re-dispatches each through the normal action path. Reach for it when you want a device to converge on its assigned state without rebooting or waiting for the next reconciliation tick.

Conventions

  • Most actions are idempotent. REBOOT, SYNC, SCRIPT_RUN, and SERVICE with desired_state: RESTARTED are the explicit exceptions; each says so on its own page.
  • Every action emits an ExecutionCreated event on dispatch and a terminal ExecutionCompleted, ExecutionFailed, or ExecutionTimedOut event when it finishes. The events table is the audit log.
  • SHELL, SCRIPT_RUN, FILE, SERVICE, ADMIN_POLICY, REPOSITORY, ENCRYPTION, and WIFI actions can carry secret content. The audit redactor strips script, detectionScript, content, unitContent, customConfig, gpgKey, presharedKey, psk, and clientKey from the visible trail.
  • Privileged operations dispatch through the SDK's injected sys/exec Runner with Command.Escalate set, never through os/exec directly. The privilege backend — direct root, sudo, or doas — is resolved once at agent startup.
  • Maintenance windows apply per device group. An action assigned to a group with a window only runs during that window in the device's local timezone. See Maintenance windows.