skilllib 1.11.2 → 1.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -25
- package/dist/{chunk-OFWHWIER.js → chunk-3XDWEHI4.js} +718 -437
- package/dist/index.js +43 -13
- package/dist/json.d.cts +2 -1
- package/dist/json.d.ts +2 -1
- package/dist/{tui-NGTOOVAQ.js → tui-WSHQRBPF.js} +291 -700
- package/package.json +1 -1
- package/skills/skilllib/SKILL.md +4 -4
package/README.md
CHANGED
|
@@ -90,14 +90,14 @@ On first run, skilllib asks two things:
|
|
|
90
90
|
Then a good first session looks like this:
|
|
91
91
|
|
|
92
92
|
1. **You land in Places, on the repo you're in.** `enter` opens its skills; `enter` again opens a skill's issues and actions.
|
|
93
|
-
2. **Open Health** to see everything worth fixing, in every repo and in your global skills. **✦ Fix N issues automatically…** does the safe ones; the rest are your call, one
|
|
93
|
+
2. **Open Health** to see everything worth fixing, in every repo and in your global skills: what `skilllib doctor` reports. **✦ Fix N issues automatically…** does the safe ones; the rest are your call, one at a time.
|
|
94
94
|
3. **Add skills** to a repo with **+ Add a skill…**, the top row of its list.
|
|
95
95
|
|
|
96
96
|
---
|
|
97
97
|
|
|
98
98
|
## Use it from your agents
|
|
99
99
|
|
|
100
|
-
`skilllib agent-skill install` puts a small `skilllib` skill
|
|
100
|
+
`skilllib agent-skill install` puts a small `skilllib` skill where your agents look: `~/.claude/skills` when one of them reads it (Claude Code, and Cursor and Grok too), and `~/.agents/skills` (a link, or the real copy) for Codex and Zed. This is the one skill that should be global, because it's about every repo. Upgrading skilllib keeps it up to date, and `skilllib agent-skill remove` takes it out. Agents use it from their next session.
|
|
101
101
|
|
|
102
102
|
Then ask in plain words. A few examples, with what the agent runs:
|
|
103
103
|
|
|
@@ -125,8 +125,8 @@ Three panes: **Places** on the left, a **list** on the right, and the **details*
|
|
|
125
125
|
| **Your skills** | Your library: master copies, versioned. Nothing here loads anywhere until you add it to a repo. |
|
|
126
126
|
| **Global** | Everything your agents load in *every* repo: yours, plus vendor skills (plugins, claude.ai, Cursor built-ins). |
|
|
127
127
|
| **Plugins** | Every plugin installed, on or off: what it brings, where it's installed, and how much its skills get used. Turn it on or off, update it, uninstall it, or replace it with library skills. |
|
|
128
|
-
| **Health** |
|
|
129
|
-
| **Projects** | Every repo found in your project folders. `◆` marks the one you're in; `✕` `⚠`
|
|
128
|
+
| **Health** | What `skilllib doctor` reports, in every repo and in Global, each with its fix or choices. |
|
|
129
|
+
| **Projects** | Every repo found in your project folders. `◆` marks the one you're in; `✕` `⚠` its worst issue. |
|
|
130
130
|
| **Settings** | Your agents and the skilllib skill for them, your project folders, hidden repos, and backups. |
|
|
131
131
|
| **Help** | The keys and symbols. |
|
|
132
132
|
|
|
@@ -162,15 +162,19 @@ What skilllib flags:
|
|
|
162
162
|
|
|
163
163
|
| Issue | Fixes |
|
|
164
164
|
|---|---|
|
|
165
|
-
| **
|
|
166
|
-
| **
|
|
167
|
-
| **Folder missing** · **
|
|
168
|
-
| **
|
|
169
|
-
|
|
|
170
|
-
| **Differs from library** · **Not tracked** · **
|
|
171
|
-
| **Unused 30 days** | Remove
|
|
172
|
-
| **Broken link**
|
|
173
|
-
|
|
|
165
|
+
| **Repo and global copies** (a repo copy of a skill that also loads globally) | Stop loading it globally. Your call: that changes every repo. If you keep it global on purpose, remove the repo copies skilllib installed instead |
|
|
166
|
+
| **Also in a plugin** | Remove the plugin or turn it off, or turn it off in this repo only (`.claude/settings.local.json`, a local-only file git ignores), or remove your copy from this repo. Cursor ignores repo settings, so once the repo turns the plugin off, only turning the plugin off or removing it helps there |
|
|
167
|
+
| **Folder missing** · **No longer in your library** | Sync the project · copy it back into your library |
|
|
168
|
+
| **Out of date** · **Edited here** | Update every out-of-date skill in the repo (or one, from its *Update to vN* action) · save the edits as a new version, or discard them |
|
|
169
|
+
| **Not every agent can use it** | Add the links (links only; nothing is copied or moved). If git tracks a folder a link would go in, you choose whether git sees it |
|
|
170
|
+
| **Differs from your library** · **Not tracked** · **Not in your library** · **From npx skills** | Update your library from it, or replace it with your library's (the team's committed copy is only copied) · track it · import it · import it |
|
|
171
|
+
| **Unused 30 days** | Remove the ones skilllib installed from the repo |
|
|
172
|
+
| **Broken link** (in a repo) | Remove it (your call when git tracks the link). Next to a real copy it's an extra link instead: tidy points it at the copy |
|
|
173
|
+
| **Pinned version not in your library** | Install your newest (the folder is missing and your library has no copy of what skilllib.json pins) |
|
|
174
|
+
| **Broken link** · **Not reviewed** (global) | Remove the link · move it to repos, keep it global on purpose, or delete it (the row's actions) |
|
|
175
|
+
| **Not every agent can use it** (global) | Link it into that agent's global folder, e.g. a Codex skill in `~/.agents/skills` or `~/.codex/skills` gets a link in `~/.claude/skills` |
|
|
176
|
+
|
|
177
|
+
These are the issues `skilllib doctor` reports, with the same fixes and choices.
|
|
174
178
|
|
|
175
179
|
### Adding and removing skills
|
|
176
180
|
|
|
@@ -179,7 +183,7 @@ What skilllib flags:
|
|
|
179
183
|
- Claude Code, with or without Cursor or Grok: `.claude/skills/<name>`.
|
|
180
184
|
- Cursor, Codex, Zed or Grok without Claude Code: `.agents/skills/<name>`.
|
|
181
185
|
- Claude Code plus Codex or Zed: the copy goes in `.agents/skills`, with a link in `.claude/skills`. Claude Code only reads `.claude/skills`, and Codex and Zed don't read it.
|
|
182
|
-
- **Remove from repo** deletes that copy and its links; your library keeps it.
|
|
186
|
+
- **Remove from repo** deletes that copy and its links; your library keeps it. In the app, an untracked copy goes to Settings › Backups instead (`skilllib remove` only removes skills skilllib manages). If you edited a tracked skill here, skilllib asks first, and the edits go to Settings › Backups.
|
|
183
187
|
- **The repo's own skills are never deleted by skilllib.** You can copy them into your library, or link them so every agent sees them.
|
|
184
188
|
- **Git-tracked folders:** if the repo commits the folder a link would go into (common for `.agents/skills`), skilllib asks once and remembers your answer. If you say no, it tells you which agents can't see the skill there. A skill whose copy git doesn't share (not committed, and not in a folder the repo commits) never gets a link in a committed folder: teammates would get a broken link.
|
|
185
189
|
|
|
@@ -210,7 +214,7 @@ Edit a skill once in **Your skills** (Enter → *Edit SKILL.md*). Every repo tha
|
|
|
210
214
|
- **Keep it global on purpose**: skilllib stops warning about it (also `skilllib global keep <name>`). The mark only records your decision; to undo it, pick **Stop marking it as global on purpose**.
|
|
211
215
|
- **Delete it**: it goes to Settings › Backups.
|
|
212
216
|
|
|
213
|
-
When some of your agents can't see a global skill,
|
|
217
|
+
When some of your agents can't see a global skill, that's a separate issue, **Not every agent can use it**. This happens, for example, with a Codex skill in `~/.agents/skills` or `~/.codex/skills`, which Claude Code doesn't read. Its choice, **Link it for Claude Code**, adds a link in `~/.claude/skills`, and nothing is copied or moved. Moving it to repos works for every agent too. For a skill you keep global on purpose, the link is the ★ fix.
|
|
214
218
|
|
|
215
219
|
Vendor skills (claude.ai, Cursor built-ins) are managed at their source: claude.ai's settings, or Cursor. A plugin's skills offer **Open *plugin* in Plugins**.
|
|
216
220
|
|
|
@@ -226,7 +230,7 @@ Plugins are a big part of what agents load (one plugin can bring dozens of skill
|
|
|
226
230
|
| Brings | Its skills, and `+N` for the other kinds of things it brings: commands, agents, hooks, MCP servers |
|
|
227
231
|
| On | `on` · `off` · `?` for Cursor, which keeps that in its own database |
|
|
228
232
|
| Uses | Claude Code uses of its skills (`plugin:skill`), last 30 days. Your own skill by the same name is counted apart; two installs of one plugin share a count |
|
|
229
|
-
| Issue | **Repeats N of yours** (a skill in your library or global folders) · **Unused 30 days** · **Update
|
|
233
|
+
| Issue | **Repeats N of yours** (a skill in your library or global folders) · **Unused 30 days** (on, ships skills, none used) · **Update available** (its marketplace has a newer version or commit) |
|
|
230
234
|
|
|
231
235
|
Every plugin issue is *your call*: turning plugins on or off, or updating them, changes code that runs in your sessions, so **Fix automatically** never does it.
|
|
232
236
|
|
|
@@ -257,26 +261,26 @@ It's in every skill's actions, in a repo's **⋯** menu (all its skills), and at
|
|
|
257
261
|
|
|
258
262
|
### Duplicates
|
|
259
263
|
|
|
260
|
-
The same skill often reaches your agents more than once: a copy in `.claude/skills` *and* in `.agents/skills`, a global copy *and* a repo copy, a plugin *and* your skill. skilllib keeps **one real copy per skill, plus only the links your agents need**. **Health** lists each case
|
|
264
|
+
The same skill often reaches your agents more than once: a copy in `.claude/skills` *and* in `.agents/skills`, a global copy *and* a repo copy, a plugin *and* your skill. skilllib keeps **one real copy per skill, plus only the links your agents need**. **Health** lists each case with its fix, and the skill's row in a repo or Global shows it too. From the command line, `skilllib doctor` lists them and `skilllib tidy` fixes the folder ones.
|
|
261
265
|
|
|
262
266
|
| What it finds | What it does |
|
|
263
267
|
|---|---|
|
|
264
268
|
| Identical copies in several folders | Keeps one and turns the others into links. In a repo, it keeps the committed copy. Globally, it keeps the one in `~/.agents/skills`. |
|
|
265
269
|
| Links no agent you use needs | Removes them. It keeps links that `skilllib.json` records, because teammates may use other agents. |
|
|
266
270
|
| **Copies that differ** | Shows which agent runs which copy (e.g. Claude Code and Cursor run `.claude`, Codex runs `.agents`), and lets you pick the one to keep. It's your call, so **Fix all** never does it. |
|
|
267
|
-
| A Claude Code plugin with the same skill | Your skill wins. skilllib copies all the plugin's skills into Your skills, then removes the plugin or turns it off (`claude plugin uninstall` / `disable`). If the plugin also brings MCP servers, hooks, agents or commands, turning it off is the default. When the overlap is in one repo, you can instead turn the plugin off only there (in its `.claude/settings.local.json
|
|
271
|
+
| A Claude Code plugin with the same skill | Your skill wins. skilllib copies all the plugin's skills into Your skills, then removes the plugin or turns it off (`claude plugin uninstall` / `disable`). If the plugin also brings MCP servers, hooks, agents or commands, turning it off is the default. When the overlap is in one repo, you can instead turn the plugin off only there (in its `.claude/settings.local.json`: Claude Code makes git ignore it when it writes it; without the `claude` command, skilllib writes the file itself and makes git ignore it), or remove your copy from that repo. If the repo commits its copy, it's the team's: skilllib never offers to remove it. A plugin that a repo's own `.claude/settings.json` turns on counts only in that repo. Cursor ignores repo settings: after a repo turns the plugin off, Cursor still lists both there, and only turning the plugin off or removing it changes that. |
|
|
268
272
|
| A Cursor plugin with the same skill | Reported only. Turn the plugin off in Cursor. |
|
|
269
273
|
| A repo copy of a skill you keep global | The repo copy is the extra one: remove it, or stop loading the skill globally after all. Claude Code runs the global copy anyway. |
|
|
270
274
|
| A repo's own skill that also loads globally | Stop loading it globally. The repo's copy is the team's, so skilllib never offers to remove it. |
|
|
271
275
|
|
|
272
276
|
- **It never moves a real copy.** `skilllib.json` is shared, so a move for your agents could break a teammate's.
|
|
273
|
-
- **It never adds links.** That's `skilllib link`, or
|
|
277
|
+
- **It never adds links.** That's `skilllib link`, or the *Not every agent can use it* issue's fix.
|
|
274
278
|
- **It leaves committed files alone** unless you say so: Health asks first, and `skilllib tidy` needs `--allow-git`.
|
|
275
279
|
- **Cursor lists a skill once** even when it reaches it through several folders (tested September 2026). It runs the copy from the first of `.cursor`, `.claude`, `.codex`, `.grok`, `.agents` (seen in its app bundle, October 2026). It lists a plugin's copy and your copy separately.
|
|
276
280
|
|
|
277
281
|
### Backups
|
|
278
282
|
|
|
279
|
-
skilllib never really deletes anything you can't get back. What it removes goes to Settings › Backups, and `enter` puts
|
|
283
|
+
skilllib never really deletes anything you can't get back. What it removes goes to Settings › Backups (`skilllib restore`), and `enter` puts the folder back where it came from. A skill removed from a repo comes back as a folder; doctor then offers to track it again:
|
|
280
284
|
- removed library skills and untracked copies go to `~/.skilllib/trash`
|
|
281
285
|
- removed global skills go to `~/.skilllib/global-backup`
|
|
282
286
|
- copies replaced by a link go to `~/.skilllib/tidy-backup`
|
|
@@ -380,7 +384,7 @@ skilllib link [--all] make every skill here usable by all your agents
|
|
|
380
384
|
skilllib tidy [--all|--global] one real copy per skill, plus only the links your agents need
|
|
381
385
|
|
|
382
386
|
skilllib list | show <name> your library
|
|
383
|
-
skilllib import <dir>... add skill folders to your library (--global: all your global skills)
|
|
387
|
+
skilllib import <dir>... add skill folders to your library (--global: all your global skills); a repo that tracks that copy pins the new version
|
|
384
388
|
skilllib global [keep|unkeep] your global skills; mark the ones you keep global on purpose
|
|
385
389
|
skilllib global move <name> --to <repo> load a global skill only in those repos
|
|
386
390
|
skilllib new <name> [desc] create a skill
|
|
@@ -388,7 +392,9 @@ skilllib new <name> [desc] create a skill
|
|
|
388
392
|
skilllib usage [--days N] which skills Claude Code used
|
|
389
393
|
skilllib doctor [--fix] find (and fix) problems
|
|
390
394
|
skilllib apply <id> [choice] apply one problem's fix, or the choice you pick (ids from status or doctor --json)
|
|
391
|
-
skilllib restore [name] put back something skilllib moved out
|
|
395
|
+
skilllib restore [name] put back something skilllib moved out (copies moved together come back together)
|
|
396
|
+
skilllib unhide <path> show a hidden project again
|
|
397
|
+
skilllib ui open the app (only in a terminal)
|
|
392
398
|
skilllib agent-skill [install|remove] teach your agents to use skilllib
|
|
393
399
|
skilllib --version
|
|
394
400
|
```
|
|
@@ -397,7 +403,7 @@ The repo commands (`status`, `add`, `remove`, `sync`, `outdated`, `update`, `lin
|
|
|
397
403
|
|
|
398
404
|
Flags: `--force` (overwrite local edits, backed up to `~/.skilllib/edit-backup`), `--allow-tracked` (link into git-tracked folders; skills git doesn't share are still left out), `--days N`, `--json`. For `tidy`: `--dry-run` (preview), `--allow-git` (also change committed files), `<name> --keep <folder>` (the copy that wins when copies differ).
|
|
399
405
|
|
|
400
|
-
A command exits 1 when it couldn't do all you asked: a skill skipped (not in the library, or local edits in the way), links git-tracked folders blocked, an unknown `tidy` name or `--keep` folder. What it did do is still done, and listed. An unknown or misspelled flag is an error too, so a typo never runs silently. With `--json`, a failure prints `{"error": "…"}` on stdout as well as the message on stderr.
|
|
406
|
+
A command exits 1 when it couldn't do all you asked: a skill skipped (not in the library, or local edits in the way), links git-tracked folders blocked, an unknown `tidy` name or `--keep` folder, or (with `--all`, and `projects`) a repo left out because its `skilllib.json` can't be read. What it did do is still done, and listed. An unknown or misspelled flag is an error too, so a typo never runs silently. With `--json`, a failure prints `{"error": "…"}` on stdout as well as the message on stderr.
|
|
401
407
|
|
|
402
408
|
**`--json`** prints one line of JSON on stdout, for scripts and agents. Messages and warnings go to stderr. It works with `status`, `list`, `show`, `projects`, `outdated`, `usage`, `doctor`, `apply`, `add`, `remove`, `sync`, `update`, `import`, `global move` and `agent-skill`. The output is shaped to keep agents fast and cheap:
|
|
403
409
|
|
|
@@ -410,8 +416,8 @@ A command exits 1 when it couldn't do all you asked: a skill skipped (not in the
|
|
|
410
416
|
- the repo's top-level files
|
|
411
417
|
|
|
412
418
|
Skills that share every attribute are grouped, and attributes at their usual value are left out.
|
|
413
|
-
- **`list --json`**: inside a repo, the library skills the repo already has (names only), and the others with
|
|
414
|
-
- **`add`, `remove`, `sync` and `update`** list each change and the folders it wrote to, so there's nothing left to check.
|
|
419
|
+
- **`list --json`**: inside a repo, the library skills the repo already has (names only), and the others with a short description (its first sentence, or the start of it).
|
|
420
|
+
- **`add`, `remove`, `sync` and `update`** list each change, and (except `remove`) the folders it wrote to, so there's nothing left to check.
|
|
415
421
|
|
|
416
422
|
The `skilllib` skill runs `status` and `list` as it loads (in Claude Code), so an agent usually answers "which skills can you use here?" in one step.
|
|
417
423
|
|