Skip to main content

Manage agent skills.

Project description

npm pyrefly GitHub stars PyPI Downloads License

skilly

Manage Agent Skills from the command line or Python.

skilly creates specification-compliant skills, installs skills from GitHub or Python dependencies, and keeps managed skills up to date.

Installation

Run with uvx:

uvx skilly --help

Run with npx:

npx @xelandernt/skilly --help

Install the native CLI with Homebrew from this repository's tap:

brew tap xelandernt/skilly https://github.com/xelandernt/skilly
brew install xelandernt/skilly/skilly

Homebrew installs the CLI only. Install the Python package when you need the import surface as well:

pip install skilly

The npm package ships the same native Rust CLI behind the executable name skilly. The current npm support matrix is macOS arm64/x64, Linux x64 (glibc), and Windows x64.

Quick Start

Scan the current Python project for skills shipped by its dependencies:

uvx skilly scan

Download a skill from GitHub:

uvx skilly download https://github.com/example/project/tree/main/skills/code-review

Inspect installed skills:

uvx skilly list

CLI Commands

Command Purpose
uvx skilly scan Find skills provided by the project's Python dependencies.
uvx skilly download <github-url> Install one or more skills from GitHub.
uvx skilly list Browse, update, or remove installed skills.
uvx skilly update Preview available updates; add --yes to apply all updates.
uvx skilly remove <name> Remove an installed skill by directory name.
uvx skilly skillsmp search <query> Search SkillsMP and install a selected result.
uvx skilly create Create a valid skill through a terminal wizard or explicit options.

Use uvx skilly <command> --help for all options.

Create Skills

Interactive terminals open a full-screen editor for the required and optional Agent Skills fields. Ctrl+S creates the skill, Ctrl+X cancels, and Enter in the multi-line editors inserts real line breaks.

For scripts and automation, provide the required name and description:

uvx skilly create deployment-checks \
  --description "Validate deployment readiness before a production release." \
  --instructions "# Instructions

Run the deployment checklist and report blockers." \
  --metadata owner=platform \
  --with-scripts \
  --yes

Existing skills are rejected by default. Use --overwrite to replace one atomically. See uvx skilly create --help for the complete contract.

Install Dependency Skills

uvx skilly scan reads pyproject.toml and the project's .venv, then offers skills shipped by direct, development, and optional dependencies:

uvx skilly scan

Filter named groups and extras when needed:

uvx skilly scan --group dev --exclude-extra docs

Install GitHub Skills

uvx skilly download https://github.com/example/project

When a repository contains multiple skills, select one or install all:

uvx skilly download https://github.com/example/project --skill-name code-review
uvx skilly download https://github.com/example/project --all

Destinations

Management commands accept the same destination options:

Option Destination
--local Project-local skills directory.
--global User-global skills directory.
--claude Claude skills directory.
--codex Codex skills directory.
--copilot GitHub Copilot skills directory.
--directory <path> Explicit directory; overrides all other destination options.

Without destination options, skilly uses .agents/skills.

Set SKILLY_DIRECTORY to change that default without passing --directory every time:

export SKILLY_DIRECTORY="$HOME/.config/skilly/skills"
skilly list

--directory, --local, --global, --claude, --codex, and --copilot override SKILLY_DIRECTORY when provided explicitly.

uvx skilly download https://github.com/example/project --global --codex
uvx skilly list --local --claude

Destination Mapping

skilly resolves destination paths before use. Relative paths become absolute from the current working directory, and --directory "~/.copilot" expands ~ to your home directory.

Flags Resolved destination
none SKILLY_DIRECTORY when set, otherwise .agents/skills
--local .agents/skills
--global ~/.agents/skills
--claude .claude/skills
--claude --global ~/.claude/skills
--codex .codex/skills
--codex --global ~/.codex/skills
--copilot .github/skills
--copilot --global ~/.copilot/skills
--directory <path> Exactly that directory, after ~ expansion and absolute-path resolution.

--directory overrides --local, --global, --claude, --codex, and --copilot.

GitHub Authentication

Authenticated requests have higher GitHub API rate limits. Use the first available token:

export SKILLY_GITHUB_TOKEN=ghp_your_token
# or GITHUB_TOKEN / GH_TOKEN

GitHub-fetching commands also accept --github-token.

Python API

SkillRepository is the stateful management interface. Bind a destination, project settings, or custom filesystem once and reuse it:

from pathlib import Path

from skilly import ProjectSettings, Skill, SkillRepository

repository = SkillRepository(
    directory=Path(".agents/skills"),
    project=ProjectSettings(
        dependency_groups=("dev",),
        optional_dependencies=("docs",),
    ),
)

created = repository.install(
    Skill(
        name="code-review",
        description="Review code for correctness and maintainability.",
        content="# Instructions\n\nReview the proposed change.",
    )
)

for match in repository.scan_project():
    print(match.available.name, match.status)

Use focused discovery functions when no repository state is needed:

from skilly import discover_installed_skills, discover_venv_skills

installed = discover_installed_skills()
dependency_skills = discover_venv_skills()

The SkillsMP client returns typed results directly. Async methods expose the same result types without blocking the event loop:

from skilly.skillsmp import ClientSettings, SkillsMp, SkillsMpSearchQuery

