Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Install agent skills from npm
| Date | Stars |
|---|---|
| 2026-07-31 | 498 |
| 2026-08-05 | 500 |
| 2026-08-06 | 500 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# skills-npm
[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![bundle][bundle-src]][bundle-href]
[![JSDocs][jsdocs-src]][jsdocs-href]
[![License][license-src]][license-href]
A CLI that discovers [agent skills](https://agentskills.io) shipped inside npm packages and creates symlinks for coding agents to consume.
## Why?
Current skill distribution approaches (e.g. [`@vercel-labs/skills`](https://github.com/vercel-labs/skills)) have friction:
- **Git-only source** - Only supports git repos as skills source
- **Version mismatch** - Skills and tools update separately, causing compatibility issues
- **Manual management** - Cloning skills from git repos requires extra steps per project
- **Sharing overhead** - Teams must commit cloned files or repeat setup on each machine
This project proposes a convention: **ship skills inside npm packages**. When you `npm install` a tool, its skills come bundled. Run `skills-npm` to symlink them for your agent.
**Read the full proposal: [PROPOSAL.md](./PROPOSAL.md)**
## Usage
Install as a dev dependency and run `setup` once:
```bash
npm i -D skills-npm
npx skills-npm setup
```
`skills-npm setup` wires the tool into your `package.json` `prepare` script, adds the ignore pattern to your `.gitignore`, and runs the first sync. After that, skills are re-symlinked for your agent automatically whenever you install dependencies.
`setup` merges into any existing `prepare` script (it appends with `&&` and is a no-op if already wired), resulting in:
```json
{
"private": true,
"scripts": {
"prepare": "skills-npm"
}
}
```
`skills-npm` symlinks the skills from `node_modules` to `skills/npm-<package-name>-<skill-name>` for your agent, and `setup` adds the following to your `.gitignore`:
```
**/skills/npm-*
```
> [!NOTE]
> Keep `skills-npm` as a `devDependency`. The `prepare` script runs on `install` (and before `publish`/`pack`), but never for people who install your published package, so it is safe to commit.
## Configuration
You can create a `skills-npm.config.ts` file in your project root to configure the behavior:
```ts
// skills-npm.config.ts
import { defineConfig } from 'skills-npm'
export default defineConfig({
// Source to discover skills from: 'node_modules' or 'package.json'
source: 'package.json',
// Target specific agents (defaults to all detected agents)
agents: ['cursor', 'windsurf'],
// Scan recursively for monorepo packages (default: false)
recursive: false,
// Whether to update .gitignore (default: true)
gitignore: true,
// Skip confirmation prompts (default: false)
yes: false,
// Dry run mode (default: false)
dryRun: false,
// Include specific packages or skills
include: [
// Include all skills from a package
'@some/package',
// Include all skills from packages matching a wildcard pattern
'@some/*',
// Include specific skills from packages matching a wildcard pattern
{ package: '@some/*', skills: ['integration'] },
// Include specific skills from a package
{ package: '@slidev/cli', skills: ['presenter-mode'] },
],
// Exclude specific packages or skills
exclude: [
// Exclude all skills from a package
'@some/package',
// Exclude all skills from packages matching a wildcard pattern
'@some/*',
// Exclude specific skills from packages matching a wildcard pattern
{ package: '@some/*', skills: ['integration'] },
// Exclude specific skills from a package
{ package: '@slidev/cli', skills: ['presenter-mode'] },
],
})
```
`include` and `exclude` support package wildcard patterns such as `@some/*`. These filters only apply to packages that were already discovered from `node_modules` or `package.json`.
### Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `cwd` | `string` | Workspace root | Current working directory |
| `source` | `'node_modules' \| 'package.json'` | `'packExcerpt of 8,559 characters
Read on GitHubAnthony Fu · @vercel team @nuxt
30
10
Hiroki Osame · @vercel · Japan
3
2
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:b1d5d9d6ca14bed8, llm:Repository description: 'Install agent skills from npm' (antfu/skills-npm). TypeScript project to install agent skills from npm packages.
matched fp:b1d5d9d6ca14bed8, llm:Repository description: 'Install agent skills from npm' (antfu/skills-npm). TypeScript project to install agent skills from npm packages.