📦
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.
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.
📦
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.
🔒
Everything spm materializes into the working tree is gitignored — no symlinks, no skills under version control. Same model as node_modules.
🛠️
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.
♻️
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.
🌍
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.
⚡
Each repo@commit is cloned once into ~/.spm/store and shared across all your projects, so repeated installs never re-clone.