Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

ws-skills

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ws-skills

The CLI for the open agent skills ecosystem.

latest
npmnpm
Version
0.2.10
Version published
Maintainers
1
Created
Source

skills

The CLI for the open agent skills ecosystem.

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

Install the CLI

npx ws-skills

This installs ws-skills into ~/.local by default and adds ~/.local/bin to your shell PATH when possible. If you prefer not to install anything globally, npx ws-skills ... still works as before.

Configuration

This repo uses two separate environment templates:

  • ./.env.example contains build-time defaults for maintainers publishing the CLI package. Safe public service endpoints in that file are baked into the bundle during pnpm build / npm publish, so npm users can get working defaults without per-user shell setup.
  • ./website/.env.example contains the website and index-server settings. VITE_GA_MEASUREMENT_ID belongs here because the frontend GA4 ID is compiled into the static bundle.

CLI secrets and per-user overrides are still read from shell environment variables or ~/.wsskillsrc.json:

  • WSSKILLS_GITLAB_URL
  • WSSKILLS_GITLAB_TOKEN / GITLAB_TOKEN / GL_TOKEN
  • WSSKILLS_INDEX_URL
  • SKILLS_API_URL

ws-skills does not automatically load a local repo .env at runtime. Use one of these approaches instead:

  • export the variables in your shell or CI environment
  • copy ./.wsskillsrc.example.json to ~/.wsskillsrc.json for gitlab.url, gitlab.token, search.source, and search.indexUrl

For the website, changing VITE_GA_MEASUREMENT_ID requires rebuilding the frontend bundle. Backend GA4 settings (GA_MEASUREMENT_ID, GA_API_SECRET) are runtime-only and just need a container restart. With Docker, ./website/build_and_run.sh rebuild covers both cases.

GA4 Custom Definitions

ws-skills already sends structured install/search analytics to GA4, but GA4 will not automatically show custom event parameters in standard reports. To analyze which skill was installed, register these custom definitions in the GA4 property:

GA4 TypeSuggested NameEvent Parameter
DimensionSkill Nameskill_name
DimensionSkill IDskill_id
DimensionSourcesource
DimensionSource Typesource_type
DimensionAgentsagents
DimensionGlobal Installglobal
DimensionSource Hostsource_host
DimensionSkill Pathskill_path
MetricAgent Countagent_count

The install event name is skill_install_single. After the custom definitions are added in GA4 Admin, new install events will expose these fields in reports and Explore.

Install a Skill

npx ws-skills add vercel-labs/agent-skills

Source Formats

# GitHub shorthand (owner/repo)
npx ws-skills add vercel-labs/agent-skills

# Full GitHub URL
npx ws-skills add https://github.com/vercel-labs/agent-skills

# Direct path to a skill in a repo
npx ws-skills add https://github.com/vercel-labs/agent-skills/tree/main/skills/web-design-guidelines

# GitLab URL
npx ws-skills add https://gitlab.com/org/repo

# Any git URL
npx ws-skills add git@github.com:vercel-labs/agent-skills.git

# Local path
npx ws-skills add ./my-local-skills

Options

OptionDescription
-g, --globalInstall 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, --listList available skills without installing
--copyCopy files instead of symlinking to agent directories
--skills-dir <path>Install directly to a specific directory (bypasses agent detection, scope selection, and lock files)
-y, --yesSkip all confirmation prompts
--allInstall all skills to all agents without prompts

Examples

# List skills in a repository
npx ws-skills add vercel-labs/agent-skills --list

# Install specific skills
npx ws-skills add vercel-labs/agent-skills --skill frontend-design --skill skill-creator

# Install a skill with spaces in the name (must be quoted)
npx ws-skills add owner/repo --skill "Convex Best Practices"

# Install to specific agents
npx ws-skills add vercel-labs/agent-skills -a claude-code -a opencode

# Non-interactive installation (CI/CD friendly)
npx ws-skills add vercel-labs/agent-skills --skill frontend-design -g -a claude-code -y

# Install all skills from a repo to all agents
npx ws-skills add vercel-labs/agent-skills --all

# Install all skills to specific agents
npx ws-skills add vercel-labs/agent-skills --skill '*' -a claude-code

# Install specific skills to all agents
npx ws-skills add vercel-labs/agent-skills --agent '*' --skill frontend-design

# Install directly to a custom directory (great for AI agents)
npx ws-skills add vercel-labs/agent-skills@agent-browser --skills-dir ~/.my-agent/skills -y

Installation Scope

ScopeFlagLocationUse 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:

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

Other Commands

CommandDescription
npx ws-skills listList installed skills (alias: ls)
npx ws-skills find [query]Search for skills interactively or by keyword
npx ws-skills remove [skills]Remove installed skills from agents
npx ws-skills checkCheck for available skill updates
npx ws-skills updateUpdate all installed skills to latest versions
npx ws-skills init [name]Create a new SKILL.md template

ws-skills list

List all installed skills. Similar to npm ls.

# List all installed skills (project and global)
npx ws-skills list

# List only global skills
npx ws-skills ls -g

# Filter by specific agents
npx ws-skills ls -a claude-code -a cursor

ws-skills find

Search for skills interactively or by keyword.

# Interactive search (fzf-style)
npx ws-skills find

# Search by keyword
npx ws-skills find typescript

ws-skills check / ws-skills update

# Check if any installed skills have updates
npx ws-skills check

