A minimal CLI to manage agent skills from GitHub releases.
Project description
bms-skills-cli
A minimal, user-friendly Python CLI to manage agent skills from GitHub releases or branches. It installs skills to both ~/.agents/skills and ~/.claude/skills for seamless integration across platforms.
Features
- Interactive Installation: Select specific skills to add from any GitHub repository.
- Multi-Repo Support: Manage skills from multiple repositories independently.
- Lock File State: Tracks installed sources (release tags or branches), pinned commit SHAs, and skills in
~/.agents/skills.lock.jsonfor reproducibility. - Automated Updates: Easily upgrade all or specific repositories to their latest GitHub release or tracked branch head.
- Smart Caching: Downloads are cached in a temporary directory (
TEMPor/tmp) to avoid redundant network usage. Can be overridden withBMS_SKILL_CACHE_DIR. - GitHub CLI Integration: Uses the
ghtool for fast downloads if available, with a reliablerequestsfallback.
Installation
Install using pip or uv:
pip install bms-skills-cli
# or
uv tool install bms-skills-cli
Usage
1. Add Skills
Interactively select skills to add from a GitHub repository's latest release:
bms-skills add google/gemini-cli-skills
If a repository has no releases, the CLI automatically falls back to the main branch. You can also install directly from a branch:
bms-skills add anthropics/skills --branch main --skill pdf
2. Remove Skills
Interactively select installed skills to remove from your system:
bms-skills remove
3. Update Skills
Update all installed skills to their latest tracked versions:
bms-skills update
Or update a specific repository:
bms-skills update --repo google/gemini-cli-skills
4. Sync Skills
Install all skills as defined in the lock file using the pinned commit SHAs (useful for setting up a new machine):
bms-skills sync
Skill Definition
A folder is recognized as a valid skill if it resides within a skills/ directory at the repository root and contains a SKILL.md file.
Development
This project uses uv for dependency management.
# Install dependencies
uv sync
# Run locally
uv run bms-skills --help
# Run tests
uv run pytest
# Type check
uv run pyright bms_skills
License
MIT
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 bms_skills_cli-0.3.tar.gz.
File metadata
- Download URL: bms_skills_cli-0.3.tar.gz
- Upload date:
- Size: 24.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4d1635b5341ed337c3e039edb6a1fca8289f3c5f06bdafa453ca335362caeed
|
|
| MD5 |
65dbaeb46138efa081914a8158481d5e
|
|
| BLAKE2b-256 |
b012ed1f792357a2560c86cf38a94440b9cdf8d35e415e4b674078adff8e6e17
|
Provenance
The following attestation bundles were made for bms_skills_cli-0.3.tar.gz:
Publisher:
publish.yml on bmsuisse/bms-skills-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bms_skills_cli-0.3.tar.gz -
Subject digest:
e4d1635b5341ed337c3e039edb6a1fca8289f3c5f06bdafa453ca335362caeed - Sigstore transparency entry: 1400501595
- Sigstore integration time:
-
Permalink:
bmsuisse/bms-skills-cli@2322d2b82b47d6df6cac95ca33623544ebc6724d -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/bmsuisse
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2322d2b82b47d6df6cac95ca33623544ebc6724d -
Trigger Event:
release
-
Statement type:
File details
Details for the file bms_skills_cli-0.3-py3-none-any.whl.
File metadata
- Download URL: bms_skills_cli-0.3-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc147ff03571de15d0a2571c3d1565673a7b01ad0f89eb13d404bec5cfafcdc4
|
|
| MD5 |
571f67cca45be478f41af99a1390e3ac
|
|
| BLAKE2b-256 |
cd273d0c68f68e4b1c548b7fd7741cdc89e8a9c8dc72d612fab2db14039412e1
|
Provenance
The following attestation bundles were made for bms_skills_cli-0.3-py3-none-any.whl:
Publisher:
publish.yml on bmsuisse/bms-skills-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bms_skills_cli-0.3-py3-none-any.whl -
Subject digest:
bc147ff03571de15d0a2571c3d1565673a7b01ad0f89eb13d404bec5cfafcdc4 - Sigstore transparency entry: 1400501671
- Sigstore integration time:
-
Permalink:
bmsuisse/bms-skills-cli@2322d2b82b47d6df6cac95ca33623544ebc6724d -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/bmsuisse
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2322d2b82b47d6df6cac95ca33623544ebc6724d -
Trigger Event:
release
-
Statement type: