CCPM - Claude Code Package Manager
⚠️ Beta Software: This project is in active development and may contain breaking changes. Use with caution in production environments.
A Git-based package manager for Claude Code resources that enables reproducible installations using lockfile-based dependency management, similar to Cargo.
Features
- 📦 Lockfile-based dependency management - Reproducible installations like Cargo/npm with staleness detection
- 🌐 Git-based distribution - Install from any Git repository (GitHub, GitLab, Bitbucket)
- 🚀 No central registry - Fully decentralized approach
- 🔒 Lockfile staleness detection - Automatic detection of outdated or inconsistent lockfiles
- 🔧 Six resource types - Agents, Snippets, Commands, Scripts, Hooks, MCP Servers
- 🎯 Pattern-based dependencies - Use glob patterns (
agents/*.md,**/*.md) for batch installation - 🖥️ Cross-platform - Windows, macOS, and Linux support with enhanced path handling
- 📁 Local and remote sources - Support for both Git repositories and local filesystem paths
Quick Start
Install CCPM
Using installer script (Recommended):
# Unix/Linux/macOS
|
# Windows PowerShell
|
Using Cargo:
For more installation options, see the Installation Guide.
Create a Project
# Initialize a new CCPM project
# Or manually create ccpm.toml:
[]
= "https://github.com/aig787/ccpm-community.git"
[]
= { = "community", = "agents/example.md", = "v1.0.0" }
[]
= { = "community", = "snippets/react/*.md", = "^1.0.0" }
Install Dependencies
# Install all dependencies and generate lockfile
# Use exact lockfile versions (for CI/CD)
# Force installation when lockfile is stale
# Regenerate lockfile from scratch
# Control parallelism (default: max(10, 2 × CPU cores))
# Bypass cache for fresh installation
Adding Dependencies
# Add a Git source repository
# Add dependencies from Git sources
# Add local file dependencies
# Add pattern dependencies (bulk installation)
See the Command Reference for all supported dependency formats.
Core Commands
| Command | Description |
|---|---|
ccpm init |
Initialize a new project |
ccpm install |
Install dependencies from ccpm.toml with parallel processing |
ccpm update |
Update dependencies within version constraints |
ccpm outdated |
Check for available updates to installed dependencies |
ccpm upgrade |
Self-update CCPM to the latest version |
ccpm list |
List installed resources |
ccpm validate |
Validate manifest and dependencies |
ccpm add |
Add sources or dependencies |
ccpm remove |
Remove sources or dependencies |
ccpm config |
Manage global configuration |
ccpm cache |
Manage the Git cache |
Run ccpm --help for full command reference.
Resource Types
CCPM manages six types of resources:
- Agents - AI assistant configurations (
.claude/agents/) - Snippets - Reusable code templates (
.claude/ccpm/snippets/) - Commands - Claude Code slash commands (
.claude/commands/) - Scripts - Executable automation files (
.claude/ccpm/scripts/) - Hooks - Event-based automation (merged into
.claude/settings.local.json) - MCP Servers - Model Context Protocol servers (merged into
.mcp.json)
Documentation
- 📚 Installation Guide - All installation methods and requirements
- 🚀 User Guide - Getting started and basic workflows
- 📖 Command Reference - Complete command syntax and options
- 🔧 Resources Guide - Working with different resource types
- 🔢 Versioning Guide - Version constraints and Git references
- ⚙️ Configuration Guide - Global config and authentication
- 🏗️ Architecture - Technical details and design decisions
- ❓ FAQ - Frequently asked questions
- 🐛 Troubleshooting - Common issues and solutions
Example Project
# ccpm.toml
[]
= "https://github.com/aig787/ccpm-community.git"
= "./local-resources"
[]
# Single file
= { = "community", = "agents/rust-expert.md", = "v1.0.0" }
# Pattern matching - install multiple files
= { = "community", = "agents/ai/*.md", = "^1.0.0" }
[]
= { = "community", = "snippets/react-hooks.md", = "~1.2.0" }
[]
= { = "local", = "scripts/build.sh" }
[]
= { = "community", = "hooks/pre-commit.json", = "v1.0.0" }
[]
= { = "community", = "mcp/filesystem.json", = "latest" }
Performance Architecture
CCPM v0.3.2+ features a high-performance SHA-based architecture:
Centralized Version Resolution
- VersionResolver: Batch resolution of all dependency versions to commit SHAs
- Minimal Git Operations: Single fetch per repository per command
- Upfront Resolution: All versions resolved before any worktree operations
SHA-Based Worktree Deduplication
- Commit-Level Caching: Worktrees keyed by commit SHA, not version reference
- Maximum Reuse: Multiple tags/branches pointing to same commit share one worktree
- Parallel Safety: Independent worktrees enable conflict-free concurrent operations
Versioning
CCPM uses Git-based versioning at the repository level with enhanced constraint support:
- Git tags (recommended):
version = "v1.0.0"orversion = "^1.0.0" - Semver constraints:
^1.0,~2.1,>=1.0.0, <2.0.0 - Branches:
branch = "main"(mutable, updates on each install) - Commits:
rev = "abc123def"(immutable, exact commit) - Local paths: No versioning, uses current files
See the Versioning Guide for details.
Security
CCPM separates credentials from project configuration:
- ✅ Project manifest (
ccpm.toml) - Safe to commit - ❌ Global config (
~/.ccpm/config.toml) - Contains secrets, never commit
# Add private source with authentication (global config only)
Contributing
We welcome contributions! Please see our Contributing Guide for details.
Project Status
CCPM is actively developed with comprehensive test coverage and automated releases:
- ✅ All core commands implemented
- ✅ Cross-platform support (Windows, macOS, Linux)
- ✅ Comprehensive test suite (70%+ coverage)
- ✅ Specialized Rust development agents (standard/advanced tiers)
- ✅ Automated semantic releases with conventional commits
- ✅ Cross-platform binary builds for all releases
- ✅ Publishing to crates.io (automated via semantic-release)
Automated Releases
CCPM uses semantic-release for automated versioning and publishing:
- Conventional Commits: Version bumps based on commit messages (
feat:→ minor,fix:→ patch) - Cross-Platform Binaries: Automatic builds for Linux, macOS, and Windows
- Automated Publishing: Releases to both GitHub and crates.io
- Changelog Generation: Automatic changelog from commit history
License
MIT License - see LICENSE.md for details.
Support
Built with Rust 🦀 for reliability and performance