Generate AI agent skills from your NPM dependencies. npx skilld
Generate AI agent skills from your NPM dependencies.
When using new packages or migrating to new versions, agents often struggle to use the appropriate best practices. This is because
agents have knowledge cutoffs and
predict based on existing patterns.
Methods of getting the right context to your agent require either manual curation, author opt-in, external servers or vendor lock-in. See the landscape
for more details.
Skilld generates agent skills from the references maintainers already create: docs, release notes and GitHub issues. With these we can create version-aware, local-first, and optimized skills.
|
Made possible by my Sponsor Program π Follow me @harlan_zw π¦ β’ Join Discord for help |
Best Practices, API Changes, or your own custom promptsnpx skills and skills-npmRun skilld in a project to generate skills for your dependencies through a simple interactive wizard:
npx -y skilld
undefinedRequires Node 22.6.0 or higher.undefined
Or add a specific package directly:
npx -y skilld add vue
If you need to re-configure skilld, just run npx -y skilld config to update your agent, model, or preferences.
skilld install --agent gemini-cli to sync skills to another agent. The doc cache is shared.Install globally to use skilld across all projects without npx:
npm install -g skilld
# or
pnpm add -g skilld
Then run skilld in any project directory.
If youβd like to install skilld and track the lock file references, add it as a dev dependency:
npm install -D skilld
# or
yarn add -D skilld
# or
pnpm add -D skilld
Add to package.json to keep skills fresh on install:
{
"scripts": {
"prepare": "skilld update -b"
}
}
Try this in your project/user prompt:
Before modifying code, evaluate each installed skill against the current task.
For each skill, determine YES/NO relevance and invoke all YES skills before proceeding.
Context7 is an MCP that fetches raw doc chunks at query time. You get different results each prompt, no curation, and it requires their server. Skilld is local-first: it generates a SKILL.md that lives in your project, tied to your actual package versions. No MCP dependency, no per-prompt latency, and it goes further with LLM-enhanced sections, prompt injection sanitization, and semantic search.
Skilld pulls issues from GitHub which could be abused for potential prompt injection.
Skilld treats all data as untrusted, running in permissioned environments and using best practices to avoid injections.
However, always be cautious when using skills from untrusted sources.
Yes. Run skilld update to regenerate outdated skills, or add skilld update -b to your prepare script and they regenerate in the background whenever you install packages.
# Interactive mode - auto-discover from package.json
skilld
# Add skills for specific package(s)
skilld add vue nuxt pinia
# Update outdated skills
skilld update
skilld update tailwindcss
# Search docs across installed skills
skilld search "useFetch options" -p nuxt
# Target a specific agent
skilld add react --agent cursor
# Install globally to ~/.claude/skills
skilld add zod --global
# Skip prompts
skilld add drizzle-orm --yes
# Check skill info
skilld info
# List installed skills
skilld list
skilld list --json
# Manage settings
skilld config
| Command | Description |
|---|---|
skilld |
Interactive wizard (first run) or status menu (existing skills) |
skilld add <pkg...> |
Add skills for package(s), space or comma-separated |
skilld update [pkg] |
Update outdated skills (all or specific) |
skilld search <query> |
Search indexed docs (-p to filter by package) |
skilld list |
List installed skills (--json for machine-readable output) |
skilld info |
Show skill info and config |
skilld config |
Configure agent, model, preferences |
skilld install |
Restore references from lockfile |
skilld remove |
Remove installed skills |
skilld uninstall |
Remove all skilld data |
skilld cache |
Cache management (clean expired LLM cache entries) |
skilld eject <pkg> |
Eject skill as portable directory (no symlinks) |
Export a skill as a portable, self-contained directory with references copied as real files instead of symlinks. Useful for sharing skills via git repos.
# Eject to the default skill directory
skilld eject vue
# Custom skill directory name
skilld eject vue --name vue
# Eject to a custom path
skilld eject vue --out ./skills/vue/
# Only collect releases/issues/discussions since a date
skilld eject vue --from 2025-07-01
The ejected skill contains SKILL.md plus a references/ directory with docs, issues, and releases as real files. Share it via skilld add owner/repo β consumers get fully functional skills with no LLM cost.
| Option | Alias | Default | Description |
|---|---|---|---|
--global |
-g |
false |
Install globally to ~/<agent>/skills |
--agent |
-a |
auto-detect | Target specific agent (claude-code, cursor, etc.) |
--yes |
-y |
false |
Skip prompts, use defaults |
--force |
-f |
false |
Ignore all caches, re-fetch docs and regenerate |
--model |
-m |
config default | LLM model for skill generation (sonnet, haiku, opus, etc.) |
--name |
-n |
Custom skill directory name (eject only) | |
--out |
-o |
Output directory path override (eject only) | |
--from |
Collect releases/issues/discussions from this date (YYYY-MM-DD, eject only) | ||
--debug |
false |
Save raw LLM output to logs/ for each section |
Several approaches exist for steering agent knowledge. Each fills a different niche:
| Approach | Versioned | Curated | No Opt-in | Local |
|---|---|---|---|---|
| undefinedManual rulesundefined | β | β | β | β |
| undefinedllms.txtundefined | ~ | β | β | β |
| undefinedMCP serversundefined | β | β | β | β |
| undefinedskills.shundefined | β | ~ | β | β |
| undefinedskills-npmundefined | β | β | β | β |
| undefinedskilldundefined | β | β | β | β |
undefinedVersioned β tied to your installed package version. Curated β distilled best practices, not raw docs. No Opt-in β works without the package author doing anything. Local β runs on your machine, no external service dependency.
Skilld sends anonymous install events to skills.sh so skills can be discovered and ranked. No personal information is collected.
Telemetry is automatically disabled in CI environments.
To opt out, set either environment variable:
DISABLE_TELEMETRY=1
DO_NOT_TRACK=1
Licensed under the MIT license.
We use cookies
We use cookies to analyze traffic and improve your experience. You can accept or reject analytics cookies.