Skip to main content

Module installers

Module installers 

Source
Expand description

Multi-platform installer registry for spool hook runtime.

Borrowed from Trellis’ Configurator pattern but slimmed down: each AI client (Claude Code, Codex, Cursor, …) implements Installer and is routed through the unified spool mcp install/uninstall/doctor CLI.

R1 scope: only claude::ClaudeInstaller is wired. The trait + the shared helper module are designed so that adding a new client becomes “copy claude.rs, swap config path / hook layout”.

§Boundaries

  • Installers MUST be idempotent — re-running install on an already installed client either no-ops or reports a recoverable conflict.
  • Installers MUST stay side-effect-free in dry_run mode: only build a InstallReport / UninstallReport without touching disk.
  • Installers MUST keep all transport / API key concerns out of band: they only stitch local config files. Hooks are shipped as inert shell scripts that shell out to spool.

Modules§

claude
Claude Code installer adapter.
codex
Codex CLI installer adapter.
cursor
Cursor AI installer adapter.
opencode
OpenCode installer adapter.
shared
Cross-installer helpers.
templates
Compile-time-embedded hook / command / skill templates for AI clients.

Structs§

DiagnosticCheck
DiagnosticReport
Outcome of a diagnose call (used by spool mcp doctor).
InstallContext
Inputs shared by all installer entry points.
InstallReport
Outcome of an install call.
UninstallReport
Outcome of an uninstall call.
UpdateReport
Outcome of an update call.

Enums§

ClientId
Stable identifier for an AI client target.
DiagnosticStatus
InstallStatus
UninstallStatus
UpdateStatus

Traits§

Installer
Single per-client installer surface.

Functions§

installer_for
Resolve a ClientId to a concrete installer.