Skill Registry
Skill Registry is a small Python engine for maintaining a Git-backed, user-owned collection of agent skills and deploying those skills to supported agent runtimes. The engine validates registry metadata, discovers target state, plans or applies safe deployments, reports drift, and provides guardrails for canonical and deployed copies.
The engine package contains no user skills. Most users keep one repository: their registry instance. They install or pin this package as a dependency and do not need to clone the engine source.
Quick start
Create a registry instance with one or more generic target presets:
uvx --from agent-skill-registry==0.1.0 skill-registry init ./my-agent-skills \
--target codex \
--target agents
cd ./my-agent-skills
uv sync
The first dependency resolution creates uv.lock; commit that lock with the
instance. On later machines, clone only the instance repository and run
uv sync --frozen. Target roots are machine-specific, so validate explicit
targets before deploying on a new machine.
A generated instance starts with this ownership boundary:
my-agent-skills/
├── pyproject.toml
├── registry.yaml
├── runtime-dependencies.yaml
├── runtimes.yaml
├── skill-sets.yaml
├── skills/ # canonical, user-owned skill packages
├── targets/ # portable target definitions
└── targets.local/ # optional machine-local overrides, ignored by Git
Everyday commands
uv run --frozen skill-registry validate
uv run --frozen skill-registry discover --target codex
uv run --frozen skill-registry deploy --dry-run --target codex
uv run --frozen skill-registry deploy --target codex --reason "approved update"
uv run --frozen skill-registry status --target codex
uv run --frozen skill-registry doctor --target codex
Reconciliation and proposal commands help classify or import content that already exists at a target. Inspect every plan or proposal before applying it:
uv run --frozen skill-registry reconcile plan --target example-target --skill example-skill
uv run --frozen skill-registry proposal inspect --proposal ./review/example-proposal
Every command supports --json for automation. Pass --root PATH when
running outside the instance.
Root selection
The engine selects exactly one valid registry root in this order:
- explicit
--root; SKILL_REGISTRY_ROOT;- the nearest registry ancestor of the physical current directory;
- the machine-local default-root pointer.
Use skill-registry root show, root set-default PATH, and
root clear-default to inspect or manage the pointer. A malformed or
inaccessible higher-priority source fails closed instead of silently selecting
another registry.
Deployment model
Targets choose symlink or copy deployment. Symlinks are preferred because
the canonical skill remains visibly authoritative. Copy is an explicit
fallback for targets or host boundaries where symlinks are unsuitable, such as
some WSL-to-Windows paths. Deployment records and payload hashes distinguish
registry-owned entries from unrelated content; replacement requires positive
ownership evidence.
Supported hosts are macOS, Linux, and WSL. Native Windows is not currently in scope.
See Architecture, Contributing, Security, and Releasing for 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 agent_skill_registry-0.1.0.tar.gz.
File metadata
- Download URL: agent_skill_registry-0.1.0.tar.gz
- Upload date:
- Size: 87.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28b3600d35f3b27fe15a615240535a93f32702dd436d78e61d73ea6de68eb245
|
|
| MD5 |
c4e64712498862c5f7dc697e63401432
|
|
| BLAKE2b-256 |
8a28bbac7fb5dc4bf97f9da61feeddb66071d04b1e4c1f458ed51ec36f4cb178
|
Provenance
The following attestation bundles were made for agent_skill_registry-0.1.0.tar.gz:
Publisher:
release.yml on christopher-czaban/skill-registry
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_skill_registry-0.1.0.tar.gz -
Subject digest:
28b3600d35f3b27fe15a615240535a93f32702dd436d78e61d73ea6de68eb245 - Sigstore transparency entry: 2466552186
- Sigstore integration time:
-
Permalink:
christopher-czaban/skill-registry@649da778ef1f1f449440ec46ba48faf31eb7e19a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/christopher-czaban
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@649da778ef1f1f449440ec46ba48faf31eb7e19a -
Trigger Event:
release
-
Statement type:
File details
Details for the file agent_skill_registry-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agent_skill_registry-0.1.0-py3-none-any.whl
- Upload date:
- Size: 63.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6b9664bde303bb56737b9446b34e38349c223e566c001e5a8ee6263df9ad2f1
|
|
| MD5 |
ee3a410ef86b922c3df802747bd380e9
|
|
| BLAKE2b-256 |
2db165c98e65e3acccf3138d47a6f098b1d192a6c5bea4fd0b2b2039b8eb8753
|
Provenance
The following attestation bundles were made for agent_skill_registry-0.1.0-py3-none-any.whl:
Publisher:
release.yml on christopher-czaban/skill-registry
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_skill_registry-0.1.0-py3-none-any.whl -
Subject digest:
d6b9664bde303bb56737b9446b34e38349c223e566c001e5a8ee6263df9ad2f1 - Sigstore transparency entry: 2466552206
- Sigstore integration time:
-
Permalink:
christopher-czaban/skill-registry@649da778ef1f1f449440ec46ba48faf31eb7e19a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/christopher-czaban
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@649da778ef1f1f449440ec46ba48faf31eb7e19a -
Trigger Event:
release
-
Statement type: