SkillMux is a high-performance command-line interface (CLI) tool designed to unify the management of skills across multiple remote sources and local runtime targets. It simplifies the process of discovering, installing, updating, and removing skills from various ecosystems, including official registries, internal hubs, and GitHub repositories.
Key Features:
Multi-source skill discovery: Search and discover skills from diverse sources such as registries, GitHub repositories, and internal hubs.
Flexible installation flows: Install skills directly from named slugs, GitHub shorthand URLs, or full repository URLs with optional controls for versioning, specific git references, and subdirectories.
Rich local inventory management: List installed skills with detailed metadata, including source, version, and description.
Safe updates and removals: Update individual or all installed skills securely, preserving source information for deterministic behavior. Remove skills with options for deeper cleanup.
Multi-target support: Configure and manage skill installations across different target layouts to accommodate various agent products.
Target Audience and Benefits:
Ideal for developers, DevOps engineers, and automation enthusiasts who need to streamline skill management across multiple sources and runtime environments. SkillMux empowers users to efficiently manage skills from diverse ecosystems while maintaining reproducibility and consistency in their workflows.
Available via the Windows Package Manager (Winget), you can easily install SkillMux using the winget command line, making it simple to integrate into automated deployment pipelines.
Modern agent runtimes often need skills from different ecosystems (official registries, internal hubs, GitHub repos), and they may store those skills in different local folders.
skillmux solves this by providing:
One unified CLI for search / install / list / update / remove.
Multiple source backends in one tool.
Multiple target layouts for different agent products.
Reproducible metadata tracking for installed skills.
--version to pin a version when source supports versioning.
--ref to install from a specific git ref.
--subdir to install from a repository subdirectory.
--as to rename the local installed folder.
--force to overwrite/refresh existing content.
--json for machine-readable output.
For registry sources, the local folder name defaults to the skill slug. Display names from SKILL.md are saved as metadata, which avoids duplicate installs when a skill has a localized display name.
3) Rich local inventory
skillmux list shows installed skills with metadata such as:
target
local skill name
source
version
description
4) Safe updates
Update one installed skill by name.
Update all installed skills with --all or with no update argument.
Shows per-skill installed / updated / unchanged status instead of repeated install logs.
Keeps source information to make update behavior deterministic.
The release helper keeps Cargo.toml and pyproject.toml in sync, commits the version bump, creates an annotated tag, pushes the branch and tag, then creates a GitHub release with generated notes.
Interactive:
python scripts/release.py
Non-interactive:
python scripts/release.py patch --yes
python scripts/release.py major --yes
PowerShell:
.\scripts\release.cmd patch --yes
Use --dry-run to preview the release. The script requires a clean git worktree, git, and an authenticated GitHub CLI (gh auth status).
The publish GitHub Actions workflow runs when a GitHub Release is published. It builds PyPI wheels and standalone CLI binaries for:
x86_64-unknown-linux-gnu
aarch64-unknown-linux-gnu
x86_64-pc-windows-msvc
aarch64-pc-windows-msvc
x86_64-apple-darwin
aarch64-apple-darwin
The workflow uploads the standalone CLI binaries plus SHA256SUMS.txt to the same GitHub Release and publishes wheels to PyPI. After that, it updates packaging/winget metadata on the default branch; that metadata commit triggers the publish-winget workflow, which submits the WinGet update with WingetCreate.
WinGet automation requires PACKAGING_METADATA_TOKEN to be a PAT or GitHub App token that can push to this repository and trigger workflows. It also requires WINGET_CREATE_GITHUB_TOKEN for WingetCreate submission. Set WINGET_RELEASE_REPOSITORY only if the GitHub Release assets live in a different repository than the one already recorded in packaging/winget.
License
Released under the terms of the repository license.