npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

skpm-cli

v1.5.1

Published

The Skill Package Manager for AI Agents

Readme

skpm

The Skill Package Manager for AI agents. Fork of vercel-labs/skills with dependency graph resolution.

Supports OpenCode, Claude Code, Codex, Cursor, and 40 more.

What's different from skills?

  • dependsOn — Skills declare dependencies in SKILL.md frontmatter. skpm add recursively installs the full tree.
  • postInstall — Skills can declare setup commands (CLI installs, config). Printed with y/n prompt before execution.
  • --trust-scripts — Auto-accept postInstall commands (for CI/CD).

Install

pnpm i -g skpm-cli    # global install (recommended)
skpm add owner/repo@skill -g

Or use without installing:

npx skpm-cli add owner/repo@skill -g

Install a Skill

skpm add jonmumm/skills@swarm -g
# → automatically installs grill-me, mutation-testing, tdd

Source Formats

# GitHub shorthand (owner/repo)
skpm add jonmumm/skills

# Install a specific skill with auto-resolved dependencies
skpm add jonmumm/skills@swarm

# Full GitHub URL
skpm add https://github.com/jonmumm/skills

# Direct path to a skill in a repo
skpm add https://github.com/jonmumm/skills/tree/main/skills/tdd

# GitLab URL
skpm add https://gitlab.com/org/repo

# Any git URL
skpm add [email protected]:owner/repo.git

# Local path
skpm add ./my-local-skills

Options

| Option | Description | | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | -g, --global | Install to user directory instead of project | | -a, --agent <agents...> | Target specific agents (e.g., claude-code, codex). See Available Agents | | -s, --skill <skills...> | Install specific skills by name (use '*' for all skills) | | -l, --list | List available skills without installing | | --copy | Copy files instead of symlinking to agent directories | | -y, --yes | Skip all confirmation prompts | | --all | Install all skills to all agents without prompts |

Examples

# Install a skill (dependencies auto-resolved)
skpm add jonmumm/skills@swarm -g

# List skills in a repository
skpm add jonmumm/skills --list

# Install specific skills
skpm add jonmumm/skills --skill swarm --skill tdd

# Install to specific agents
skpm add jonmumm/skills -a claude-code -a opencode

# Non-interactive installation (CI/CD friendly)
skpm add jonmumm/skills --skill swarm -g -a claude-code -y

# Install all skills from a repo to all agents
skpm add jonmumm/skills --all

# Auto-accept postInstall commands (CI/CD)
skpm add jonmumm/skills@swarm -g -y --trust-scripts

Installation Scope

| Scope | Flag | Location | Use Case | | ----------- | --------- | ------------------- | --------------------------------------------- | | Project | (default) | ./<agent>/skills/ | Committed with your project, shared with team | | Global | -g | ~/<agent>/skills/ | Available across all projects |

Installation Methods

When installing interactively, you can choose:

| Method | Description | | ------------------------- | ------------------------------------------------------------------------------------------- | | Symlink (Recommended) | Creates symlinks from each agent to a canonical copy. Single source of truth, easy updates. | | Copy | Creates independent copies for each agent. Use when symlinks aren't supported. |

Other Commands

| Command | Description | | ---------------------------- | ---------------------------------------------- | | skpm list | List installed skills (alias: ls) | | skpm find [query] | Search for skills interactively or by keyword | | skpm remove [skills] | Remove installed skills from agents | | skpm check | Check for available skill updates | | skpm update | Update all installed skills to latest versions | | skpm init [name] | Create a new SKILL.md template |

skills list

List all installed skills. Similar to npm ls.

# List all installed skills (project and global)
skpm list

# List only global skills
skpm ls -g

# Filter by specific agents
skpm ls -a claude-code -a cursor

skills find

Search for skills interactively or by keyword.

# Interactive search (fzf-style)
skpm find

# Search by keyword
skpm find typescript

skills check / skills update

# Check if any installed skills have updates
skpm check

# Update all skills to latest versions
skpm update

skills init

# Create SKILL.md in current directory
skpm init

# Create a new skill in a subdirectory
skpm init my-skill

skills remove

Remove installed skills from agents.

# Remove interactively (select from installed skills)
skpm remove

# Remove specific skill by name
skpm remove web-design-guidelines

# Remove multiple skills
skpm remove frontend-design web-design-guidelines

# Remove from global scope
skpm remove --global web-design-guidelines

# Remove from specific agents only
skpm remove --agent claude-code cursor my-skill

# Remove all installed skills without confirmation
skpm remove --all