# Update all skills to latest versions
npx ws-skills update

ws-skills init

# Create SKILL.md in current directory
npx ws-skills init

# Create a new skill in a subdirectory
npx ws-skills init my-skill

ws-skills remove

Remove installed skills from agents.

# Remove interactively (select from installed skills)
npx ws-skills remove

# Remove specific skill by name
npx ws-skills remove web-design-guidelines

# Remove multiple skills
npx ws-skills remove frontend-design web-design-guidelines

# Remove from global scope
npx ws-skills remove --global web-design-guidelines

# Remove from specific agents only
npx ws-skills remove --agent claude-code cursor my-skill

# Remove all installed skills without confirmation
npx ws-skills remove --all

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

# Remove a specific skill from all agents
npx ws-skills remove my-skill --agent '*'

# Use 'rm' alias
npx ws-skills rm my-skill
OptionDescription
-g, --globalRemove from global scope (~/) instead of project
-a, --agentRemove from specific agents (use '*' for all)
-s, --skillSpecify skills to remove (use '*' for all)
-y, --yesSkip confirmation prompts
--allShorthand 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 skills.sh

Supported Agents

Skills can be installed to any of these agents:

Agent--agentProject PathGlobal Path
Amp, Kimi Code CLI, Replit, Universalamp, kimi-cli, replit, universal.agents/skills/~/.config/agents/skills/
Antigravityantigravity.agents/skills/~/.gemini/antigravity/skills/
Augmentaugment.augment/skills/~/.augment/skills/
Claude Codeclaude-code.claude/skills/~/.claude/skills/
OpenClawopenclawws-skills/~/.openclaw/skills/
Cline, Warpcline, warp.agents/skills/~/.agents/skills/
CodeBuddycodebuddy.codebuddy/skills/~/.codebuddy/skills/
Codexcodex.agents/skills/~/.codex/skills/
Command Codecommand-code.commandcode/skills/~/.commandcode/skills/
Continuecontinue.continue/skills/~/.continue/skills/
Cortex Codecortex.cortex/skills/~/.snowflake/cortex/skills/
Crushcrush.crush/skills/~/.config/crush/skills/
Cursorcursor.agents/skills/~/.cursor/skills/
Deep Agentsdeepagents.agents/skills/~/.deepagents/agent/skills/
Droiddroid.factory/skills/~/.factory/skills/
Gemini CLIgemini-cli.agents/skills/~/.gemini/skills/
GitHub Copilotgithub-copilot.agents/skills/~/.copilot/skills/
Goosegoose.goose/skills/~/.config/goose/skills/
Juniejunie.junie/skills/~/.junie/skills/
iFlow CLIiflow-cli.iflow/skills/~/.iflow/skills/
Kilo Codekilo.kilocode/skills/~/.kilocode/skills/
Kiro CLIkiro-cli.kiro/skills/~/.kiro/skills/
Kodekode.kode/skills/~/.kode/skills/
MCPJammcpjam.mcpjam/skills/~/.mcpjam/skills/
Mistral Vibemistral-vibe.vibe/skills/~/.vibe/skills/
Muxmux.mux/skills/~/.mux/skills/
OpenCodeopencode.agents/skills/~/.config/opencode/skills/
OpenHandsopenhands.openhands/skills/~/.openhands/skills/
Pipi.pi/skills/~/.pi/agent/skills/
Qoderqoder.qoder/skills/~/.qoder/skills/
Qwen Codeqwen-code.qwen/skills/~/.qwen/skills/
Roo Coderoo.roo/skills/~/.roo/skills/
Traetrae.trae/skills/~/.trae/skills/
Trae CNtrae-cn.trae/skills/~/.trae-cn/skills/
Windsurfwindsurf.windsurf/skills/~/.codeium/windsurf/skills/
Zencoderzencoder.zencoder/skills/~/.zencoder/skills/
Neovateneovate.neovate/skills/~/.neovate/skills/
Pochipochi.pochi/skills/~/.pochi/skills/
AdaLadal.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

  • metadata.internal: Set to true to hide the skill from normal discovery. Internal skills are only visible and installable when INSTALL_INTERNAL_SKILLS=1 is set. Useful for work-in-progress skills or skills meant only for internal tooling.
---
name: my-internal-skill
description: An internal skill not shown by default
metadata:
  internal: true
---

Skill Discovery

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

  • Root directory (if it contains SKILL.md)
  • ws-skills/
  • ws-skills/.curated/
  • ws-skills/.experimental/
  • ws-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:

FeatureOpenCodeOpenHandsClaude CodeClineCodeBuddyCodexCommand CodeKiro CLICursorAntigravityRoo CodeGithub CopilotAmpOpenClawNeovatePiQoderZencoder
Basic skillsYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYes
allowed-toolsYesYesYesYesYesYesYesNoYesYesYesYesYesYesYesYesYesNo
context: forkNoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
HooksNoNoYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNo

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

VariableDescription
INSTALL_INTERNAL_SKILLSSet to 1 or true to show and install skills marked as internal: true
DISABLE_TELEMETRYSet to disable anonymous usage telemetry
DO_NOT_TRACKAlternative way to disable telemetry
# Install internal skills
INSTALL_INTERNAL_SKILLS=1 npx ws-skills add vercel-labs/agent-skills --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.

License

MIT

Keywords

cli

FAQs

Package last updated on 22 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts