Rust-first GitHub Copilot asset manager with a thin Python wrapper
Project description
Copilot Plugin Manager (cpm)
Copilot Plugin Manager or just cpm is a package manager for GitHub Copilot assets. It helps you define, install, update, inspect, and reset plugins, skills, agents, MCPs, hooks, workflows, and instructions with a reproducible manifest and lockfile workflow.
The package is published as
copilot-plugin-manager, but the command you run iscpm.
Why use cpm?
- keep your Copilot setup in
cpm.toml - lock resolved revisions in
cpm.lock - install assets into repository-local or global Copilot locations
- manage assets from marketplace specs, GitHub sources, and local paths
- inspect drift with
overview,show,tree,doctor, andstatus
Install
For one-off usage:
uvx --from copilot-plugin-manager cpm --help
or:
uvx copilot-plugin-manager --help
For a persistent install:
uv tool install copilot-plugin-manager
Or with pip:
pip install copilot-plugin-manager
Quick start
If you installed cpm, use cpm .... If you prefer not to install it globally, replace cpm with uvx --from copilot-plugin-manager cpm in the examples below.
Initialize a new project:
cpm init
Add a plugin and a skill:
cpm add spark@copilot-plugins --plugin
cpm add https://github.com/anthropics/skills/tree/main/skills/pdf --skill
Apply the lockfile to disk:
cpm sync
Inspect what is installed:
cpm list
cpm status
Common examples
Install a plugin from a Copilot marketplace registry:
cpm add spark@copilot-plugins --plugin
Registry plugins delegated to copilot plugin install are effectively global installs. Native plugin bundles added from GitHub tree URLs or local paths still honor local vs global scope.
Install a plugin bundle from a GitHub tree URL:
cpm add https://github.com/github/awesome-copilot/tree/main/plugins/testing-automation --plugin
Install a skill from GitHub:
cpm add https://github.com/anthropics/skills/tree/main/skills/pdf --skill
Inspect one asset in detail:
cpm show testing-automation --plugin
See the consolidated view of manifest, lockfile, and installed state:
cpm overview
Core commands
| Command | What it does |
|---|---|
cpm init |
Create a new cpm.toml and cpm.lock |
cpm add |
Add an asset to the manifest and resolve it |
cpm sync |
Install everything recorded in cpm.lock |
cpm update |
Update one or all managed assets |
cpm remove |
Remove a managed asset |
cpm lock |
Resolve without installing |
cpm reset |
Remove managed state and/or installed assets |
cpm overview |
Show the combined manifest, lockfile, and disk view |
cpm list |
List installed assets |
cpm show |
Show full details for a single asset |
cpm tree |
Show the dependency tree |
cpm doctor |
Verify installed files match the lockfile |
cpm status |
Show drift between manifest, lockfile, and disk |
How cpm works
cpm.tomlrecords the assets you wantcpm.lockrecords the resolved versions and hashescpm syncmaterializes those assets into.github/for local scope or~/.copilot/for global scope- concrete GitHub file and tree sources are fetched directly by
cpm - delegated Copilot plugin installs are used where the Copilot CLI is the installer of record
Documentation
docs/USAGE.mdfor usage detailsCONTRIBUTING.mdfor development and contributor workflowsARCHITECTURE.mdfor the current system design
License
See LICENSE-MIT and LICENSE-APACHE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file copilot_plugin_manager-0.2.2.tar.gz.
File metadata
- Download URL: copilot_plugin_manager-0.2.2.tar.gz
- Upload date:
- Size: 204.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00fe95076d7e0326f2f942b285128a54b814dcff2b838fae78ec8d6cf6fb73eb
|
|
| MD5 |
09d017ba65527517817bf30e1836b455
|
|
| BLAKE2b-256 |
1ded3a91e37a7f1eaee84631f4526216c027fec3f916114fbac84d30268e9d52
|
Provenance
The following attestation bundles were made for copilot_plugin_manager-0.2.2.tar.gz:
Publisher:
cicd.yml on Anselmoo/copilot-plugin-manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
copilot_plugin_manager-0.2.2.tar.gz -
Subject digest:
00fe95076d7e0326f2f942b285128a54b814dcff2b838fae78ec8d6cf6fb73eb - Sigstore transparency entry: 1203623299
- Sigstore integration time:
-
Permalink:
Anselmoo/copilot-plugin-manager@1d00b0f3843935d15d2eaa4ad58c6b4d21b2b57d -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/Anselmoo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cicd.yml@1d00b0f3843935d15d2eaa4ad58c6b4d21b2b57d -
Trigger Event:
push
-
Statement type:
File details
Details for the file copilot_plugin_manager-0.2.2-py3-none-win_amd64.whl.
File metadata
- Download URL: copilot_plugin_manager-0.2.2-py3-none-win_amd64.whl
- Upload date:
- Size: 8.2 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59fdc4eedab5b2d53f6b030832ebe279e3a21a2f709f848b38ec5f028a00ec69
|
|
| MD5 |
1332b47c30bbac03edbdb062e8e26802
|
|
| BLAKE2b-256 |
5dd71f7b282590e8dc473d924015fa461c9aa1cc87d0c804e3f0b054e3dc3c6b
|
Provenance
The following attestation bundles were made for copilot_plugin_manager-0.2.2-py3-none-win_amd64.whl:
Publisher:
cicd.yml on Anselmoo/copilot-plugin-manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
copilot_plugin_manager-0.2.2-py3-none-win_amd64.whl -
Subject digest:
59fdc4eedab5b2d53f6b030832ebe279e3a21a2f709f848b38ec5f028a00ec69 - Sigstore transparency entry: 1203623317
- Sigstore integration time:
-
Permalink:
Anselmoo/copilot-plugin-manager@1d00b0f3843935d15d2eaa4ad58c6b4d21b2b57d -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/Anselmoo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cicd.yml@1d00b0f3843935d15d2eaa4ad58c6b4d21b2b57d -
Trigger Event:
push
-
Statement type:
File details
Details for the file copilot_plugin_manager-0.2.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: copilot_plugin_manager-0.2.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 8.4 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7df5888e1c4854dcd755e47cc8562961a83eb0f9342dc21edad50ea14a08a66f
|
|
| MD5 |
0156d69fec53db5980335e2d46c37eba
|
|
| BLAKE2b-256 |
661a0fc2d8df11bdc34df59485c14ca065287497fef5807017b277123cbb354a
|
Provenance
The following attestation bundles were made for copilot_plugin_manager-0.2.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
cicd.yml on Anselmoo/copilot-plugin-manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
copilot_plugin_manager-0.2.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
7df5888e1c4854dcd755e47cc8562961a83eb0f9342dc21edad50ea14a08a66f - Sigstore transparency entry: 1203623308
- Sigstore integration time:
-
Permalink:
Anselmoo/copilot-plugin-manager@1d00b0f3843935d15d2eaa4ad58c6b4d21b2b57d -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/Anselmoo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cicd.yml@1d00b0f3843935d15d2eaa4ad58c6b4d21b2b57d -
Trigger Event:
push
-
Statement type:
File details
Details for the file copilot_plugin_manager-0.2.2-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: copilot_plugin_manager-0.2.2-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 7.8 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c754edd78ea172742a0500288b902122dfb8ee4ca6961afd322c6d7fb956cb9e
|
|
| MD5 |
03ee86e08ae4a37bc34ece3b21ac1b5b
|
|
| BLAKE2b-256 |
1938f79e8f73d9a0e18f624b1a0be5c78f2866ece59eafd0f34f5f258467ed7f
|
Provenance
The following attestation bundles were made for copilot_plugin_manager-0.2.2-py3-none-macosx_11_0_arm64.whl:
Publisher:
cicd.yml on Anselmoo/copilot-plugin-manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
copilot_plugin_manager-0.2.2-py3-none-macosx_11_0_arm64.whl -
Subject digest:
c754edd78ea172742a0500288b902122dfb8ee4ca6961afd322c6d7fb956cb9e - Sigstore transparency entry: 1203623302
- Sigstore integration time:
-
Permalink:
Anselmoo/copilot-plugin-manager@1d00b0f3843935d15d2eaa4ad58c6b4d21b2b57d -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/Anselmoo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cicd.yml@1d00b0f3843935d15d2eaa4ad58c6b4d21b2b57d -
Trigger Event:
push
-
Statement type: