{"id":"skills","repo":"gpambrozio/paseo-plugins","url":"https://github.com/gpambrozio/paseo-plugins/tree/main/skills","package":"@gpambrozio/paseo-skills","npm":{"package":"@gpambrozio/paseo-skills","version":"0.4.0","integrity":"sha512-zMgP2U/vrRsLkKhoQICkN52+YoDy2WkkYymEDmruduKxf4Dq99Ct8Pk3xqJyAzijq2oprMFYLbj/wT6XepBLeA==","publishedAt":"2026-10-01T22:25:58.192Z","downloadsLast30Days":1790},"name":"skills","description":"Paseo plugin: lists the skills an agent can use, shows where each comes from, renders its SKILL.md, and invokes it","categories":["productivity"],"platforms":[],"caveats":[],"images":[],"themes":[],"health":{"manifestValid":true,"hasReadme":true,"hasLicense":true,"hasTests":true,"hasTypecheckScript":true,"updatedRecently":true},"scannedAt":"2026-10-15T12:34:34.013Z","addedAt":"2026-09-01T14:45:47+01:00","npmSecurity":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-10-15T12:14:24.405Z","version":"0.4.0","integrity":"sha512-zMgP2U/vrRsLkKhoQICkN52+YoDy2WkkYymEDmruduKxf4Dq99Ct8Pk3xqJyAzijq2oprMFYLbj/wT6XepBLeA=="},"path":"skills","version":"0.4.0","security":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-10-15T12:14:24.405Z","commit":"09509ce55ab06758623262e6aa71522ade6fda0c"},"license":"MIT","paseoVersionRequirement":">=0.9.0","descriptionNodes":[{"type":"text","text":"Paseo plugin: lists the skills an agent can use, shows where each comes from, renders its SKILL.md, and invokes it"}],"caveatNodes":[],"manifest":{"id":"skills","description":"Lists the skills an agent can use, renders each SKILL.md, and invokes it","requirements":{"paseo":">=0.9.0"}},"repoMeta":{"stars":14,"defaultBranch":"main","pushedAt":"2026-10-09T21:12:13Z"},"owner":{"login":"gpambrozio","avatarUrl":"https://avatars.githubusercontent.com/u/672135?v=4"},"installNotesHtml":"<p>Requires the <a href=\"https://paseo.sh\">Paseo</a> CLI and a running daemon, both <strong>0.9.0 or newer</strong> — as well\nas the app you view the panel in, which checks the version itself.</p>\n<pre><code class=\"language-bash\">paseo plugin install npm:@gpambrozio/paseo-skills\n</code></pre>\n<p>That is the shortest route on <strong>Paseo 0.9 or newer</strong>, which installs plugins straight from npm; add\n<code>@&#x3C;version></code> to pin one. On 0.8, install the last release that supported it from this repository instead:</p>\n<pre><code class=\"language-bash\">paseo plugin add gpambrozio/paseo-plugins --path skills\n</code></pre>\n<p>This repository holds five plugins, hence <code>--path</code>. The daemon clones it under <code>$PASEO_HOME/plugins</code>\nand runs no package manager — the plugin is source only, and everything it imports at runtime the\nhost provides. Pin a release with <code>--ref &#x3C;tag></code>; later, <code>paseo plugin status</code> and\n<code>paseo plugin update skills</code> follow the branch.</p>\n<p>To hack on it instead, install from a clone of your own:</p>\n<pre><code class=\"language-bash\">git clone https://github.com/gpambrozio/paseo-plugins.git\ncd paseo-plugins/skills\nnpm install\nnpm run typecheck &#x26;&#x26; npm test\npaseo plugin install \"$PWD\"\n</code></pre>\n<p><code>install</code> records the directory, so keep that clone where it is — the daemon loads the plugin from\nthat path every time it starts. <code>npm install</code> is for the typecheck and the tests; installing needs\nnone of it.</p>\n<p>The daemon needs <code>\"pluginsEnabled\": true</code> in its <code>config.json</code>. Run <code>paseo reload</code> after changing\nit. Plugin code is trusted and unsandboxed: the server half reads the daemon machine's filesystem\nand the client half runs inside th…</p>","readmeText":"# paseo-skills\n\nA Paseo plugin that lists the agent skills available to an agent session, shows where each one\ncomes from, renders its `SKILL.md`, and invokes it.\n\nWorks with every provider. Claude, Codex, and Hermes additionally get their skill files scanned\noff disk, which is what gives a skill a source, a path, and a rendered body; every other provider\nshows what its running session reports.\n\n## Install\n\nRequires the [Paseo](https://paseo.sh) CLI and a running daemon, both **0.9.0 or newer** — as well\nas the app you view the panel in, which checks the version itself.\n\n```bash\npaseo plugin install npm:@gpambrozio/paseo-skills\n```\n\nThat is the shortest route on **Paseo 0.9 or newer**, which installs plugins straight from npm; add\n`@<version>` to pin one. On 0.8, install the last release that supported it from this repository instead:\n\n```bash\npaseo plugin add gpambrozio/paseo-plugins --path skills\n```\n\nThis repository holds five plugins, hence `--path`. The daemon clones it under `$PASEO_HOME/plugins`\nand runs no package manager — the plugin is source only, and everything it imports at runtime the\nhost provides. Pin a release with `--ref <tag>`; later, `paseo plugin status` and\n`paseo plugin update skills` follow the branch.\n\nTo hack on it instead, install from a clone of your own:\n\n```bash\ngit clone https://github.com/gpambrozio/paseo-plugins.git\ncd paseo-plugins/skills\nnpm install\nnpm run typecheck && npm test\npaseo plugin install \"$PWD\"\n```\n\n`install` records the directory, so keep that clone where it is — the daemon loads the plugin from\nthat path every time it starts. `npm install` is for the typecheck and the tests; installing needs\nnone of it.\n\nThe daemon needs `\"pluginsEnabled\": true` in its `config.json`. Run `paseo reload` after changing\nit. Plugin code is trusted and unsandboxed: the server half reads the daemon machine's filesystem\nand the client half runs inside the Paseo app. Read the source before installing this or any other\nplugin.\n\n## Use\n\nPress the **Skills** pill above an agent's composer — its badge counts what it will list. It opens\na popover over the composer with the agent's skills: pick one to read it and invoke it with\narguments, or press **Open tab** at its top right for the full Skills panel. The Command Center\nreaches the same panel: focus a workspace tab holding an agent, press ⌘K, and pick **Skills**.\n\n## Demo\n\n\n\nhttps://github.com/user-attachments/assets/cbb0166e-d981-4367-a5b4-5b12d2e7c14c\n\n\n\n## Develop\n\n```bash\nnpm test                     # vitest, resolvers only\nnpm run typecheck\npaseo plugin reload skills   # after any source change\npaseo plugin logs skills     # load errors and stderr\n```\n\nA failed reload stays failed; Paseo does not restore the previous code.\n\n## Layout\n\n| File                                | Owns                                                       |\n| ----------------------------------- | ---------------------------------------------------------- |\n| `index.client.tsx`                  | Client wiring: the panel, the Command Center item, the pills. |\n| `index.server.ts`                   | Server wiring: the two RPC handlers.                        |\n| `shared/skills.ts`                  | zod RPC contracts, imported by both runtimes.               |\n| `server/skills.ts`                  | RPC handlers; resolves the agent, dispatches by provider.   |\n| `server/resolve/claude.ts`          | Claude project, repository, personal, and plugin skills.    |\n| `server/resolve/codex.ts`           | Codex project, repository, personal, and admin skills.      |\n| `server/resolve/repo-root.ts`       | Walks up for `.git`, and lists the directories in between.  |\n| `server/resolve/skill-directory.ts` | Scans one `skills` directory, and a whole search path.      |\n| `server/resolve/skill-entry.ts`     | Entry types, skill id construction, first-wins dedupe.      |\n| `server/resolve/frontmatter.ts`     | `SKILL.md` frontmatter parsing.                             |\n| `server/resolve/reported.ts`        | Splits session-reported entries discovery did not find.     |\n| `client/browser.tsx`                | List, search, detail, invoke — drawn by the panel and the popover. |\n| `client/panel.tsx`                  | The panel: the browser as a whole tab.                      |\n| `client/popover.tsx`                | The pill's popover: the browser, plus a button to the panel. |\n| `client/pill.tsx`                   | The composer pill and the registration loop that owns it.   |\n| `client/skills-query.tsx`           | The `skills.list` query the panel and the pill share.       |\n\n`docs/design.md` records why it is shaped this way. Read it before changing discovery.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n"}