Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.altnautica.com/llms.txt

Use this file to discover all available pages before exploring further.

A plugin lets you add code, hardware drivers, UI panels, and behaviors to ADOS without forking the core projects. One manifest, signed, gets installed on a drone and a ground station; from there it runs in isolation with explicit capability grants.

Two halves, one plugin

A single manifest.yaml declares both halves. Either half is optional.
  • Agent half (Python): runs as a supervised subprocess on the drone. cgroup-enforced CPU, RAM, and PID limits. Talks to the host over a Unix domain socket using msgpack.
  • GCS half (TypeScript): runs in a sandboxed iframe inside Mission Control. sandbox="allow-scripts", no same-origin, no top-navigation. Talks to the host over postMessage with HMAC-signed capability tokens.
The host gates every privileged call against the manifest. A plugin that did not declare vehicle.command cannot send vehicle commands, and the operator must approve each declared permission at install time.

Where to start

Quickstart

Scaffold a plugin and see it running in five minutes.

Your first plugin

Full walkthrough using the Battery Health Panel as the worked example.

Manifest

Every field. Every permission. The schema the host enforces.

Permissions

The capability taxonomy and the four-level risk badge.

Distribution at v0.1

Plugin authors ship signed .adosplug archives. Operators install them by drag-drop in Mission Control -> Settings -> Plugins, or by ados plugin install <file>.adosplug on the agent. The hosted registry lands later; until then, GitHub Releases is the recommended publishing channel. See distribution and local install.

License

Plugins are independent of the ADOS core projects. We recommend GPL-3.0-or-later to match the host, but any OSI-approved license works. Closed-source plugins are allowed; they just cannot link against ADOS GPL code at the source level.