# Remove all skills from a specific agent
skpm remove --skill '*' -a cursor

# Remove a specific skill from all agents
skpm remove my-skill --agent '*'

# Use 'rm' alias
skpm rm my-skill

| Option | Description | | -------------- | ------------------------------------------------ | | -g, --global | Remove from global scope (~/) instead of project | | -a, --agent | Remove from specific agents (use '*' for all) | | -s, --skill | Specify skills to remove (use '*' for all) | | -y, --yes | Skip confirmation prompts | | --all | Shorthand for --skill '*' --agent '*' -y |

What are Agent Skills?

Agent skills are reusable instruction sets that extend your coding agent's capabilities. They're defined in SKILL.md files with YAML frontmatter containing a name and description.

Skills let agents perform specialized tasks like:

  • Generating release notes from git history
  • Creating PRs following your team's conventions
  • Integrating with external tools (Linear, Notion, etc.)

Discover skills at skpm.sh

Supported Agents

Skills can be installed to any of these agents:

| Agent | --agent | Project Path | Global Path | |-------|-----------|--------------|-------------| | Amp, Kimi Code CLI, Replit, Universal | amp, kimi-cli, replit, universal | .agents/skills/ | ~/.config/agents/skills/ | | Antigravity | antigravity | .agents/skills/ | ~/.gemini/antigravity/skills/ | | Augment | augment | .augment/skills/ | ~/.augment/skills/ | | Claude Code | claude-code | .claude/skills/ | ~/.claude/skills/ | | OpenClaw | openclaw | skills/ | ~/.openclaw/skills/ | | Cline, Warp | cline, warp | .agents/skills/ | ~/.agents/skills/ | | CodeBuddy | codebuddy | .codebuddy/skills/ | ~/.codebuddy/skills/ | | Codex | codex | .agents/skills/ | ~/.codex/skills/ | | Command Code | command-code | .commandcode/skills/ | ~/.commandcode/skills/ | | Continue | continue | .continue/skills/ | ~/.continue/skills/ | | Cortex Code | cortex | .cortex/skills/ | ~/.snowflake/cortex/skills/ | | Crush | crush | .crush/skills/ | ~/.config/crush/skills/ | | Cursor | cursor | .agents/skills/ | ~/.cursor/skills/ | | Deep Agents | deepagents | .agents/skills/ | ~/.deepagents/agent/skills/ | | Droid | droid | .factory/skills/ | ~/.factory/skills/ | | Firebender | firebender | .agents/skills/ | ~/.firebender/skills/ | | Gemini CLI | gemini-cli | .agents/skills/ | ~/.gemini/skills/ | | GitHub Copilot | github-copilot | .agents/skills/ | ~/.copilot/skills/ | | Goose | goose | .goose/skills/ | ~/.config/goose/skills/ | | Junie | junie | .junie/skills/ | ~/.junie/skills/ | | iFlow CLI | iflow-cli | .iflow/skills/ | ~/.iflow/skills/ | | Kilo Code | kilo | .kilocode/skills/ | ~/.kilocode/skills/ | | Kiro CLI | kiro-cli | .kiro/skills/ | ~/.kiro/skills/ | | Kode | kode | .kode/skills/ | ~/.kode/skills/ | | MCPJam | mcpjam | .mcpjam/skills/ | ~/.mcpjam/skills/ | | Mistral Vibe | mistral-vibe | .vibe/skills/ | ~/.vibe/skills/ | | Mux | mux | .mux/skills/ | ~/.mux/skills/ | | OpenCode | opencode | .agents/skills/ | ~/.config/opencode/skills/ | | OpenHands | openhands | .openhands/skills/ | ~/.openhands/skills/ | | Pi | pi | .pi/skills/ | ~/.pi/agent/skills/ | | Qoder | qoder | .qoder/skills/ | ~/.qoder/skills/ | | Qwen Code | qwen-code | .qwen/skills/ | ~/.qwen/skills/ | | Roo Code | roo | .roo/skills/ | ~/.roo/skills/ | | Trae | trae | .trae/skills/ | ~/.trae/skills/ | | Trae CN | trae-cn | .trae/skills/ | ~/.trae-cn/skills/ | | Windsurf | windsurf | .windsurf/skills/ | ~/.codeium/windsurf/skills/ | | Zencoder | zencoder | .zencoder/skills/ | ~/.zencoder/skills/ | | Neovate | neovate | .neovate/skills/ | ~/.neovate/skills/ | | Pochi | pochi | .pochi/skills/ | ~/.pochi/skills/ | | AdaL | adal | .adal/skills/ | ~/.adal/skills/ |

