A thin Typer wrapper over
npx skillsthat installs skills into Claude Code plugin directories.
npx skills installs Claude Code skills to ./.claude/skills/<name>/ at the current working directory. It has no flag to redirect the target.
A Claude Code marketplace repo holds many plugins, each with its own skills/ directory at <plugin>/skills/<name>/. Running npx skills at the repo root drops the skill in the wrong place; running it inside a plugin creates <plugin>/.claude/skills/… which the plugin manifest doesn't see.
ckills runs npx skills add in a temporary directory, then moves each produced skill into <plugin>/skills/. Plugin directories are auto-discovered (presence of .claude-plugin/plugin.json or an existing skills/ dir). skills-lock.json is discarded — plugin dirs track skills as plain files.
Requires Python >=3.11, uv, and npx (Node.js).
uv sync
uv run ckills list-plugins
uv run ckills list-available vercel-labs/agent-skills
uv run ckills install marimo-plugin marimo-team/marimo-pair --skill marimo-pair| Command | Purpose |
|---|---|
ckills list-plugins |
Print plugin dirs in the current marketplace repo. |
ckills list-available <source> |
Pass-through of npx skills add <source> -l. |
ckills install <plugin> <source> [--skill NAME ...] [--all] [--force] |
Install one or more skills into <plugin>/skills/. |
All commands accept --root PATH to point at a marketplace repo other than the enclosing git repo.
my-marketplace/
├── marimo-plugin/
│ ├── .claude-plugin/plugin.json
│ └── skills/
├── notebook-plugin/
│ └── skills/
└── (etc.)
$ cd my-marketplace
$ ckills list-plugins
marimo-plugin
notebook-plugin
$ ckills install marimo-plugin marimo-team/marimo-pair --skill marimo-pair
✓ marimo-pair → marimo-plugin/skills/marimo-pairmake install # uv sync + pre-commit install
make test # pytest
make check # lint + test
make format # ruff --fix + ruff formatMIT