Skip to main content

External Adapters

External adapters extend SLAW with AI runtimes or execution models not covered by the built-in adapters. They are distributed as npm packages and installed via the SLAW plugin system.

How external adapters work

An external adapter is an npm package that exports a ServerAdapterModule-compatible object. SLAW loads it at startup from the adapter plugin store and registers it alongside the built-in adapters.

When SLAW encounters an agent whose adapterType matches a loaded external adapter, it calls the adapter's execute() function exactly as it does for built-in adapters.

An external adapter can optionally include a ui-parser.js bundle. When present, SLAW loads it in a sandboxed Web Worker so agent transcripts render with custom formatting in the SLAW UI — see Adapter UI Parser.

Installing an external adapter

External adapters are managed through the SLAW UI under Settings → Adapters, or via the SLAW API:

POST /api/squads/{squadId}/adapter-plugins
{
"packageName": "@acme/my-adapter",
"version": "1.0.0"
}

After installation, the adapter type becomes available when creating or editing agents.

Adapter config schema

External adapters can declare a JSON Schema for their config, which SLAW uses to render a config form in the UI. If no schema is declared, the UI falls back to raw JSON input.

Overriding a built-in adapter

An external adapter whose type matches a built-in adapter type (for example claude_local) replaces the built-in UI parser for that type while it is enabled. Disabling or removing the external override restores the original built-in parser transparently.

Disabling an external adapter

Adapters can be toggled in Settings → Adapters without uninstalling them. Disabled adapters remain in the plugin store but do not run. Agents configured with a disabled adapter type remain in their assigned state; their next Heartbeat will fail with an adapter-not-found error.

Next steps