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

sync-skill

v0.2.2

Published

One-click synchronization tool for AI Agent Skills (SKILL.md) across platforms.

Readme

sync-skill

中文

One-click synchronization tool for AI Skills (SKILL.md) across coding agents and IDEs.

1. Overview

sync-skill copies your Agent Skills from one AI tool into another. Agent Skills use the open SKILL.md format — a skill is just a folder containing a SKILL.md file (YAML frontmatter plus Markdown instructions) and optional scripts/assets. Because every supported platform reads the same format, syncing is simply a matter of copying skill folders from one platform's skills directory into another's. No format conversion is needed.

Each platform stores skills in a different directory, so sync-skill knows where every tool looks and moves your skills there safely — asking for confirmation before it replaces anything that already exists on the target, and never deleting skills that only exist there.

2. Technical Specifications

  • Runtime: Node.js >= 18 (pure ESM, no build step).
  • Distribution: run via npx sync-skill (no global install required).
  • Dependency: @inquirer/prompts for the interactive wizard. Everything else uses Node built-ins.
  • Tests: npm test (Node's built-in node --test).
  • OS support: Linux, macOS, and Windows.

3. Usage

Direct mode (copies all skills)

npx -y sync-skill <source> <target> [--scope global|project]

Examples:

# Sync all global skills from Claude Code into Cursor
npx -y sync-skill claude cursor

# Sync project-level skills from Claude Code into Codex (./.claude/skills -> ./.agents/skills)
npx -y sync-skill claude codex --scope project

Interactive mode (pick individual skills)

npx -y sync-skill

The wizard walks you through: scope → source platform → target platform → checkbox selection of skills to copy.

  • --scope global (default): personal skills under your home directory.
  • --scope project: workspace skills under the current directory.

4. Platform Matching Keywords

You can pass any of these keywords as the <source> / <target>:

| Platform | Keywords | | :--- | :--- | | Claude Code | claude, claude-code, claude code, anthropic | | Codex | codex, openai, codex cli | | Cursor | cursor, cursor ide | | Gemini CLI | gemini, gemini cli, google, gcloud | | GitHub Copilot CLI | copilot, copilot cli, github, gh | | Visual Studio Code | vscode, vs code, vs-code, code | | OpenCode | opencode, open code, anomaly |

5. Supported Platforms and Skill Directories

| Platform | Global (Linux / macOS) | Global (Windows) | Project | Documentation | | :--- | :--- | :--- | :--- | :--- | | Claude Code | ~/.claude/skills/ | %USERPROFILE%\.claude\skills\ | .claude/skills/ | Claude Code skills | | Codex | ~/.codex/skills/ | %USERPROFILE%\.codex\skills\ | .agents/skills/ | Codex skills | | Cursor | ~/.cursor/skills/ | %USERPROFILE%\.cursor\skills\ | .cursor/skills/ | Cursor skills | | Gemini CLI | ~/.gemini/skills/ | %USERPROFILE%\.gemini\skills\ | .gemini/skills/ | Gemini CLI skills | | GitHub Copilot CLI | ~/.copilot/skills/ | %USERPROFILE%\.copilot\skills\ | .github/skills/ | Copilot CLI skills | | Visual Studio Code | ~/.copilot/skills/ | %USERPROFILE%\.copilot\skills\ | .github/skills/ | VS Code agent skills | | OpenCode | ~/.config/opencode/skills/ | %LOCALAPPDATA%\opencode\skills\ | .opencode/skills/ | OpenCode skills |

Notes:

  • VS Code and GitHub Copilot CLI share ~/.copilot/skills/. Syncing between them under the global scope is reported as a no-op.
  • Many tools additionally read the cross-tool locations ~/.agents/skills/ (personal) and .agents/skills/ (project), as well as ~/.claude/skills/. sync-skill targets each platform's primary native directory shown above.

6. Core Features

  • Two modes: direct CLI (copy all) and interactive (select individual skills).
  • Two scopes: global (personal) and project (workspace).
  • Non-destructive merge: skills that exist only on the target are left untouched.
  • Overwrite confirmation: if a skill of the same name already exists on the target, sync-skill shows the source vs. target version (when declared) and asks before replacing it.
  • Model-field awareness: reports skills whose frontmatter is bound to a specific model (see below).

7. Model-Related Fields and Manual Adjustment

A skill's SKILL.md frontmatter has universal fields (name, description, license, compatibility, metadata, allowed-tools) that are portable across every platform, and Claude Code-specific extensions that other tools ignore.

Among the extensions, two are bound to a specific model:

  • model — the model the skill runs on (sonnet / opus / haiku, a full model id, or inherit).
  • effort — the reasoning effort level.

These values belong to Anthropic's model family. When a skill is synced to Gemini, Codex, Cursor, etc., spec-compliant tools simply ignore unknown fields (so nothing breaks), but the values are meaningless there.

sync-skill never rewrites these values. It copies the skill as-is, then prints a report listing which synced skills declare model/effort and reminds you to edit them manually for the target platform:

[sync-skill] Heads up — some synced skills declare model-specific fields:
[sync-skill]   - demo (model: opus, effort: high)
[sync-skill] Cursor uses a different model family. These values were copied as-is — please edit them manually.

8. Overwrite Confirmation

When a source skill shares its folder name with a skill already present on the target, sync-skill does not overwrite it silently. Instead it:

  1. Tells you the skill already exists on the target.
  2. Shows the source and target version (read from each SKILL.md frontmatter), if either side declares one.
  3. Asks you to confirm the replacement.
[sync-skill] "demo" already exists in Cursor (~/.cursor/skills).
[sync-skill]   Source version: 2.0.0  Target version: 1.0.0
? Replace "demo"? This cannot be undone — no backup will be kept. (y/N)

This applies in both interactive and direct (npx sync-skill <source> <target>) mode. Declining leaves the existing target skill untouched (reported as Skipped); accepting replaces it permanently — no backup is kept, so make sure you no longer need the existing version before confirming.

9. Platform Compatibility

  • On Windows, home-based tools resolve under %USERPROFILE%; OpenCode resolves under %LOCALAPPDATA%. Missing environment variables fall back to the standard AppData locations.
  • --scope project resolves directories relative to the current working directory, so run it from your project root.
  • Paths are normalized per-OS, so the same command works on Linux, macOS, and Windows.

License

MIT