petr-korobeinikov/skills

npx-skills

>- Documents the `npx skills` CLI for installing and updating agent skills, plus the project-level `skills-lock.json` lockfile. On start, detects a `skills-lock.json` without installed skills under `.claude/skills/` and proposes restoring them via `npx skills add … --copy -y` per the source recorded in the lockfile.

First seen Jun 16, 2026

Installation

$ npx skills add petr-korobeinikov/skills --skill npx-skills

Also in this package

Other skills from petr-korobeinikov/skills · top by installs.

npx skills add petr-korobeinikov/skills

Browse all from petr-korobeinikov/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
License LICENSE
Default branch main
Open issues 0
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,436 B
  • docs SUMMARY.md 334 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 30 installs

SKILL.md

npx-skills

The npx skills CLI (https://github.com/vercel-labs/skills) installs agent skills from a GitHub source into the host project's .claude/skills/ directory, and writes a project-level skills-lock.json recording what was installed.

Lock files

File Scope Checked in Per-skill fields
skills-lock.json (repo root) project yes source, sourceType, skillPath, computedHash
~/.agents/.skill-lock.json global no written when -g is used

The project lockfile is the source of truth for which skills the repo expects to be present.

Startup detection

On the first interaction in a project that has skills-lock.json at the repo root but no .claude/skills/ directory (or the directory exists yet skills listed in the lockfile are missing):

  1. Read skills-lock.json,

list the skill names under skills.* that are not present in .claude/skills/.

  1. Collect the unique source values from those entries.
  2. Report the missing skills to the user,

and propose one install command per unique source:

``sh npx skills add <source> --skill '*' --copy -a claude-code -y ``

  1. Wait for the user's confirmation before running anything.

Use -g instead of the project-local default only when the user explicitly wants the install under ~/.claude/skills/.

Install — all skills from a source

npx skills add <owner/repo> --skill '*' --copy -a claude-code -y
  • --skill '*' —

every skill in the source. Replace with --skill <name> for a single skill.

  • --copy —

write plain file copies, not symlinks. Symlinks couple the host repo to the source checkout and clutter the consumer's git status.

  • -a claude-code —

target Claude Code's .claude/skills/ layout.

  • -y —

non-interactive (skip the per-skill confirmation prompt).

Install — a single skill

npx skills add <owner/repo> --skill <skill-name> -a claude-code

Drop -y when adding a single skill — the interactive prompt is quick and confirms the resolved source.

Update — re-run add --copy -y

Re-running the install with --copy -y overwrites existing files in .claude/skills/ in place, so install and update share one command:

npx skills add <owner/repo> --skill '*' --copy -a claude-code -y

Avoid npx skills update

update stages the package under .agents/ in the host repo, which clutters git status in the consumer project. The --copy flag does not change this — update accepts it but silently ignores it. Use add --copy -y instead.

Scope: project vs global

Mode Flag Install path
Project (default) .claude/skills/
Global -g ~/.claude/skills/

Project is the default and the recommended scope.

Verifying against upstream

The npx skills doc site is shallow. When the exact behavior of a flag or command is unclear, read the source at https://github.com/vercel-labs/skills (src/add.ts, src/update.ts, src/skill-lock.ts) rather than guessing.