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
installon an already installed client either no-ops or reports a recoverable conflict. - Installers MUST stay side-effect-free in
dry_runmode: only build aInstallReport/UninstallReportwithout 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§
- Diagnostic
Check - Diagnostic
Report - Outcome of a
diagnosecall (used byspool mcp doctor). - Install
Context - Inputs shared by all installer entry points.
- Install
Report - Outcome of an
installcall. - Uninstall
Report - Outcome of an
uninstallcall. - Update
Report - Outcome of an
updatecall.
Enums§
- Client
Id - Stable identifier for an AI client target.
- Diagnostic
Status - Install
Status - Uninstall
Status - Update
Status
Traits§
- Installer
- Single per-client installer surface.
Functions§
- installer_
for - Resolve a
ClientIdto a concrete installer.