Skip to main content

Manage agent skills.

Project description

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 the CLI without installing it:

uvx skilly --help
npx @xelandernt/skilly --help

Or install the CLI and Python package:

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

Exclude dependency categories when needed:

uvx skilly scan --no-dependency-groups --no-optional-dependencies

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.

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

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(include_dependency_groups=True),
)

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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+Windows x86

skilly-0.0.25-cp310-abi3-musllinux_1_2_x86_64.whl (3.5 MB view details)

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

skilly-0.0.25-cp310-abi3-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

skilly-0.0.25-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.25.tar.gz.

File metadata

  • Download URL: skilly-0.0.25.tar.gz
  • Upload date:
  • Size: 119.3 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.25.tar.gz
Algorithm Hash digest
SHA256 100d2bdabf092b122d2f3c2bdc772385f1f539970e590af0b9dc6899c32dfdbd
MD5 128c35d335c7b70cc3ad2b715e4208e9
BLAKE2b-256 469e054dd0652f6c7638d15bb2830f047322dc507ca7c9b35226c9c5ad2a4fbe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.25-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.25-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e8a70cf1491f568ad4056535e74210524ba8d06adab40497f63d72f6da5a33fa
MD5 f9b9b2376265c3e50cb1256aa40e3fb8
BLAKE2b-256 5d238a76dcd7f14cc72eaf86baa5b6c690acf2d80a0b07f301689a828b6b4a8e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.25-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.25-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 c6921a8a3b7467be3891eba2bd55120e7a0aa0156fd8fe890ccb7a2713813d46
MD5 193e6a78eea3bf14a3b02209fbcf3bdf
BLAKE2b-256 57d748d79714b19555f43796debfeb7c724aa1fa1a1def031fa1d4a9e275e8b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.25-cp310-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 3.5 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.25-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 094f79a7ff4bbf7605af9b322e3c2dd1b213ff4cbf396cad793219f546622a9d
MD5 9df4718aaf2f46053790f263657cbde1
BLAKE2b-256 5ca19c03e699a03d1dfda7abf5d052d0c5415d067d2a1a0a2c1ac67c7b14f69e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.25-cp310-abi3-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 3.4 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.25-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 96f4cb66c9cee9c883c9498e6ae4117386addf6a604de8f608537b4c50636d9c
MD5 bc0f28ba22426780503e5bb64c3a46ff
BLAKE2b-256 edfe20dd74a64d5b6816b0ddd312f6c75c0a181a709802453c01f0df87e3918b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.25-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.25-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 90817142172b50813ffa78cff6917bd12aa718c45eecc6fb54a08c5644c2fe40
MD5 ceffbf2b6b4adab34fef5a2ddacb328c
BLAKE2b-256 6442d5f776fc30fb3e057d8fd492669b70d540cb341db8af0b29ffcdfec0ad5f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.25-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.25-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 79dca8bda2f542e722d4f7a448f9191596b8d2066460668ea87f6bd853a43698
MD5 d91c8223b192463e9641861c97003594
BLAKE2b-256 bcf6a5fa9eafec13d92b71550c401bcfcf141c3bcece5b5a8bdd1eea23d56112

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.25-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.25-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f805a6f4280ecd89bd21e62349fea025c1c69efa2f56e6453d7aa7b72643aee2
MD5 f7e148b124a0d381fa9ff22538c9f472
BLAKE2b-256 98a9deb61ab8542cf63defeefdd097f17c6e3dab534c33c6215e33fd2b710334

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skilly-0.0.25-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.25-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5214458da463cf61a98bf14bdddf5af6653b543968b1592b74e792735c9ff0a6
MD5 4d0ffb889be5bb3b4ec20cbd5a30c921
BLAKE2b-256 0331a793a0fb123ef41667497d502da1e2c2ed8e013919379170ca2553a6a805

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