client = SkillsMp(settings=ClientSettings(base_url="https://skillsmp.com/api/v1"))
result = client.search(SkillsMpSearchQuery(text="python", limit=5))
print(result.data.skills[0].github_url)

Development

Install development dependencies and the editable extension:

just install

Run the required quality gates:

just lint
just test
just typecheck

The TypeScript launcher package also has dedicated helpers:

just ts::build
just ts::test
just ts::typecheck
just ts::smoke
just ts::publish-dry-run

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

skilly-0.0.28.tar.gz (135.1 kB view details)

Uploaded Source

Built Distributions

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

skilly-0.0.28-cp310-abi3-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.10+Windows x86-64

skilly-0.0.28-cp310-abi3-win32.whl (2.4 MB view details)

Uploaded CPython 3.10+Windows x86

skilly-0.0.28-cp310-abi3-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

skilly-0.0.28-cp310-abi3-musllinux_1_2_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

skilly-0.0.28-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

skilly-0.0.28-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

skilly-0.0.28-cp310-abi3-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

skilly-0.0.28-cp310-abi3-macosx_10_12_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file skilly-0.0.28.tar.gz.

File metadata

  • Download URL: skilly-0.0.28.tar.gz
  • Upload date:
  • Size: 135.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for skilly-0.0.28.tar.gz
Algorithm Hash digest
SHA256 4150be313614926a454c414bf9c566451f21bffdf51c2e4319c69782d1852282
MD5 59af52431417d622d29082f17d83770d
BLAKE2b-256 97ed075e5b5206ca9103a031c537ff553b12638587e840d64ba0f1256fad0f36

See more details on using hashes here.

File details

Details for the file skilly-0.0.28-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: skilly-0.0.28-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for skilly-0.0.28-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a9be39a9df3d02fad225af4963a10a698cdfd27f4b32eaef6c79cdb79f8617aa
MD5 52bbe08e626280f4a8f430feff0c2ae6
BLAKE2b-256 8380ff94772970c44da015b19a734eb6f1ce982855ca2c557ba6ba286de5a4ed

See more details on using hashes here.

File details

Details for the file skilly-0.0.28-cp310-abi3-win32.whl.

File metadata

  • Download URL: skilly-0.0.28-cp310-abi3-win32.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for skilly-0.0.28-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 d307aac0dbbae69c05a59a8ee2525670dac52d9bafc4f190dee59eae36cd0a1f
MD5 a8c0b5167241c58d61f574193883132a
BLAKE2b-256 063339dea697b2613a91f355cde6abc6a81d0e3341590b650ba9e5fb365d7eaf

See more details on using hashes here.

File details

Details for the file skilly-0.0.28-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: skilly-0.0.28-cp310-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.10+, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for skilly-0.0.28-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f84a97ca91f74ee0fa7508e4ec6ffdd012d5c72277954becc2dd9219234d691e
MD5 1ffd1ec83d18ce58ff6df872a9e081c8
BLAKE2b-256 042ff3e08e45331fc4b337903a2ed3f90feaf78ab582593f0530760c89bd410d

See more details on using hashes here.

File details

Details for the file skilly-0.0.28-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: skilly-0.0.28-cp310-abi3-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.10+, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for skilly-0.0.28-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9aa477895a6c50bf9e0d9429cc635e1d786a3bc94cbfe9a9f6b3fad8afeb68f1
MD5 94ffd4afae7539a5ef7f7cb53b482d83
BLAKE2b-256 dba2633c1fa820dd066ab6dfd7b1f80a0b9ea37665fa6ec71692178eb1edc764

See more details on using hashes here.

File details

Details for the file skilly-0.0.28-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: skilly-0.0.28-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for skilly-0.0.28-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f4ffe22398f3df9e3d68d2b90eb4f14117472b320299ca81aa46fc9e84fa94b
MD5 ba1fd64dbc8592d45de45fb11e2ab011
BLAKE2b-256 18ca5daeb3c6698806dd82545594b2eaed41fc26aaed1eaefe71b4ab318a150d

See more details on using hashes here.

File details

Details for the file skilly-0.0.28-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: skilly-0.0.28-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for skilly-0.0.28-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 392abab80b65a5e4c98cc8a5b22380db899f25b000203baa4c4431bdcf27118e
MD5 ad77128e3bd9e11a11111babbf302c9a
BLAKE2b-256 f03a0ccc2fab0f130de8fc7cb86c579f4d24b6a063dbc19fc494ed1126069b47

See more details on using hashes here.

File details

Details for the file skilly-0.0.28-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: skilly-0.0.28-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.10+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for skilly-0.0.28-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c27796dbd5212e06578ed69f17bd8742f66206da0d536fa5f81200c0145fd298
MD5 da3e4ee317efda2f6d8b45df4db0580a
BLAKE2b-256 42db54c37b5445b6c81bb92b8dbc5cf18c9ad8aa8286149b4f16fb0840ff7dbd

See more details on using hashes here.

File details

Details for the file skilly-0.0.28-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: skilly-0.0.28-cp310-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.10+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for skilly-0.0.28-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 567376c7c6c2b2ac46909e213b8b992cd7ee0d03a82fc3f92a998ec4b880ce2d
MD5 02d76de266274a058512b46dbea41e37
BLAKE2b-256 c812f3e91b69857bed6c1e98a4a65753202a54595711d489366c5b665d3ca9c0

See more details on using hashes here.

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