Skip to main content

napoln

A package manager for agent skills. Install from any git repo, upgrade without losing your customizations, and manage skills across every agent you use.

"I don't even have any good skills. You know, like nunchuck skills, bow hunting skills, computer hacking skills."

  • Multi-agent. One command places skills into Claude Code, Gemini CLI, pi, Codex, and Cursor.
  • Versioned upgrades. Three-way merge on upgrade preserves your local customizations.
  • Decentralized. Any git repo is a valid source. No registry required.
  • Content-addressed. Every stored version has a deterministic SHA-256 hash.
  • Zero-copy placement. Reflink (copy-on-write) on APFS and btrfs. Full copy fallback elsewhere.
  • Self-describing. A bundled skill teaches your agents how to use napoln.

napoln demo

Install

Requires Python 3.11+. napoln is published on PyPI.

Run without installing:

uvx napoln add owner/repo

Or install globally:

uv tool install napoln    # recommended
pipx install napoln       # alternative
pip install napoln        # plain pip

First Run

On first run, napoln installs its bundled management skill so your agents know how to use it. After that, your agents can find and install new capabilities without prompting you for CLI commands.

Agents prefer uvx napoln so they never hit PATH issues. The bundled skill is automatically installed alongside your first skill, so it works out of the box.

Quick Start

napoln add owner/repo --all

napoln clones the repo, discovers all skills, and places them in every detected agent's skill directory:

✓ Placed 'code-review' in ~/.claude/skills/code-review (clone)
✓ Placed 'code-review' in ~/.agents/skills/code-review (clone)
✓ Placed 'code-review' in ~/.cursor/skills/code-review (clone)
✓ Added 'code-review' v1.2.0

Install a specific skill, pin a version, or use a local path:

napoln add owner/repo --skill code-review   # specific skill by name
napoln add owner/repo@v1.2.0               # pinned to a tag
napoln add owner/repo/team-a/skills --all   # every skill under a subdirectory
napoln add ./my-local-skill                 # local directory

A path after owner/repo scopes the install. If it points at a single skill, that skill is installed. If it points at a directory of skills (a bundle in a monorepo), --all, --skill, and the picker only see skills under that directory.

Multi-skill repos show an interactive picker when no --skill or --all flag is given:

napoln add owner/repo
# ? Select skills to install:
# ❯ ◯ code-review  Review pull requests for quality and correctness
#   ◯ testing       Generate and improve test coverage
#   ◯ rust          Rust-specific development patterns

Customize a skill, then upgrade without losing your changes:

napoln upgrade code-review
# ✓ Merged 'code-review' at ~/.claude/skills/code-review (2 files updated)

Remove one or more skills at once:

napoln remove design-audit design-frontend design-preflight

Remove all skills from a specific repository:

napoln remove --from-source raiderrobert/flow

Combine explicit names with --from-source filter:

napoln remove --from-source raiderrobert/flow design-audit

Commands

napoln add <source>           Install skills from a git repo or local path
napoln remove <name>...       Remove one or more skills
napoln remove --from-source  Remove all skills from a specific repository
napoln upgrade [<name>]       Upgrade one or all skills
napoln list                   Show installed skills and where they are placed
napoln install                Restore skill placements from manifests
napoln init [<name>]          Scaffold a new SKILL.md
napoln config                 View configuration and run housekeeping

All mutating commands support --dry-run. Use -p for project scope on any command.

Supported Agents

Agent Global Path Project Path
Claude Code ~/.claude/skills/ .claude/skills/
Gemini CLI ~/.agents/skills/ .agents/skills/
pi ~/.agents/skills/ .agents/skills/
Codex ~/.agents/skills/ .agents/skills/
Cursor ~/.cursor/skills/ .agents/skills/

Gemini CLI, pi, and Codex share ~/.agents/skills/ — one placement serves all three.

One SKILL.md for every agent

A skill is a single SKILL.md file. Every supported agent reads the same file; napoln does not fork or transform it per agent. Agent-specific frontmatter fields are optional, and each agent ignores the fields it does not understand. Skill authors should keep one canonical SKILL.md per skill rather than maintaining per-agent variants.

Team Workflow

Install with --project and commit the manifest:

napoln add owner/repo --skill code-review --project
# Creates .napoln/manifest.toml  (commit this)
# Places into .claude/skills/    (gitignore these)

Teammates clone and run:

napoln install
# ✓ Synced 3 project skills (3 restored)

napoln install syncs both global and project manifests automatically.

Documentation

License

MIT

Metadata

Release files for napoln 0.2.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for napoln 0.2.12
File Size Uploaded
napoln-0.2.12.tar.gz 567.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for napoln 0.2.12
File Interpreter ABI Platform
napoln-0.2.12-py3-none-any.whl Python 3 none any Details

Total release size: 620.4 kB

Release files / napoln-0.2.12.tar.gz

Download URL napoln-0.2.12.tar.gz
Size 567.8 kB
Tags Source
SHA-256 checksum
How to use checksums
2558c0085b4fd3187697ad564b3e5b60644c28b1c963e60f5f35180ba6870f97
BLAKE2b-256 checksum
How to use checksums
3eca76e0db0ec10f601b1500b5add4a9abdf87527865defd233effe06ac6ddc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / napoln-0.2.12-py3-none-any.whl

Download URL napoln-0.2.12-py3-none-any.whl
Size 52.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8734c5a95267478415b50c3ab21f0cb6ef2d492d2250f1d1ca5a4349dc3ffdea
BLAKE2b-256 checksum
How to use checksums
b4d6ef22127328190d56a7f89fae0b3b316e248dad448eade0429df7280917ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.2.12 This release

2 release files

0.2.11

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page