Standalone multi-agent skill manager for AgentSkills-compatible packages
Project description
skill-mgr
skill-mgr is a standalone multi-agent skill installer and inspector for AgentSkills-compatible SKILL.md packages. It installs one validated skill into bundled agent targets, supports local directories and GitHub shorthand refs, and exposes the same lifecycle surface as the Orcheo skill workflows: install, update, uninstall, validate, list, and show.
Installation
uv sync --all-groups
The CLI entrypoint is:
uv run skill-mgr -h
Commands
skill-mgr install REF [--target TARGET ...] [--format rich|markdown|json]
skill-mgr update REF [--target TARGET ...] [--format rich|markdown|json]
skill-mgr uninstall NAME [--target TARGET ...] [--format rich|markdown|json]
skill-mgr validate REF [--format rich|markdown|json]
skill-mgr list [--target TARGET ...] [--format rich|markdown|json]
skill-mgr show NAME [--target TARGET ...] [--format rich|markdown|json]
skill-mgr support-matrix [--format rich|markdown|json]
Rules:
- Repeated
--target/-tvalues are allowed. - Omitting
--targetinstalls to bundled agents detected in the current environment. - Explicit
--targetvalues bypass detection and are still honored even if the agent home directory does not exist yet. allis mutually exclusive with explicit targets.- Rich-rendered human output is the default.
- Use
--format markdownfor plain-text Markdown tables that are easier for LLMs and other text consumers to parse. - Use
--format jsonfor strict structured output.
Source Refs
Supported REF forms:
- Local skill directory path containing
SKILL.md - GitHub shorthand
owner/repo - GitHub shorthand
owner/repo/path/to/skill
Resolution behavior:
- Existing local paths always win after home expansion and normalization.
- Only non-existent local refs fall through to GitHub shorthand parsing.
- GitHub installs resolve the repository default branch via the GitHub API, download one tarball, safely extract it once, then reuse the materialized skill directory across all selected targets.
- Nested GitHub paths must resolve to a directory inside the archive.
Initial OS Support Matrix
The bundled adapters currently publish this matrix:
| Adapter | Windows | Linux | macOS | Managed install root | Notes |
|---|---|---|---|---|---|
claude |
supported | supported | supported | ~/.claude/skills |
Home-relative managed skill root used by the adapter |
codex |
supported | supported | supported | ~/.codex/skills |
Matches the local Codex skill layout used by the app/CLI |
openclaw |
supported | supported | supported | ~/.openclaw/skills |
Matches OpenClaw's documented managed/local skills directory |
orcheo |
supported | supported | supported | ~/.orcheo/skills |
Matches Orcheo's managed local skills directory |
Platform semantics:
supported: the adapter has a defined install root and is expected to work on that OS.unsupported: the adapter is intentionally skipped on that OS.unknown: the adapter root is not yet defined and the target is skipped withunknown_install_root.agent_not_detected: the adapter is bundled, but its home directory was not found during default target selection.
Current bundled adapters all map to explicit home-relative roots. Explicit --target all expands to claude, codex, openclaw, and orcheo on Windows, Linux, and macOS, while the default target set only includes agents detected on the current machine.
SKILL.md Contract
validate enforces the following SKILL.md contract:
SKILL.mdmust exist at the resolved skill directory root.- The file must start with valid YAML frontmatter delimited by
---lines. nameis required.namemust be 1-64 characters of lowercase letters, numbers, and internal hyphens.descriptionis required and must be a non-empty string.license, when present, must be a string.compatibility, when present, must be a string.metadata, when present, must be a mapping.allowed-tools, when present, must be a string.
Recognized fields are normalized into the validation output:
namedescriptionlicensecompatibilitymetadataallowed-tools
Unknown frontmatter keys are preserved in extra_fields in the library result so downstream tools can retain adapter-specific metadata.
Minimal valid example:
---
name: demo-skill
description: Explain what the skill does and when to use it.
---
Skill instructions go here.
Examples
Install from a local directory into every bundled target:
uv run skill-mgr install ~/skills/demo-skill
Install only for Codex and Claude:
uv run skill-mgr install ~/skills/demo-skill -t codex -t claude
Install from a GitHub repo root:
uv run skill-mgr install owner/repo
Install from a nested GitHub skill directory:
uv run skill-mgr install owner/repo/skills/demo-skill
Validate without installing:
uv run skill-mgr validate owner/repo/skills/demo-skill --format markdown
List skills across bundled adapters:
uv run skill-mgr list
Development
make format
make lint
make test
The CI workflow runs the same lint and test commands on Windows, Linux, and macOS.
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 Distribution
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 skill_mgr-0.1.0.tar.gz.
File metadata
- Download URL: skill_mgr-0.1.0.tar.gz
- Upload date:
- Size: 94.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b94aac40a97404303ae35451f6b5e2ac33204bd128ecddba7e785a3b3969ad8a
|
|
| MD5 |
5f30082bb2ad5a5d388a2083c2165c77
|
|
| BLAKE2b-256 |
6899d64f837a777701201db09682779f56938bd54c95ed1bd996289f996ee26e
|
Provenance
The following attestation bundles were made for skill_mgr-0.1.0.tar.gz:
Publisher:
ci.yml on AI-Colleagues/skill-mgr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skill_mgr-0.1.0.tar.gz -
Subject digest:
b94aac40a97404303ae35451f6b5e2ac33204bd128ecddba7e785a3b3969ad8a - Sigstore transparency entry: 1202835026
- Sigstore integration time:
-
Permalink:
AI-Colleagues/skill-mgr@5c2d4abd446e6c7dd9a60e351c94387b9e0c7c5d -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/AI-Colleagues
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@5c2d4abd446e6c7dd9a60e351c94387b9e0c7c5d -
Trigger Event:
push
-
Statement type:
File details
Details for the file skill_mgr-0.1.0-py3-none-any.whl.
File metadata
- Download URL: skill_mgr-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a02365670a2701bd2c2b817c26eb1aa0e76d09db27f87f21d6e3ea0e0d59e7c
|
|
| MD5 |
ba498ba13e518e56a85e2693132268c2
|
|
| BLAKE2b-256 |
a6d60ce57cbd620064dd5968a11172f53397723981fc4a292e8e0aef70cf6ec4
|
Provenance
The following attestation bundles were made for skill_mgr-0.1.0-py3-none-any.whl:
Publisher:
ci.yml on AI-Colleagues/skill-mgr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skill_mgr-0.1.0-py3-none-any.whl -
Subject digest:
7a02365670a2701bd2c2b817c26eb1aa0e76d09db27f87f21d6e3ea0e0d59e7c - Sigstore transparency entry: 1202835027
- Sigstore integration time:
-
Permalink:
AI-Colleagues/skill-mgr@5c2d4abd446e6c7dd9a60e351c94387b9e0c7c5d -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/AI-Colleagues
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@5c2d4abd446e6c7dd9a60e351c94387b9e0c7c5d -
Trigger Event:
push
-
Statement type: