Plugins

August 20, 2026 · View on GitHub

For the complete system design and end-to-end authoring tutorial, read the lla architecture and Plugin Platform handbook. This page is a concise user guide.

Plugin Platform v3 packages are self-contained directories containing a schema-3 manifest, a native dynamic library or WebAssembly component, and a SHA-256 inventory.

my-plugin/
├── plugin.toml
├── libmy_plugin.so        # .dylib on macOS, .dll on Windows
├── checksums.toml
└── README.md              # optional

For a WebAssembly package, the native library is replaced by the .wasm component named by plugin.entrypoint. Loading it requires an lla host built with --features wasm-plugins; official Linux, macOS, and Windows release binaries include that feature, while the NetBSD release binary intentionally does not.

Install plugins

Install the official bundle from the latest release:

lla install --prebuilt

Windows AMD64 and ARM64 releases provide matching .zip bundles containing native DLLs and the portable WASM components.

Build and install plugins from a Git repository or a local source directory:

lla install --git https://github.com/chaqchase/lla
lla install --dir /path/to/plugin

Source installs build the entrypoint and create the checksum inventory. A prebuilt package must already contain a complete checksums.toml; installation fails if any covered file has changed.

Inspect an installation

lla plugin doctor
lla plugin info file_hash
lla plugin permissions file_hash

plugin doctor compares the packaged and compiled manifests, checks registered handlers and output schemas, validates checksums, and exercises the plugin contract without using the normal plugin data directory.

Run an action

lla plugin run <plugin> <action> -- <arguments>
lla plugin run <plugin> <action> --output json -- <arguments>

Supported output formats are human, json, ndjson, and csv. The older lla plugin <plugin> <action> form is deprecated during the 0.6.x series.

Interactive actions require a terminal and cannot be requested with a machine output format.

Permissions

Native plugins are trusted code. Their permissions are declarations presented to the user but are not an operating-system sandbox.

WebAssembly plugins are default-denied. Approved grants are persisted in plugin-grants.toml, and an update that requests broader access prompts again. WebAssembly packages can receive scoped filesystem preopens, exact-domain WASI HTTP access, and gated clipboard or URL-opening host calls. Raw sockets and subprocess execution are unavailable.

See the catalog for bundled plugins, the development guide to create one, or the migration guide when upgrading from an older lla release.