Skip to main content

Project-scoped skill & agent manager for Claude Code. Interactive TUI for picking which skills and agents load per project.

Project description

claudepacks

CI PyPI version Python 3.9+ License: MIT

Cut your Claude Code session overhead from ~7,000 to ~200 tokens. One command per project — pick exactly which skills and agents load, instead of all of them.

简体中文 · Changelog · Troubleshooting · Recipes · Architecture · Contributing · Releasing


Why

Claude Code injects metadata for every skill in ~/.claude/skills/ and every agent in ~/.claude/agents/ into the session preamble. With 50+ skills and a handful of agents installed globally — common once you accumulate tooling across multiple projects — that's ~7k tokens of overhead before you type a single character, in every conversation, in every project.

But most projects only need a handful of them. A backend API project doesn't need front-end design helpers. A data project doesn't need Docker deployment tools.

claudepacks moves your global skills and agents into a stash at ~/.claude/packs/, and each project's .claude/skills/ and .claude/agents/ hold symlinks to only what that project needs. You pick them with an interactive selector.

Before / after

~/.claude/skills/    (50 entries, ~6800 tokens loaded in every session)
~/.claude/agents/    (5  entries, ~600  tokens loaded in every session)

After claudepacks:

~/.claude/packs/                              (the stash — single source of truth)
├── skills/
│   ├── code-review/SKILL.md                  ← plain skill
│   ├── sql-helper/SKILL.md
│   └── devtools -> ~/.claude/skills/devtools ← source pack, symlinked in place
└── agents/
    ├── reviewer.md
    └── migrator.md

my-backend-project/.claude/skills/            (only what this project needs)
├── code-review  → ~/.claude/packs/skills/code-review/
└── sql-helper   → ~/.claude/packs/skills/sql-helper/

my-backend-project/.claude/agents/
└── reviewer.md  → ~/.claude/packs/agents/reviewer.md

Result: ~7000 tokens → a few hundred per conversation. Tokens you can spend on actual code.

Demo

claudepacks in action — picking which skills and agents this project loads

Install

pip install claudepacks

Requires Python 3.9+. macOS / Linux only (curses TUI is not supported on Windows). The only runtime dependency is PyYAML.

First run — automatic migration

The first time you run claudepacks in any project, it offers to migrate your existing global skills and agents into the stash:

First-time setup: migrating to ~/.claude/packs/

Backups (full copy, originals preserved):
  ~/.claude/skills  →  ~/.claude/skills.bak-20260513-120000
  ~/.claude/agents  →  ~/.claude/agents.bak-20260513-120000

Target: ~/.claude/packs/
  skills/  (3 plain skill(s) → move)
    + code-review
    + sql-helper
    + debugger
  skills/  (1 source pack(s) → symlink in place)
    ⟶ devtools -> ~/.claude/skills/devtools
  agents/  (2 agent(s) → move)
    + reviewer.md
    + migrator.md

Proceed? [y/N]:

y runs it; N aborts with zero side effects. The whole pre-existing ~/.claude/skills/ and ~/.claude/agents/ are first copied to timestamped backups before any move — your data is recoverable.

You can also invoke it explicitly: claudepacks init.

Source pack handling

A skill directory with a top-level SKILL.md and nested sub-skills (each sub-dir holding its own SKILL.md) is recognized as a source pack. Migration symlinks these in place rather than moving them — wrappers and tooling that reference absolute paths inside the pack keep working.

Use

cd <your-project>
claudepacks

Opens an interactive selector grouped into 🤖 agent and 📦 skill.

Key Action
↑ ↓ / j k navigate
space toggle current artifact on / off
A enable all visible
N disable all visible
a smart toggle all visible (invert majority)
/ filter (type to search; esc to clear)
apply changes and exit
esc quit without saving
g / G / PgUp / PgDn jump

State badges: ✓ on (green) / · off (dim). Pending changes are marked in yellow.

After applying, restart Claude Code to pick up the new project artifact set. The next /context should show a dramatically smaller Skills / Custom Agents footprint.

Layout

claudepacks/
├── LICENSE                  MIT
├── README.md                This file
├── README.zh-CN.md          Chinese
├── CHANGELOG.md             Release notes
├── CONTRIBUTING.md          Dev workflow + branch strategy
├── RELEASING.md             Release flow + SemVer policy + checklist
├── CLAUDE.md                Guidance for Claude Code in this repo
├── TODOS.md                 Deferred work, prioritized
├── pyproject.toml
├── docs/
│   ├── architecture.md      Design rationale + diagrams
│   ├── troubleshooting.md   Common issues + fixes (incl. zh-CN)
│   ├── recipes.md           Real-world workflows (incl. zh-CN)
│   └── demo.{gif,cast}      Demo assets
├── claudepacks/
│   ├── __init__.py
│   ├── __main__.py
│   ├── cli.py               Entry point — opens TUI / runs init
│   ├── core.py              Paths, artifact discovery, frontmatter
│   ├── migrate.py           First-time setup (~/.claude/{skills,agents} → packs/)
│   └── tui.py               Curses-based selector
└── tests/
    └── smoke.sh             End-to-end smoke tests

Status

v0.2.0. See CHANGELOG.

License

MIT — see 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 Distribution

claudepacks-0.2.0.tar.gz (40.0 kB view details)

Uploaded Source

Built Distribution

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

claudepacks-0.2.0-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file claudepacks-0.2.0.tar.gz.

File metadata

  • Download URL: claudepacks-0.2.0.tar.gz
  • Upload date:
  • Size: 40.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for claudepacks-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0660ec817bab563343a6afc37c8c1b1e293ae299418d7f748ee90078e4c3eb57
MD5 4a6e8590a0095a519ab44e5c9130fa3f
BLAKE2b-256 cd7f90390bd32f03f8cf0ecf8365f20182f56f01a53e9e78ed9293007c4e78d5

See more details on using hashes here.

File details

Details for the file claudepacks-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: claudepacks-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for claudepacks-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a56d7e4c914ca0b44e0cfb8d356e2f6aef01ca06a1bea1af3053af5ffe71b6f6
MD5 8afe2562e67b5ae904a1f3f079f8a8b9
BLAKE2b-256 f5f01e89d86fab584adc08e577c0812727ce48443593d927320e037397259501

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