Drivers and providers
Use an application driver when a native API exposes richer operations than generic UI automation, or when the integration needs a long-lived connection or application state. Plugins remain useful for narrower one-shot operations.
The driver is not the authority
Section titled “The driver is not the authority”agent → CLI/MCP → broker → policy/audit → DriverProvider → sandboxed driver → applicationThe owner assigns provider identity and pins the executable digest. A strict manifest declares application metadata, resources and requested mounts. Capability names stay in the assigned driver namespace, and the manifest cannot create policy grants.
The versioned handshake
Section titled “The versioned handshake”The persistent stdio contract checks identity and protocol, enumerates capabilities with a catalogue digest, probes health, accepts descriptor-pinned requests, and supports explicit shutdown. The v1 host rejects advertised interfaces that are not yet negotiated, including dynamic capability changes, provider events and cooperative cancellation.
Start with the local authoring tools
Section titled “Start with the local authoring tools”computerctl driver scaffold myapp ./semwright-myapp --sdk-path /absolute/path/to/semwright/crates/driver-sdkcomputerctl --json driver validate ./driver.jsoncomputerctl --json driver inspect ./driver.jsoncomputerctl --json driver conformance ./driver.jsonBuild the scaffold and set the actual executable path and SHA-256 before validation. These are authoring examples; scaffolding neither installs a driver nor authorizes its operations.
Conformance is necessary, not complete application certification
Section titled “Conformance is necessary, not complete application certification”The host stages verified bytes in Bubblewrap and Landlock, scrubs the environment, and applies bounded resources. Conformance checks the pinned executable and protocol in that sandbox. A useful driver also needs version-specific application tests, failure cases, reference lifecycle coverage and accurate compatibility notes.
Explore the driver catalogue. KiCad has its own GPL-3.0-or-later integration license; do not infer its license from the Rust core.
Source: Driver SDK contract, reviewed 22 September 2026.