Intelligence Package Manager - Agent skill virtual environment manager
Project description
IpMan - Intelligence Package Manager
I can take on ten.
The skills housekeeper for AI agents. Discover, organize, absorb, dedup and clean the skills already on your machine — like a disk-cleanup utility, but for agent skills. It never installs and never destroys.
Documentation | 中文文档 | 中文 README
What it is (and is not)
Skills pile up: copied folders, half-remembered clones, duplicates across projects, broken leftovers. Your agent's own tooling installs skills — but nothing tidies them.
IpMan is that missing housekeeper. It does not install or uninstall skills — your agent's native mechanisms keep doing that. IpMan handles what they don't:
| Verb | What it does |
|---|---|
| scan / status | See every skills directory (user-global and per-project) and the true state of each skill: real dir, symlink, broken, duplicate, suite-managed |
| absorb | Take loose skill folders into one central store (a fresh git repo each — changes tracked from then on) and leave a symlink in place. Your agent notices nothing |
| dedup | Find byte-identical copies across projects and merge them onto one stored original |
| clean | Broken links, orphaned store entries, empty shells — quarantined to ~/.ipman/trash, never deleted |
| enable / disable | Switch a skill off without losing it (the link goes, the original stays), switch it back on anytime |
| pack | Name a set of skills and enable/disable them as one unit, in any scope |
| takeover / release | Optionally put a whole skills directory in IpMan's custody: survives accidental rm -rf, restorable with one sync |
Everything destructive is dry-run first and quarantined — recoverable, always.
Quick start
pipx install ipman-cli # or: pip install ipman-cli / uv tool install ipman-cli
ipman # in a terminal: the interactive TUI
ipman status # or the same, as plain text
ipman scan # deep scan: wild skills, duplicates, cleanables
Typical first session:
ipman absorb --user # inventory of ~/.claude/skills: what's absorbable
ipman absorb --user my-notes # take one over (moved to store, symlinked back)
ipman dedup # duplicate report (dry-run)
ipman clean # cleanables report (dry-run)
Use it from inside your agent
Install the companion skill (explicitly — IpMan never auto-installs anything, not even itself):
ipman skill-sync --scope claude-code-user
Then just tell your agent "整理一下我的技能" / "clean up my skills" — it drives the same engine through --json commands, with confirmation before every write. The skill keeps itself in lockstep with the CLI (ipman skill-sync --check).
Add IpMan to your agent's status bar:
ipman statusline # -> 📦 user⚑12 | myproj✓3 (⚑ in custody, ✓ native)
Wire it into Claude Code by adding it to your statusLine command in settings.json.
Safety model
- Never installs, never uninstalls — organization only
- Dry-run first:
dedup/cleanreport before--apply - Quarantine, not deletion:
clean --applymoves to~/.ipman/trash;--empty-trashis a separate, explicit step - Pinned read-only originals: absorbed skills link to read-only snapshots — even a trailing-slash
rm -rfcan't gut the store - Suites, clones and marketplace plugins are left alone: anything with its own manager or upstream is reported, never touched
Status
v3 (0.4.x): the housekeeper surface is new; verified on macOS with Claude Code. Windows: per-skill operations expected to work (junction fallback, CI-tested), directory takeover pending a Windows verification pass. Feedback and issues welcome.
License
Apache License 2.0 — see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ipman_cli-0.4.8.tar.gz.
File metadata
- Download URL: ipman_cli-0.4.8.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
090513a1b7a5ea00254d1dfcc455bd70fe4bf237691349ea94d6fd3f4323d3b1
|
|
| MD5 |
f7e82669979c1764cbe34457280d53cc
|
|
| BLAKE2b-256 |
fad6ea11896bb3d2150b047aa6db118cb3b9142366811b80838f8bf887302f18
|
Provenance
The following attestation bundles were made for ipman_cli-0.4.8.tar.gz:
Publisher:
publish.yml on twisker/ipman
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ipman_cli-0.4.8.tar.gz -
Subject digest:
090513a1b7a5ea00254d1dfcc455bd70fe4bf237691349ea94d6fd3f4323d3b1 - Sigstore transparency entry: 2072379086
- Sigstore integration time:
-
Permalink:
twisker/ipman@3d64f10e67b846952664a34a3d92993fb79b982d -
Branch / Tag:
refs/tags/v0.4.8 - Owner: https://github.com/twisker
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3d64f10e67b846952664a34a3d92993fb79b982d -
Trigger Event:
push
-
Statement type:
File details
Details for the file ipman_cli-0.4.8-py3-none-any.whl.
File metadata
- Download URL: ipman_cli-0.4.8-py3-none-any.whl
- Upload date:
- Size: 92.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbc1ddca9ca113e404f48d07131c1878d4103cc826138ec7e6381aa70c07d308
|
|
| MD5 |
efd26b5c1b5686ea415ae6c265fd7ec2
|
|
| BLAKE2b-256 |
9885d2aa2e6d30c69c641fe78bf1f62d780aeea751e7d74447899365ae1cdeb8
|
Provenance
The following attestation bundles were made for ipman_cli-0.4.8-py3-none-any.whl:
Publisher:
publish.yml on twisker/ipman
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ipman_cli-0.4.8-py3-none-any.whl -
Subject digest:
bbc1ddca9ca113e404f48d07131c1878d4103cc826138ec7e6381aa70c07d308 - Sigstore transparency entry: 2072379091
- Sigstore integration time:
-
Permalink:
twisker/ipman@3d64f10e67b846952664a34a3d92993fb79b982d -
Branch / Tag:
refs/tags/v0.4.8 - Owner: https://github.com/twisker
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3d64f10e67b846952664a34a3d92993fb79b982d -
Trigger Event:
push
-
Statement type: