Skip to main content
A setup action provider is the component that turns a visible Gandalf inventory row into an executable edit, remove, add, install, update, uninstall, or dry-run action. Providers are the boundary between “you can see this” and “you can change this.”

Visibility is not executability

Every row in the Console tabs comes from a scanner. Scanners run read-only, so many rows show up even when Gandalf has no way to safely modify them. Rather than pretend an action exists, Gandalf marks each action as available or unavailable based on whether a provider can:
  1. Describe the target (which file, which entry, which agent, which scope).
  2. Describe the expected effect.
  3. Produce a Review Changes preview.
  4. Provide the execution mechanism.
If any of those pieces is missing, the action is unavailable with a concrete reason. There is no descriptive no-op fallback.

Available vs unavailable actions

Actions surface in two states in the TUI:
  • Available: a provider is registered, a preview can be built, and the mutation can be executed after Review Changes.
  • Unavailable: no provider, or the provider explicitly declined. Gandalf shows the reason (for example: “no add-source provider for this marketplace kind” or “unsupported evidence kind for update”).

What providers exist today

The support matrix in Support Matrix is authoritative, but at a high level for the current release:
  • Codex: provider-backed actions are available where discovered evidence has a concrete action provider. Marketplace-originated Review Actions produce non-mutating setup guidance where source metadata is sufficient.
  • Claude Code: reviewed install is available for eligible user-scope Claude Code marketplace plugins with verified rollback. Update, uninstall, add-source, and remove-source remain unavailable without a concrete mutation provider.

The restore path is provider-agnostic

Restore does not go through per-row providers. It uses an Apply Handler Registry keyed by evidence kind. Kinds without dedicated handlers surface in the restore plan as unsupported items with a reason, rather than getting force-fitted into whole-file replacement. See snapshots and Review Changes.