Skip to main content

A fast multi-source, multi-target skill manager.

Project description

skillmux

中文文档 / Chinese Documentation

skillmux is a high-performance CLI for managing Skills across multiple remote sources and multiple local runtime targets.


Table of Contents


What is skillmux

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.

Core Capabilities

1) Multi-source skill discovery

  • Search skills from configured source providers.
  • Built-in source adapters include:
    • kingdee
    • clawhub
  • Rich search output includes:
    • slug
    • version
    • description

2) Flexible install flows

Install from:

  • Named skill slug from configured source.
  • GitHub shorthand:
    • gh:owner/repo
    • github:owner/repo
  • Full GitHub repository URL.

Optional install controls:

  • --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.

5) Clean removal

  • Remove a skill from managed targets.
  • Optional purge mode for deeper cleanup.

6) Multi-target support

Supports target-specific install layouts, including:

  • codex
  • qoder
  • qoderwork
  • kiro
  • workbuddy

Installation

Via pip

pip install skillmux

Verify installation

skillmux --version

Command Overview

Search

skillmux search <keyword> [--limit <n>] [--page <n>] [--json]

Install

skillmux install <skill_or_repo>
  [--version <version>]
  [--ref <git-ref>]
  [--subdir <path>]
  [--as <name>]
  [-y|--yes]
  [--force]
  [--json]

List

skillmux list [--json]

Update

skillmux update [skill]
skillmux update --all [--ref <git-ref>]

Remove

skillmux remove <skill> [--purge]

Config

skillmux config list
skillmux config get <key>
skillmux config set <key> <value>
skillmux config targets <target1,target2,...>
skillmux config targets set <target1,target2,...>
skillmux config targets add <target1,target2,...>
skillmux config targets remove <target1,target2,...>

Configuration

skillmux reads settings from config and command-line overrides.

Common configuration dimensions:

  • API endpoint and timeout.
  • Default source.
  • Install targets.
  • Token resolution strategy.

CLI-level override flags:

  • --config <path>: use a specific config file.
  • --api <url>: override API endpoint.
  • --token <token>: provide token for the current run.
  • --source <name>: override default source.

Source Resolution Rules

When installing:

  1. If input looks like GitHub shorthand/URL, it is handled by GitHub flow.
  2. Otherwise it is resolved through the currently selected source backend.
  3. Source metadata is persisted for future updates.

This design allows predictable updates even when multiple sources may contain similarly named skills.


Install Targets

Each target maps to a specific local directory layout.

Why this matters:

  • Different agent products discover skills in different paths.
  • skillmux normalizes install/update/remove operations across these paths.

Recommended workflow:

  1. Configure the target list once.
  2. Install skills normally.
  3. Use list and update --all for routine maintenance.

Examples

Basic flow

skillmux search pdf
skillmux install pdf-processing
skillmux list
skillmux update --all
skillmux remove pdf-processing

Install from GitHub

skillmux install gh:owner/repo
skillmux install https://github.com/owner/repo

Install from subdirectory at a ref

skillmux install gh:owner/repo --ref v1.2.3 --subdir skills/my-skill --as my-skill

JSON output for automation

skillmux search retrieval --json
skillmux list --json

Troubleshooting

Skill not found

  • Confirm source selection (--source or config default).
  • Retry with a broader search keyword.

Update fails for one skill

  • Check whether the original source is still reachable.
  • If source changed, remove and reinstall from desired source.

Target mismatch

  • Verify configured targets:
    skillmux config get install.targets
    

Development

Build

cargo build

Format and check

cargo fmt
cargo check

Release

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 archives 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 all build outputs plus SHA256SUMS.txt to the same GitHub Release, publishes wheels to PyPI, and can update Homebrew, WinGet, and Launchpad PPA when the related secrets and variables are configured. See packaging/homebrew, packaging/winget, and packaging/ppa for the required CI configuration.


License

Released under the terms of the repository license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

skillmux-3.2.2-py3-none-win_arm64.whl (3.0 MB view details)

Uploaded Python 3Windows ARM64

skillmux-3.2.2-py3-none-win_amd64.whl (3.2 MB view details)

Uploaded Python 3Windows x86-64

skillmux-3.2.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

skillmux-3.2.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

skillmux-3.2.2-py3-none-macosx_11_0_arm64.whl (4.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

skillmux-3.2.2-py3-none-macosx_10_12_x86_64.whl (4.3 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file skillmux-3.2.2-py3-none-win_arm64.whl.

File metadata

  • Download URL: skillmux-3.2.2-py3-none-win_arm64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for skillmux-3.2.2-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 60de114b8b2b6ba78eb40c0ad1823f1d9a354f007483141b20493e9f57aff5bc
MD5 55ad4a4f83986fc1d21d530b32ca16c3
BLAKE2b-256 e21388e7a64a120bc9ba8805e5f7ac48487998fa675f0e5fc1fef3b9ebe1206f

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillmux-3.2.2-py3-none-win_arm64.whl:

Publisher: publish.yml on zack-zzq/skillmux

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

File details

Details for the file skillmux-3.2.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: skillmux-3.2.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for skillmux-3.2.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f941ed639a8165f52cd58d2c15826cf582d534a5d3fd4d2751c0ab37c117f46b
MD5 7800cdbf6b40736647c8f2cd86e4fe02
BLAKE2b-256 0efe39f4a6b4679b691eb3ef8ffaae4a8f7fa9a9f13fc51ab840268a11b38caa

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillmux-3.2.2-py3-none-win_amd64.whl:

Publisher: publish.yml on zack-zzq/skillmux

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

File details

Details for the file skillmux-3.2.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for skillmux-3.2.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4ab3a07018df8b7d8ea43aa8e84b60007a49feab0544738cd55eb8db460aedf4
MD5 df209b151a3e4996bc7f1e918b377107
BLAKE2b-256 1f7d4ccf13f881fe833c2111b5117d0c87a898de9c5bc24fde9632b07642f49c

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillmux-3.2.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on zack-zzq/skillmux

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

File details

Details for the file skillmux-3.2.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for skillmux-3.2.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fe22faa9471c2758e332f48e6ad38bb26b7d990cdb186b425b1f975191433533
MD5 042d75d0902644397002ae686e1082ec
BLAKE2b-256 3719b32764ff7a4a6e6506cd6ea5edb6ff5f52e67aa027e462fab6dc826f2f14

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillmux-3.2.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on zack-zzq/skillmux

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

File details

Details for the file skillmux-3.2.2-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for skillmux-3.2.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ed3caf3f6b427d4d634f74f91879ce5c64ba3358b12c7c7eaf61e8b2e20cf54
MD5 cb354fb813a87f67ec5aad90e40fb8fc
BLAKE2b-256 9724d1a9c52c2f2c11eb7c8c83a0214304d35424d60dc1d653d5bfcec3947a86

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillmux-3.2.2-py3-none-macosx_11_0_arm64.whl:

Publisher: publish.yml on zack-zzq/skillmux

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

File details

Details for the file skillmux-3.2.2-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for skillmux-3.2.2-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0b46dd9e7f8646ee6680f6a13311c6a66fc63b78e0e1e0a8f74323d1d5e21489
MD5 72e8cebdc9aad2e366fef0edb68ce899
BLAKE2b-256 36fb9c7f22e84204abc922f69bd15e939346bc9e1d55d826fc9496765ab62316

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillmux-3.2.2-py3-none-macosx_10_12_x86_64.whl:

Publisher: publish.yml on zack-zzq/skillmux

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