PluginDriver feature matrix
This page preserves the 2026-09-17 historical source snapshot below. Its
always/never/auto vocabulary and unsupported-policy statuses do not describe
the current API. For current authoring controls, read
Agent plugin policy,
bundled Driver mappings, or the
selected Driver's GET /installation capabilities. For current hosted discovery,
see Create Agent plugins.
The local docs preview adds filters and expandable evidence to this historical table. GitHub shows the generated table with pinned source/test links. Both use the same snapshot data. No live runtime was exercised for that review. The testing guide distinguishes older runtime results from the current verification gap.
PluginDriver feature matrix
The status filter matches either Driver cell. Test links identify repository coverage; source support is not live-runtime proof.
8 rows
| Capability | Scope | occ-plugin (embedded OpenClaw) | codex-plugin (dedicated Codex) |
|---|---|---|---|
| DiscoveryLIST/QUERY plugins | Discover available plugins through the controller catalog and HTTP inventory. Whether OCC and API clients can list available plugins. Agent reads show saved selections; they do not query the available catalog. | PartialInternal listCatalog returns the bundled Diffs catalog. No HTTP plugin inventory or catalog-query endpoint is exposed. Test coverageLive proof: unknown/not run | PartialInternal listCatalog requires paired codexExecutable/codexHome and a ChatGPT-backed profile. No HTTP plugin inventory or catalog-query endpoint is exposed. Test coverageLive proof: unknown/not run |
| Policyapproval mode: always | Run without a plugin approval prompt. Request plugin calls without asking for approval. Other platform permissions and workload restrictions still apply. | SupportedEnable the selected plugin without a plugin approval step; other native restrictions still apply. Test coverageLive proof: unknown/not run | PartialNative app mode approve plus bridge allow_destructive_actions=true; explicit auto_review is rejected. Sourceapps/controller/src/drivers/plugin/runtime-translator.ts:271-290, apps/controller/src/drivers/plugin/runtime-translator.ts:306-315, apps/controller/src/drivers/plugin/runtime-translator.ts:365-384 Test coverageLive proof: unknown/not run |
| Policyapproval mode: auto | Use native automatic approval semantics. Let the native runtime decide when approval is needed. This does not mean approve every call automatically. | UnsupportedNo equivalent generic native OpenClaw plugin approval control; startup rejects auto. Test coverageLive proof: unknown/not run | SupportedSupported app-only selections use native auto approval and bridge allow_destructive_actions=auto. Sourceapps/controller/src/drivers/plugin/runtime-translator.ts:306-315, apps/controller/src/drivers/plugin/runtime-translator.ts:365-384 Test coverageLive proof: unknown/not run |
| Policyapproval mode: never | Block selected-plugin execution. Prevent the Agent from executing the selected plugin, even if the package remains installed. | SupportedDisable the selected plugin; its package remains installed. Test coverageLive proof: unknown/not run | SupportedNo selected native app entry and bridge disabled; install identity remains and installation still runs. Sourceapps/controller/src/drivers/plugin/runtime-translator.ts:344-404, apps/controller/src/drivers/plugin/runtime-translator.ts:306-315, apps/controller/src/drivers/plugin/runtime-translator.ts:365-384 Test coverageLive proof: unknown/not run |
| Policyapproval mode: prompt_human | Review every plugin call using a human user. Display label for approvalMode: prompt with approvalsReviewer: user. The request asks for review before every call; this label is not an API enum value. | UnsupportedEvery-call prompting and explicit reviewer selection are unsupported; startup rejects this policy. Test coverageLive proof: unknown/not run | UnsupportedStartup rejects prompt, including with user. Reviewer selection is available with supported auto policy, but does not force review of every call. Sourceapps/controller/src/drivers/plugin/runtime-translator.ts:271-280, apps/controller/src/drivers/plugin/runtime-translator.ts:365-384 Test coverageLive proof: unknown/not run |
| Policyapproval mode: prompt_auto_review | Review every plugin call using the native automatic reviewer. Display label for approvalMode: prompt with approvalsReviewer: auto_review. The request asks for review before every call; this label is not an API enum value. | UnsupportedEvery-call prompting and explicit reviewer selection are unsupported; startup rejects this policy. Test coverageLive proof: unknown/not run | UnsupportedStartup rejects prompt, including with auto_review. Reviewer selection is available with supported auto policy, but does not force review of every call. Sourceapps/controller/src/drivers/plugin/runtime-translator.ts:271-280, apps/controller/src/drivers/plugin/runtime-translator.ts:365-384 Test coverageLive proof: unknown/not run |
| PolicyDestructive-action and write overrides | Override write/destructive-action policy. Set different approval rules for write operations or destructive actions across a plugin. Enforcement needs reliable action classifications. | UnsupportedBoth destructiveActions and writes are rejected at startup. Test coverageLive proof: unknown/not run | UnsupportedCategory overrides are rejected; reliable tool metadata is unavailable. Test coverageLive proof: unknown/not run |
| PolicyPer-tool enablement and approval overrides | Override individual tool policy. Enable, disable, or set approval rules for individual tools inside a plugin, instead of using only the plugin-wide policy. | UnsupportedAny tools map is rejected at startup; catalog tools is null. Test coverageLive proof: unknown/not run | UnsupportedAny tools map is rejected; curated catalog projection reports tools:null. Test coverageLive proof: unknown/not run |
Update this snapshot
Edit docs/assets/plugin-driver-matrix.json after reading the current reference,
implementation, and focused tests. Set baseline to the reviewed full commit,
update reviewedAt, and verify each source range at that commit. Keep native
enforcement separate from API acceptance and preserve proof limitations.
From the repository root, regenerate and validate:
node scripts/generate-plugin-matrix.mjsnode scripts/generate-plugin-matrix.mjs --checkpnpm docs:checkpnpm docs:buildFollow local preview to open
/reference/drivers/plugin-matrix/. Contributor test and runtime prerequisites
remain in the plugin testing guide.
