spm — skill package manager

1 min read Original article ↗

spmSkill Package Manager

Declare AI skills as git dependencies in ai.json and materialize them for Amp, Claude Code, Cline, OpenAI Codex CLI, GitHub Copilot CLI, Cursor, Gemini CLI, and Windsurf — without ever committing skills to your repo.

spm logo

📦

Skills as Git Dependencies

Declare AI skills in ai.json the same way you declare code dependencies. Pin them by tag, branch, or commit and lock them to an immutable SHA in ai.lock.

🔒

Nothing Committed to Your Repo

Everything spm materializes into the working tree is gitignored — no symlinks, no skills under version control. Same model as node_modules.

🛠️

Multi-Vendor Projection

One declaration resolves once and projects independently into Amp, Claude Code, Cline, OpenAI Codex CLI, GitHub Copilot CLI, Cursor, Gemini CLI, and Windsurf, each in the project-local location that vendor expects.

♻️

Reproducible Installs

A committed ai.lock pins every version selector to a commit SHA. Teammates run spm install on a fresh clone and get exactly the same skills.

🌍

Cross-Platform, Single Binary

Ships as one self-contained binary that shells out to the system git. Runs on Linux, macOS, and Windows — install via npm, crates.io, or a prebuilt release.

Shared Global Fetch Cache

Each repo@commit is cloned once into ~/.spm/store and shared across all your projects, so repeated installs never re-clone.