Skip to main content
Extensions add behaviour to a node and panels to Mission Control. Each one is signed, reviewed at install time and installed on one node at a time. An extension on one drone stays off the others until you install it there too.
Drone Extensions page listing three running extensions with Disable and Configure, Install from file and extension parameters

A drone's Extensions page with three installed extensions and their parameters.

Where to install

Open the node, go to Agent, and under Software click Extensions. The page, titled Extensions on and the node’s name, has:
  • Installed on this drone: every extension on this node, with its status (Running, Enabled, Disabled, Crashed or Installed) and its actions.
  • The list of available extensions from the registry, each with an Install button.
  • Install extension on this drone and Install from file, for a signed .adosplug on your computer.
A node with nothing installed shows “No extensions installed on this drone yet.” Settings → Extensions is a read-only overview of what is installed across your fleet, plus the registry list. It does not install by itself: Install on a node… asks which node, then opens that node’s Extensions page with the extension selected.

Install sources and transport

You don’t pick the transport; the dialog does, and names it while it installs (“LAN direct” or “cloud relay”).

Review and install

Mission Control opens one review page before anything reaches the node. It shows:
  • the extension’s name, id, version and description;
  • the publisher, the signer and the trust badge (Altnautica, Verified or Community);
  • compatibility with this node’s agent version, board and profile;
  • the requested permissions, grouped, with a count;
  • the flight controller parameters the extension expects and what it contributes to Mission Control;
  • its resource impact.
Click Install to install and grant them; the button names how many permissions it grants. Progress then runs Uploading, Queued, Commanded, Downloading, Verifying, Installing, Enabling, Completed over the cloud relay, or Verifying, Installing, Enabling, Completed over the LAN. Verifying is where the node checks the signature; see Signatures and trust. When the install finishes, the dialog tells you whether the extension is enabled. A cloud install is queued until the node next checks in. If the vehicle is armed, Mission Control asks you to confirm (“Vehicle is armed”) before it installs, enables, disables or removes an extension, because the action can drop the link or change flight behaviour.

Enable, configure and remove

Each installed extension’s row has:
  • Enable or Disable, to start or stop it on the node.
  • Configure, which opens the extension’s detail page with its Overview, Permissions and Events tabs.
  • View permissions, which opens the Permissions tab, where you can revoke a grant. The extension gets capability_denied the next time it uses that capability.
  • Uninstall, in the row’s menu. It asks “Uninstall this extension?” and clears the extension’s data on that node.
Extensions that declare parameters get a card in the Parameters section of the same page. An extension’s tabs and parameter group labels show in your Mission Control language when the extension ships a translation for it. When the node stops or refuses an extension (a failed signature or digest check, a revoked signer), the row shows “Stopped by the node:” followed by the node’s reason, and the detail page shows it as Failure reason. Mission Control reads the reason over the LAN, so it appears only for a node it can reach directly.

Updates

When a newer version is available, the row shows Update available. A major version bump, new permissions or a board mismatch needs your review before it installs. The update settings show the current and latest versions, whether auto-update is on and any version pin. Auto-update and pins are set on the node with ados plugin auto-update and ados plugin pin; see the Plugin CLI reference.

Where an extension runs

  • Mission Control only: the extension loads as an iframe in Mission Control and never touches the node.
  • Agent and Mission Control: the agent half runs as its own sandboxed unit on the node; the Mission Control half loads as an iframe and talks to it through the plugin host.
  • Agent only: the extension runs on the node and contributes no panels.

Install across a fleet

There is no fleet-wide install. Install per node, from each node’s Extensions page or through Settings → Extensions and Install on a node….

Next steps

Extensions catalog

The first-party extensions you can install.

Extensions on the agent

The CLI, signatures, permissions and isolation on the node.

Your first plugin

Write your own extension.
Last modified on October 11, 2026