MeshanicsDocs
Device agent

Overview & design

Meshanics is not agentless. A small agent runs on every managed device and is the thing that actually verifies, applies, and rolls back updates. What is zero-integration is your application and model code: it rides in containers and artifacts on top of a signed base, with no Meshanics-specific code linked into it. The agent does the trust-sensitive work so your software does not have to.

What the agent is

The agent is a single static Go binary with no external runtime dependencies. It ships for ARM64 and AMD64, targets industrial and edge-AI hardware (NVIDIA Jetson, Raspberry Pi compute modules, generic x86-64), and runs as a hardened systemd service. It does not require a container runtime to exist on the device — that is only needed when you actually deliver containerised payloads.

What it does on each device

The agent's job is a short, auditable loop:

  • Identify — it detects the hardware profile (SoC, architecture, memory, CPU cores, accelerators such as an NVIDIA GPU or Edge TPU, OS and kernel version) and reports it on enrollment.
  • Connect — it registers and heartbeats to the platform over mutual TLS, using the device's own certificate and the fleet CA.
  • Apply — when an artifact is assigned to it, it downloads, verifies, and atomically swaps the new payload into place.
  • Prove health — it runs the update's health probe contract, and if the probe fails it automatically rolls back to the previous good state.

Verification-first by design

There is no update path that skips verification. The agent only enables over-the-air updates when it has both an artifact server address and a provisioned trust anchor; without the trust anchor it simply does not apply anything. Every payload is checked against signed update metadata before it is touched, and the agent re-validates the payload's own descriptor on-device rather than trusting the control plane to have done so. The container registry and artifact server are treated as untrusted transport: content is pinned by digest, so a lying registry can only fail a pull, never substitute content. There is no insecure or "skip verification" mode, in any build.

Small, boring, and auditable

The agent is deliberately minimal. A smaller binary with a narrow surface is easier for a security reviewer to read end to end, easier to keep within a tight resource budget on constrained hardware, and easier to reason about when it runs as root on a fleet of devices you cannot physically reach.