CONCEPT AND DEVELOPMENTUNMANNED SPORT · #bezpiLOTa · KAIROS DRONE AGENTDocumentation
#bezpiLOTa→Drone Agent→Extensions
KairOS / DRONE AGENT / 06

A signed package receives a limited set of hardware, MAVLink, telemetry, mission and network capabilities, runs as a separate process and communicates with the host through verifiable IPC. An extension failure must not stop flight-critical services.

NOT RELEASED

The extension model and CLI are described as a target contract; the KairOS registry, signing root and public SDK have not yet been released.

KairOS repository ↗
29capability permissions
ED25519package signature
03built-in plugins
CGROUPresource isolation
01
SIGNED EXTENSION SYSTEM

Five protective boundaries

01

Package

An extension is packaged as a .kairosplug with a manifest, version, entry point, requested capabilities and signature.

02

Trust

The Ed25519 signature is verified before extraction; the revocation list is applied at boot. Unsigned packages are allowed only in developer mode.

03

Operator grant

Permissions are shown to the user before installation; sensitive permissions require a separate additional confirmation.

04

Process boundary

Each plugin runs in its own subprocess/cgroup with CPU, memory and PID limits.

05

Capability IPC

msgpack RPC over a Unix socket verifies the capability token on every host API call.

02
PERMISSIONS

Permissions are grouped by actual resource

GroupExample capabilities
HardwareUART, I²C, SPI, GPIO, USB serial/UVC, CSI
MAVLinkRead, write and registration of an independent component
TelemetrySubscribe, extend and publish events
Sensors / payloadRegister a sensor or payload interface
MissionRead, write and record mission data
NetworkHTTPS egress only to the manifest allowlist

A permission does not grant direct access to the entire system. For example, a UART permission should grant a specific device or brokered handle, while network egress should cover only predeclared domains. The operator can revoke a grant from Mission Control.

03
AUTHORING

Manifest and minimal plugin context

yamlMinimal KairOS manifest
name: cell-balance-monitor
version: 0.1.0
agent:
  entry: cell_balance:run
  capabilities:
    - telemetry.read
    - event.publish
KairOS target interface: the command becomes executable only after the corresponding component is released.
pythonAgent extension example
from kairos_sdk import PluginContext

async def run(ctx: PluginContext):
    async for battery in ctx.telemetry.subscribe("telemetry.battery"):
        cells = battery.get("cells", [])
        if cells and max(cells) - min(cells) > 0.15:
            await ctx.events.publish(
                "alert.cell_imbalance",
                {"spread_v": max(cells) - min(cells)},
            )
KairOS target interface: the command becomes executable only after the corresponding component is released.
04
PLUGIN CLI

Installation, permissions, logs and tests

bashTarget KairOS CLI
kairos plugin install ./thermal-cam.kairosplug
kairos plugin enable thermal-cam
kairos plugin list
kairos plugin disable <name>
kairos plugin remove <name>
kairos plugin info <name>
kairos plugin perms <name>
kairos plugin logs <name>
kairos plugin test <path>
KairOS target interface: the command becomes executable only after the corresponding component is released.

install verifies the package and signature, then displays requested permissions. enable starts the process only after a grant. info and perms support audits, logs support diagnostics, and test supports local authoring. Removal must stop the process and clear its scoped state without touching other extensions.

05
BUILT-IN

Three built-in plugins and device extensions

01

geofence

Checks position against permitted zones and publishes an observable event.

02

telemetry-logger

Records selected telemetry streams with storage limits and an explicit lifecycle.

03

mavlink-inspector

Displays frames for diagnostics without changing flight state by default.

04

Thermal camera

FLIR Lepton USB UVC, radiometric Y16, Celsius, palette/isotherm and MAVLink camera surface.

05

MAVLink Gimbal v2

External controller bridge, attitude command/status and component 154.

06
WHAT SHIPS / WHAT FOLLOWS

Separating the first release from later stages

First target releaseNext stage
Local signed installHosted searchable registry
Capability enforcement on every IPC callPublic standalone kairos_sdk package
Built-ins and CLIScaffolder and templates
Permission review and revocationInstall from a Git URL
Test runnerShared driver layer and complete authoring documentation