Skip to main content

A minimal CLI to manage agent skills from GitHub releases.

Project description

skillup

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.json for 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 (TEMP or /tmp) to avoid redundant network usage. Can be overridden with SKILLUP_CACHE_DIR.
  • GitHub CLI Integration: Uses the gh tool for fast downloads if available, with a reliable requests fallback.

Installation

Install using pip or uv:

pip install skillup
# or
uv tool install skillup

Usage

1. Add Skills

Interactively select skills to add from a GitHub repository's latest release:

skillup 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:

skillup add anthropics/skills --branch main --skill pdf

2. Remove Skills

Interactively select installed skills to remove from your system:

skillup remove

3. Update Skills

Update all installed skills to their latest tracked versions:

skillup update

Or update a specific repository:

skillup 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):

skillup sync

5. Migrate from NPX Skills CLI

If you already have a skills-lock.json in your repository root, you can import it into the skillup lock format. The latest release or branch commit is resolved from GitHub at migration time.

skillup migrate

A custom path can be provided if the file is elsewhere:

skillup migrate path/to/skills-lock.json

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 skillup --help

# Run tests
uv run pytest

# Type check
uv run pyright skillup

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

skillup-0.3.2.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skillup-0.3.2-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file skillup-0.3.2.tar.gz.

File metadata

  • Download URL: skillup-0.3.2.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for skillup-0.3.2.tar.gz
Algorithm Hash digest
SHA256 c8811a9a94c758ffc8cc1e00046dffc1879676b161b245156341dd94599a9cfe
MD5 542eb883380390e0bc6be3a21cf5d6d1
BLAKE2b-256 f7153ff5b24711967bd3551893e4ef7801c1a7005de05e540abbf4b87f4f8efd

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillup-0.3.2.tar.gz:

Publisher: publish.yml on bmsuisse/skillup

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file skillup-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: skillup-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for skillup-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ef4181ac4186f3164a31dccd72223ecc3278ffca7bbacf1bb249a7522d49a01e
MD5 fb1fee90d6497c0d43cbecc7d93dac32
BLAKE2b-256 220f6b7d99cbcb983a7405e2e9b0770c9c7992c77e96d936d653a39dd42ffd55

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillup-0.3.2-py3-none-any.whl:

Publisher: publish.yml on bmsuisse/skillup

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page