copilot-plugin-manager 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. copilot_plugin_manager-0.1.0/LICENSE +21 -0
  2. copilot_plugin_manager-0.1.0/PKG-INFO +135 -0
  3. copilot_plugin_manager-0.1.0/README.md +102 -0
  4. copilot_plugin_manager-0.1.0/pyproject.toml +105 -0
  5. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/__init__.py +8 -0
  6. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/__main__.py +3 -0
  7. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/catalog.py +374 -0
  8. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/catalog_data/__init__.py +1 -0
  9. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/catalog_data/agents.toml +579 -0
  10. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/catalog_data/entrypoints.toml +15290 -0
  11. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/catalog_data/plugins.toml +423 -0
  12. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/catalog_data/profiles.toml +62 -0
  13. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/catalog_data/repositories.toml +90 -0
  14. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/catalog_data/skills.toml +369 -0
  15. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/catalog_data/themes.toml +99 -0
  16. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/cli.py +483 -0
  17. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/completion.py +153 -0
  18. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/manager.py +669 -0
  19. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/models.py +136 -0
  20. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/paths.py +61 -0
  21. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/py.typed +0 -0
  22. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/rendering.py +284 -0
  23. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/runner.py +72 -0
  24. copilot_plugin_manager-0.1.0/src/copilot_plugin_manager/state.py +61 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Anselm Hahn
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,135 @@
1
+ Metadata-Version: 2.4
2
+ Name: copilot-plugin-manager
3
+ Version: 0.1.0
4
+ Summary: Python-first GitHub Copilot plugin, skill, and agent manager
5
+ Keywords: github-copilot,copilot,cli,plugin-manager,skills,agents
6
+ Author: Anselm Hahn
7
+ Author-email: Anselm Hahn <Anselm.Hahn@gmail.com>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Environment :: Console
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Classifier: Topic :: Software Development :: Version Control
23
+ Classifier: Topic :: Software Development :: Build Tools
24
+ Classifier: Topic :: Utilities
25
+ Requires-Dist: pydantic>=2,<3
26
+ Requires-Dist: rich>=14.3.3
27
+ Requires-Dist: typer>=0.24.1
28
+ Requires-Python: >=3.12
29
+ Project-URL: Homepage, https://github.com/Anselmoo/copilot-plugin-manager
30
+ Project-URL: Repository, https://github.com/Anselmoo/copilot-plugin-manager
31
+ Project-URL: Issues, https://github.com/Anselmoo/copilot-plugin-manager/issues
32
+ Description-Content-Type: text/markdown
33
+
34
+ # copilot-plugin-manager
35
+
36
+ [![CI](https://img.shields.io/github/actions/workflow/status/Anselmoo/copilot-plugin-manager/cicd.yml?branch=main&label=ci)](https://github.com/Anselmoo/copilot-plugin-manager/actions/workflows/cicd.yml)
37
+ [![PyPI publish](https://img.shields.io/badge/publish-PyPI-blue)](https://github.com/Anselmoo/copilot-plugin-manager/actions/workflows/cicd.yml)
38
+ [![PyPI version](https://img.shields.io/pypi/v/copilot-plugin-manager)](https://pypi.org/project/copilot-plugin-manager/)
39
+ [![Python versions](https://img.shields.io/pypi/pyversions/copilot-plugin-manager)](https://pypi.org/project/copilot-plugin-manager/)
40
+ [![License](https://img.shields.io/github/license/Anselmoo/copilot-plugin-manager)](LICENSE)
41
+
42
+ A Python-first GitHub Copilot plugin manager built with `Typer`, `Rich`, and `Pydantic`.
43
+
44
+ It keeps Copilot setup management focused and reproducible:
45
+
46
+ - compose setups from profiles and themes
47
+ - install, update, and prune plugins
48
+ - sync local skills and agents into `~/.copilot`
49
+ - track repository-aware state under `~/.copilot/copilot-plugin-manager`
50
+ - refresh bundled catalogs from curated upstream sources
51
+
52
+ ## Install from source
53
+
54
+ ```bash
55
+ git submodule update --init --recursive
56
+ uv sync --group dev
57
+ uv run copilot-plugin-manager --help
58
+ ```
59
+
60
+ The default invocation also works:
61
+
62
+ ```bash
63
+ uv run copilot-plugin-manager
64
+ ```
65
+
66
+ ## Quick start
67
+
68
+ List what is available:
69
+
70
+ ```bash
71
+ uv run copilot-plugin-manager list profiles
72
+ uv run copilot-plugin-manager list themes
73
+ uv run copilot-plugin-manager list sources
74
+ ```
75
+
76
+ Run a one-off command straight from your terminal with `uvx`:
77
+
78
+ ```bash
79
+ uvx copilot-plugin-manager list profiles
80
+ ```
81
+
82
+ `uvx` is convenient for direct execution, but persistent shell completion is easier when the CLI is installed locally or run from a checked-out repository with `uv run`.
83
+
84
+ Activate a setup for the current repository:
85
+
86
+ ```bash
87
+ uv run copilot-plugin-manager switch python-core
88
+ uv run copilot-plugin-manager switch-exclusive python-mcp
89
+ ```
90
+
91
+ Refresh upstream sources and inspect state:
92
+
93
+ ```bash
94
+ uv run copilot-plugin-manager repo-update --remote
95
+ uv run copilot-plugin-manager status
96
+ ```
97
+
98
+ ## Shell completion
99
+
100
+ Quick shell-init snippets:
101
+
102
+ ```bash
103
+ uv run copilot-plugin-manager shell-init bash
104
+ uv run copilot-plugin-manager shell-init zsh
105
+ uv run copilot-plugin-manager shell-init fish
106
+ uv run copilot-plugin-manager shell-init powershell
107
+ uv run copilot-plugin-manager shell-init nushell
108
+ ```
109
+
110
+ Managed completion files:
111
+
112
+ ```bash
113
+ uv run copilot-plugin-manager completion-install fish
114
+ uv run copilot-plugin-manager completion-install bash
115
+ uv run copilot-plugin-manager completion-script powershell
116
+ ```
117
+
118
+ ## Documentation
119
+
120
+ | Document | Purpose |
121
+ | --- | --- |
122
+ | [`docs/USAGE.md`](docs/USAGE.md) | Managed content, state model, command reference, and shell setup. |
123
+ | [`CONTRIBUTING.md`](CONTRIBUTING.md) | Local development setup, test/lint/build commands, and PR workflow. |
124
+ | [`docs/RELEASING.md`](docs/RELEASING.md) | Build, TestPyPI, and PyPI publishing flow. |
125
+ | [`SECURITY.md`](SECURITY.md) | Vulnerability reporting and supported versions. |
126
+ | [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) | Community expectations and reporting guidance. |
127
+ | [`LICENSE`](LICENSE) | Project license terms. |
128
+
129
+ ## Project links
130
+
131
+ - PyPI package: <https://pypi.org/project/copilot-plugin-manager/>
132
+ - CI/CD workflow: <https://github.com/Anselmoo/copilot-plugin-manager/actions/workflows/cicd.yml>
133
+ - Catalog refresh workflow: <https://github.com/Anselmoo/copilot-plugin-manager/actions/workflows/catalog-refresh.yml>
134
+ - Security policy: <https://github.com/Anselmoo/copilot-plugin-manager/security/policy>
135
+ - Issue tracker: <https://github.com/Anselmoo/copilot-plugin-manager/issues>
@@ -0,0 +1,102 @@
1
+ # copilot-plugin-manager
2
+
3
+ [![CI](https://img.shields.io/github/actions/workflow/status/Anselmoo/copilot-plugin-manager/cicd.yml?branch=main&label=ci)](https://github.com/Anselmoo/copilot-plugin-manager/actions/workflows/cicd.yml)
4
+ [![PyPI publish](https://img.shields.io/badge/publish-PyPI-blue)](https://github.com/Anselmoo/copilot-plugin-manager/actions/workflows/cicd.yml)
5
+ [![PyPI version](https://img.shields.io/pypi/v/copilot-plugin-manager)](https://pypi.org/project/copilot-plugin-manager/)
6
+ [![Python versions](https://img.shields.io/pypi/pyversions/copilot-plugin-manager)](https://pypi.org/project/copilot-plugin-manager/)
7
+ [![License](https://img.shields.io/github/license/Anselmoo/copilot-plugin-manager)](LICENSE)
8
+
9
+ A Python-first GitHub Copilot plugin manager built with `Typer`, `Rich`, and `Pydantic`.
10
+
11
+ It keeps Copilot setup management focused and reproducible:
12
+
13
+ - compose setups from profiles and themes
14
+ - install, update, and prune plugins
15
+ - sync local skills and agents into `~/.copilot`
16
+ - track repository-aware state under `~/.copilot/copilot-plugin-manager`
17
+ - refresh bundled catalogs from curated upstream sources
18
+
19
+ ## Install from source
20
+
21
+ ```bash
22
+ git submodule update --init --recursive
23
+ uv sync --group dev
24
+ uv run copilot-plugin-manager --help
25
+ ```
26
+
27
+ The default invocation also works:
28
+
29
+ ```bash
30
+ uv run copilot-plugin-manager
31
+ ```
32
+
33
+ ## Quick start
34
+
35
+ List what is available:
36
+
37
+ ```bash
38
+ uv run copilot-plugin-manager list profiles
39
+ uv run copilot-plugin-manager list themes
40
+ uv run copilot-plugin-manager list sources
41
+ ```
42
+
43
+ Run a one-off command straight from your terminal with `uvx`:
44
+
45
+ ```bash
46
+ uvx copilot-plugin-manager list profiles
47
+ ```
48
+
49
+ `uvx` is convenient for direct execution, but persistent shell completion is easier when the CLI is installed locally or run from a checked-out repository with `uv run`.
50
+
51
+ Activate a setup for the current repository:
52
+
53
+ ```bash
54
+ uv run copilot-plugin-manager switch python-core
55
+ uv run copilot-plugin-manager switch-exclusive python-mcp
56
+ ```
57
+
58
+ Refresh upstream sources and inspect state:
59
+
60
+ ```bash
61
+ uv run copilot-plugin-manager repo-update --remote
62
+ uv run copilot-plugin-manager status
63
+ ```
64
+
65
+ ## Shell completion
66
+
67
+ Quick shell-init snippets:
68
+
69
+ ```bash
70
+ uv run copilot-plugin-manager shell-init bash
71
+ uv run copilot-plugin-manager shell-init zsh
72
+ uv run copilot-plugin-manager shell-init fish
73
+ uv run copilot-plugin-manager shell-init powershell
74
+ uv run copilot-plugin-manager shell-init nushell
75
+ ```
76
+
77
+ Managed completion files:
78
+
79
+ ```bash
80
+ uv run copilot-plugin-manager completion-install fish
81
+ uv run copilot-plugin-manager completion-install bash
82
+ uv run copilot-plugin-manager completion-script powershell
83
+ ```
84
+
85
+ ## Documentation
86
+
87
+ | Document | Purpose |
88
+ | --- | --- |
89
+ | [`docs/USAGE.md`](docs/USAGE.md) | Managed content, state model, command reference, and shell setup. |
90
+ | [`CONTRIBUTING.md`](CONTRIBUTING.md) | Local development setup, test/lint/build commands, and PR workflow. |
91
+ | [`docs/RELEASING.md`](docs/RELEASING.md) | Build, TestPyPI, and PyPI publishing flow. |
92
+ | [`SECURITY.md`](SECURITY.md) | Vulnerability reporting and supported versions. |
93
+ | [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) | Community expectations and reporting guidance. |
94
+ | [`LICENSE`](LICENSE) | Project license terms. |
95
+
96
+ ## Project links
97
+
98
+ - PyPI package: <https://pypi.org/project/copilot-plugin-manager/>
99
+ - CI/CD workflow: <https://github.com/Anselmoo/copilot-plugin-manager/actions/workflows/cicd.yml>
100
+ - Catalog refresh workflow: <https://github.com/Anselmoo/copilot-plugin-manager/actions/workflows/catalog-refresh.yml>
101
+ - Security policy: <https://github.com/Anselmoo/copilot-plugin-manager/security/policy>
102
+ - Issue tracker: <https://github.com/Anselmoo/copilot-plugin-manager/issues>
@@ -0,0 +1,105 @@
1
+ [project]
2
+ name = "copilot-plugin-manager"
3
+ version = "0.1.0"
4
+ description = "Python-first GitHub Copilot plugin, skill, and agent manager"
5
+ readme = "README.md"
6
+ authors = [{ name = "Anselm Hahn", email = "Anselm.Hahn@gmail.com" }]
7
+ license = "MIT"
8
+ license-files = ["LICENSE"]
9
+ requires-python = ">=3.12"
10
+ keywords = [
11
+ "github-copilot",
12
+ "copilot",
13
+ "cli",
14
+ "plugin-manager",
15
+ "skills",
16
+ "agents",
17
+ ]
18
+ classifiers = [
19
+ "Development Status :: 3 - Alpha",
20
+ "Environment :: Console",
21
+ "Intended Audience :: Developers",
22
+ "License :: OSI Approved :: MIT License",
23
+ "Operating System :: OS Independent",
24
+ "Programming Language :: Python",
25
+ "Programming Language :: Python :: 3",
26
+ "Programming Language :: Python :: 3 :: Only",
27
+ "Programming Language :: Python :: 3.12",
28
+ "Programming Language :: Python :: 3.13",
29
+ "Programming Language :: Python :: 3.14",
30
+ "Topic :: Software Development :: Libraries :: Python Modules",
31
+ "Topic :: Software Development :: Version Control",
32
+ "Topic :: Software Development :: Build Tools",
33
+ "Topic :: Utilities",
34
+ ]
35
+ dependencies = ["pydantic>=2,<3", "rich>=14.3.3", "typer>=0.24.1"]
36
+
37
+ [project.urls]
38
+ Homepage = "https://github.com/Anselmoo/copilot-plugin-manager"
39
+ Repository = "https://github.com/Anselmoo/copilot-plugin-manager"
40
+ Issues = "https://github.com/Anselmoo/copilot-plugin-manager/issues"
41
+
42
+ [project.scripts]
43
+ copilot-plugin-manager = "copilot_plugin_manager.cli:main"
44
+
45
+ [build-system]
46
+ requires = ["uv_build>=0.10.9,<0.11.0"]
47
+ build-backend = "uv_build"
48
+
49
+ [dependency-groups]
50
+ dev = [
51
+ "pre-commit>=4.3.0",
52
+ "poethepoet>=0.34.0",
53
+ "pytest>=9.0.2",
54
+ "pytest-cov>=7.0.0",
55
+ "ruff>=0.15.0",
56
+ "twine>=6.2.0",
57
+ "ty>=0.0.23",
58
+ ]
59
+
60
+ [tool.pytest.ini_options]
61
+ addopts = ["-ra"]
62
+ testpaths = ["test"]
63
+
64
+ [tool.coverage.run]
65
+ branch = true
66
+ source = ["copilot_plugin_manager"]
67
+
68
+ [tool.coverage.report]
69
+ show_missing = true
70
+ skip_covered = true
71
+
72
+ [tool.ruff]
73
+ line-length = 180
74
+ target-version = "py312"
75
+ extend-exclude = ["dist", "external", "legacy"]
76
+
77
+ [tool.ruff.lint]
78
+ select = ["E", "F", "I", "W"]
79
+
80
+ [tool.ty.src]
81
+ include = ["src", "test"]
82
+ exclude = ["dist", "external", "legacy"]
83
+
84
+ [tool.ty.terminal]
85
+ output-format = "full"
86
+
87
+ [tool.poe.tasks]
88
+ pre-commit = { cmd = "pre-commit run --all-files", help = "Run pre-commit hooks across the repository." }
89
+ test = { cmd = "pytest -q", help = "Run the test suite." }
90
+ test-cov = { cmd = "pytest --cov=copilot_plugin_manager --cov-report=term-missing --cov-report=xml", help = "Run tests with coverage." }
91
+ lint = { cmd = "ruff check .", help = "Run Ruff lint checks." }
92
+ typecheck = { cmd = "ty check", help = "Run ty type checks." }
93
+ refresh-catalog = { cmd = "python scripts/refresh_catalog.py", help = "Regenerate plugin and entrypoint metadata from upstream submodules without legacy bootstrap files." }
94
+ refresh-catalog-reset = { cmd = "python scripts/refresh_catalog.py --hard-reset", help = "Hard-reset entrypoint provenance history and rebuild provider metadata from upstream source files." }
95
+ _build-dist = { cmd = "uv build", help = "Build source and wheel distributions." }
96
+ _check-dist = { shell = "twine check dist/*", help = "Validate built distributions." }
97
+ build = { sequence = [
98
+ "_build-dist",
99
+ "_check-dist",
100
+ ], help = "Build and validate distributions." }
101
+ check = { sequence = [
102
+ "lint",
103
+ "typecheck",
104
+ "test",
105
+ ], help = "Run lint, type checks, and tests." }
@@ -0,0 +1,8 @@
1
+ from importlib.metadata import PackageNotFoundError, version
2
+
3
+ try:
4
+ __version__ = version("copilot-plugin-manager")
5
+ except PackageNotFoundError:
6
+ __version__ = "0.1.0"
7
+
8
+ __all__ = ["__version__"]
@@ -0,0 +1,3 @@
1
+ from .cli import main
2
+
3
+ main()