[!NOTE] Kiro CLI users: After installing skills, manually add them to your custom agent's resources in .kiro/agents/<agent>.json:

{
  "resources": ["skill://.kiro/skills/**/SKILL.md"]
}

The CLI automatically detects which coding agents you have installed. If none are detected, you'll be prompted to select which agents to install to.

Creating Skills

Skills are directories containing a SKILL.md file with YAML frontmatter:

---
name: my-skill
description: What this skill does and when to use it
---

# My Skill

Instructions for the agent to follow when this skill is activated.

## When to Use

Describe the scenarios where this skill should be used.

## Steps

1. First, do this
2. Then, do that

Required Fields

  • name: Unique identifier (lowercase, hyphens allowed)
  • description: Brief explanation of what the skill does

Optional Fields

  • dependsOn: Array of skill dependencies in owner/repo@skill-name format. Resolved recursively on install.
  • postInstall: Array of shell commands to run after installation. Printed with y/n prompt (or auto-accepted with --trust-scripts).
  • metadata.internal: Set to true to hide the skill from normal discovery.
---
name: my-skill
description: My skill that depends on others
dependsOn:
  - jonmumm/skills@grill-me
  - mattpocock/skills@tdd
postInstall:
  - "which linear || pnpm i -g @linear/cli"
---

Skill Discovery

The CLI searches for skills in these locations within a repository:

  • Root directory (if it contains SKILL.md)
  • skills/
  • skills/.curated/
  • skills/.experimental/
  • skills/.system/
  • .agents/skills/
  • .augment/skills/
  • .claude/skills/
  • ./skills/
  • .codebuddy/skills/
  • .commandcode/skills/
  • .continue/skills/
  • .cortex/skills/
  • .crush/skills/
  • .factory/skills/
  • .goose/skills/
  • .junie/skills/
  • .iflow/skills/
  • .kilocode/skills/
  • .kiro/skills/
  • .kode/skills/
  • .mcpjam/skills/
  • .vibe/skills/
  • .mux/skills/
  • .openhands/skills/
  • .pi/skills/
  • .qoder/skills/
  • .qwen/skills/
  • .roo/skills/
  • .trae/skills/
  • .windsurf/skills/
  • .zencoder/skills/
  • .neovate/skills/
  • .pochi/skills/
  • .adal/skills/

Plugin Manifest Discovery

If .claude-plugin/marketplace.json or .claude-plugin/plugin.json exists, skills declared in those files are also discovered:

// .claude-plugin/marketplace.json
{
  "metadata": { "pluginRoot": "./plugins" },
  "plugins": [
    {
      "name": "my-plugin",
      "source": "my-plugin",
      "skills": ["./skills/review", "./skills/test"]
    }
  ]
}

This enables compatibility with the Claude Code plugin marketplace ecosystem.

If no skills are found in standard locations, a recursive search is performed.

Compatibility

Skills are generally compatible across agents since they follow a shared Agent Skills specification. However, some features may be agent-specific:

| Feature | OpenCode | OpenHands | Claude Code | Cline | CodeBuddy | Codex | Command Code | Kiro CLI | Cursor | Antigravity | Roo Code | Github Copilot | Amp | OpenClaw | Neovate | Pi | Qoder | Zencoder | | --------------- | -------- | --------- | ----------- | ----- | --------- | ----- | ------------ | -------- | ------ | ----------- | -------- | -------------- | --- | -------- | ------- | --- | ----- | -------- | | Basic skills | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | | allowed-tools | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | | context: fork | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | | Hooks | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |

Troubleshooting

"No skills found"

Ensure the repository contains valid SKILL.md files with both name and description in the frontmatter.

Skill not loading in agent

  • Verify the skill was installed to the correct path
  • Check the agent's documentation for skill loading requirements
  • Ensure the SKILL.md frontmatter is valid YAML

Permission errors

Ensure you have write access to the target directory.

Environment Variables

| Variable | Description | | ------------------------- | -------------------------------------------------------------------------- | | INSTALL_INTERNAL_SKILLS | Set to 1 or true to show and install skills marked as internal: true | | DISABLE_TELEMETRY | Set to disable anonymous usage telemetry | | DO_NOT_TRACK | Alternative way to disable telemetry |

# Install internal skills
INSTALL_INTERNAL_SKILLS=1 skpm add owner/repo --list

Telemetry

This CLI collects anonymous usage data to help improve the tool. No personal information is collected.

Telemetry is automatically disabled in CI environments.

Related Links

License

MIT