A package manager for AI context files (SKILL.md, AGENTS.md, copilot-instructions.md, etc.).
MDPM provides a centralized ecosystem for sharing and distributing AI-related context files across projects and teams. Think of it as npm/NuGet for AI prompts, skills, and agent configurations.
- Package Registry - Centralized repository for AI context packages
- CLI Tool - Install, search, and publish packages from the command line
- Web Interface - Browse and discover packages at mdpm.dev
- Simple Package Format - Packages are just zip files with a manifest
# Install as .NET global tool
dotnet tool install -g mdpm
# Or download from releases (no .NET required)# Search for packages
mdpm search copilot
# Install a package
mdpm install awesome-skills
# Install specific version
mdpm install awesome-skills --version 1.2.0
# List installed packages
mdpm list
# Update all packages
mdpm update
# Update with confirmation prompts
mdpm update --interactive
# Restore packages (after cloning a project)
mdpm restore# Initialize a new package
mdpm init
# Create your content files
mkdir -p .github
echo "# My Copilot Instructions" > .github/copilot-instructions.md
# Build the package
mdpm pack
# Login (opens browser to create API key)
mdpm login
# Publish
mdpm publishmy-package.1.0.0.mdpm (zip file)
├── package.mdpm.json # Required: manifest
├── README.md # Optional: displayed on web
└── [content files] # Extracted to install dir
├── .github/
│ └── copilot-instructions.md
├── .claude/
│ ├── AGENTS.md
│ └── skills/
│ └── SKILL.md
└── .cursor/
└── rules/
└── my-rules.md
{
"$schema": "https://mdpm.dev/schemas/package.mdpm.json",
"id": "my-awesome-skills",
"version": "1.0.0",
"description": "A collection of awesome AI skills",
"authors": ["Your Name <you@example.com>"],
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/user/repo"
},
"tags": ["skills", "agents", "copilot"]
}| Command | Description |
|---|---|
mdpm search [query] |
Search for packages (optional query, filter with --tag) |
mdpm info <package> |
Get detailed information about a package |
mdpm install <package> |
Install a package (--version, --force, --no-deps) |
mdpm uninstall <package> |
Uninstall a package and its files |
mdpm update [package] |
Update all or specific packages (--interactive, --dry-run) |
mdpm restore |
Restore packages from mdpm-packages.json |
mdpm list |
List installed packages |
| Command | Description |
|---|---|
mdpm init |
Initialize a new package (creates package.mdpm.json) |
mdpm pack |
Create a .mdpm package from the current directory |
mdpm publish [file] |
Publish a package to the registry |
| Command | Description |
|---|---|
mdpm login |
Store your API key (opens browser to create key) |
mdpm logout |
Remove stored API key |
mdpm config set <key> <value> |
Set a configuration value |
mdpm config get <key> |
Get a configuration value |
mdpm config list |
List all configuration values |
# Install with specific version
mdpm install awesome-skills --version 1.2.0
# Force reinstall
mdpm install awesome-skills --force
# Install without dependencies
mdpm install awesome-skills --no-deps
# Update with interactive prompts
mdpm update --interactive
# Preview updates without applying
mdpm update --dry-run
# Update specific package to specific version
mdpm update awesome-skills --version 2.0.0
# Search by tag
mdpm search --tag copilot
# Set custom source URL
mdpm config set source https://mdpm.dev/api/v1The MDPM API follows REST conventions and can be consumed by any HTTP client.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/packages |
Search packages |
| GET | /api/v1/packages/{id} |
Get package details |
| GET | /api/v1/packages/{id}/versions/{version}/download |
Download package |
| PUT | /api/v1/packages |
Publish package (requires auth) |
GET /api/v1/index.json
Returns API discovery information.
- .NET 10 SDK or later
# Clone the repository
git clone https://github.com/redth/mdpm.git
cd mdpm
# Build all projects
dotnet build
# Run tests
dotnet test
# Run full stack with .NET Aspire (recommended)
cd mdpm.AppHost
dotnet run
# Dashboard available at https://localhost:17214
# Run the CLI (from source)
dotnet run --project src/Mdpm.Cli -- search copilotmdpm/
├── mdpm.AppHost/ # .NET Aspire orchestrator
├── mdpm.ServiceDefaults/ # Shared service configurations
├── src/
│ ├── Mdpm.Core/ # Shared library (models, utilities)
│ ├── Mdpm.Api/ # Web API
│ ├── Mdpm.Web/ # Blazor frontend
│ └── Mdpm.Cli/ # CLI tool
├── tests/
│ ├── Mdpm.Core.Tests/
│ ├── Mdpm.Api.Tests/
│ └── Mdpm.Cli.Tests/
└── samples/
└── example-package/
MIT License - see LICENSE for details.