Agent Modules
Beyond the built-in collectors, the Hermes agent supports custom data-collection modules so you can extend inventory with your own checks. A module can be a Python script, a PowerShell script, or an EXE — anything that emits JSON.
Overview#
The agent loads modules with hot-reload configuration, so you can add or change a module without rebuilding the agent. Two config keys control where modules and their working data live:
| Config key | Default | Purpose |
|---|---|---|
Agent:ModulesPath | Modules | Directory the agent scans for custom modules |
Agent:DataPath | Data | Working data directory available to modules |
A module is a Python, PowerShell, or EXE program that prints a JSON object to
stdout. The agent runs it on the inventory cycle and ships the output back to the
server alongside the built-in inventory.
How module data flows#
Custom module output is stored server-side in the inventory record's
ModuleDataJson column. In the console it is surfaced as a tab on the device page,
shown alongside the built-in inventory modules so your custom checks sit next to the
standard collectors for that device.
Authoring a module#
The general shape is straightforward: place an executable script in the agent's modules path
that writes a single JSON object to stdout. Keep the runtime short — the module
runs on every inventory cycle — and exit with a non-zero status code to signal failure.
A minimal PowerShell module that reports pending-reboot state:
@{ pendingReboot = $true } | ConvertTo-Json
Drop that script into the directory named by Agent:ModulesPath; the agent picks
it up on the next cycle and its JSON lands in ModuleDataJson for the device.
A full, formal module-authoring reference — manifest schema, scheduling, and signing — is still being documented. Today, custom modules follow the drop-in script shape described above. This page describes what exists now; expect the authoring surface to be formalized as it stabilizes.
Built-in collectors#
The standard inventory modules — os, hardware, software,
services, updates, features, network,
storage, memory, processors, metrics, and
more — are catalogued on the Built-in Collectors page. Custom
modules appear alongside them on the device page.