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.