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.27.tar.gz (133.5 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.27-cp310-abi3-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+Windows x86

skilly-0.0.27-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.27-cp310-abi3-musllinux_1_2_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

skilly-0.0.27-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.27-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.27-cp310-abi3-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

skilly-0.0.27-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.27.tar.gz.

File metadata

  • Download URL: skilly-0.0.27.tar.gz
  • Upload date:
  • Size: 133.5 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.27.tar.gz
Algorithm Hash digest
SHA256 16518ab9879f2447eeb7513bea641c8881ff1de80ea5ace374dd83ebbabca7e4
MD5 2a361509a8e8b21514e003b27a6ee1f8
BLAKE2b-256 9d50aafbe6b72f718065e3ab8922369024ed998d08f8206903ef090b182e10c6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.27-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.27-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8e06d616ba58bce9195fe10070eda28adc22cb271e1628e568925f2421430b3c
MD5 80ee62c6b50d331f74b04736d2370c1e
BLAKE2b-256 3e2d9bc7edf4b1fe5116bf5e43de6210014a9b6f3266c3cbb00d17269a9a205c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.27-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.27-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 4347a797fd6986665890f347390cc46447615e1b7bc43bb8252434ad7549deed
MD5 b78f061ac09b8bf16c12d2f08695b1c7
BLAKE2b-256 e2b934f6256fdda6499f4b1167843edd3ff12533432474d63066650d97893a18

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.27-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.27-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fac55fff2df3cb1c9d4d46e432fca0224ce1da0f749b7b1d8cae61ffe4bea740
MD5 3b96d39768be180f122a1956a030b662
BLAKE2b-256 89d8f0bf041a09d636bc918bc95d70e0b9c9fb3ac400743be6001d92b38b4663

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.27-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.27-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8ca1b89be60e73c1d4aeee22a287debf44989bbc7fa90754b5f1e2ac2990a92a
MD5 b8940320256cfdf25267b2c1d7d85814
BLAKE2b-256 a4c9271a492ddbeb7d50ebc587cb70472b9167f234513ef555793dec80930de4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.27-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.27-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a7314b160418559ed3837b4eaff5e705ecf996142186813673a49a09b8d312cf
MD5 e5a27f1f6b35cb5ebaf30c1eba0ffacf
BLAKE2b-256 50b39c97b50974b17b792c42c4afc70e0e627083a876680506bc5ff3294a763d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.27-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.27-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ed64ab9bd126ec54319e56ea319943fe295b1af5143201f410caa517034ef1f3
MD5 620cb1a8d271f71ad1eb5f60bc6704a5
BLAKE2b-256 77689307cc47e709086bc3777adfe38b2b113ead48dfe5cf309f36383db355bc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.27-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.27-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c01e83a9d65056f8b39213e3939253002015f2a3a5dc3e686b143b9c570ee2e6
MD5 b17d19f4b0c514048c310b4e128c31c9
BLAKE2b-256 dbded2a69e59fdb07d4764a30376e24175a63f9768742ff37ddd081d620fa4fd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.27-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.27-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3b7736c28ce1b0a0b779aa8b40716bc378de44bd26b8b0b35e66276456c1eec1
MD5 75bf4d45d88729bb7997b7cb50c7e8c2
BLAKE2b-256 a9866c47aea3d7d43921156bc9efa19ef8b2f8b391a2068e92b8aa523cb57054

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