Skip to the content.

Skills CLI

Sync AI skills across all your agent tools with one command

Supports Cursor, Claude Code, Gemini CLI, GitHub Copilot, OpenCode, Windsurf, and more.

InstallationQuick StartCommandsSupported ToolsConfigurationFAQ


Why Skills CLI?

The problem: You create a skill for Cursor, but need it in Claude Code and Gemini too. Manually copying? Tedious. What if you update it? Copy again to every tool.

The solution: One source of truth. Add once, sync everywhere.

skills source add https://github.com/user/repo/tree/main/skills/react --remote
skills target add cursor
skills target add claude
skills sync  # Done! Skills synced to all targets

What makes it different

Feature Description
🔄 Multi-source Pull from GitHub, GitLab, Bitbucket, or local folders
🎯 Multi-target Sync to Cursor, Claude, Gemini, Copilot, or any custom directory
📂 Subdirectory support Install specific skills from large mono-repos
🏷️ Rename skills Use --name to avoid conflicts
🔍 Diagnostics doctor command checks your setup
Fast Built with Bun for maximum performance

Installation

Prerequisites

Install via Bun

bun install -g @dhruvwill/skills-cli

Install from Source

# Clone the repository
git clone https://github.com/dhruvwill/skills.git
cd skills

# Install dependencies
bun install

# Link globally
bun link

Verify Installation

skills --version
skills doctor

Updating

Update to the latest version with:

skills self-update

Quick Start

# 1. Add a skill from GitHub
skills source add https://github.com/vercel-labs/agent-skills/tree/main/skills/react-best-practices --remote

# 2. Add your targets (path auto-detected for known tools)
skills target add cursor
skills target add claude

# 3. Sync!
skills sync

Check your setup anytime:

skills status   # Overview of skills & targets
skills doctor   # Diagnose issues

How It Works

┌─────────────────────────────────────────────────────────────┐
│                    Remote Sources                           │
│   GitHub • GitLab • Bitbucket • Self-hosted Git            │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ skills source add
┌─────────────────────────────────────────────────────────────┐
│                    ~/.skills/store/                         │
│                                                             │
│   react-best-practices/    my-custom-skill/    local-skill/ │
│                                                             │
│                   ⬆ Single Source of Truth ⬆                │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ skills sync
        ┌─────────────────────┼─────────────────────┐
        ▼                     ▼                     ▼
┌───────────────┐     ┌───────────────┐     ┌───────────────┐
│    Cursor     │     │  Claude Code  │     │  Gemini CLI   │
│ ~/.cursor/    │     │ ~/.claude/    │     │ ~/.gemini/    │
│    skills/    │     │    skills/    │     │    skills/    │
└───────────────┘     └───────────────┘     └───────────────┘

Commands

Overview

Command Description
skills status Show overview of skills, targets & sync state
skills doctor Diagnose configuration issues
skills sync Push skills from store to all targets
skills update Refresh all skills from origin
skills self-update Update the CLI to the latest version

Skill Management

Command Description
skills source list List all registered skills
skills source add <url> --remote Add a skill from Git repository
skills source add <path> --local Add a skill from local folder
skills source add <url> --remote --name <name> Add with custom name
skills source remove <name> Remove a skill by name

Target Management

Command Description
skills target list List all targets with sync status
skills target available Show predefined targets with paths
skills target add <name> Add a predefined target (auto-detects path)
skills target add <name> <path> Add a custom target with specific path
skills target remove <name> Remove a target

Supported Tools

Run skills target available to see all supported tools:

Tool Path
Cursor ~/.cursor/skills/
Claude Code ~/.claude/skills/
Gemini CLI ~/.gemini/skills/
VS Code / Copilot ~/.copilot/skills/
OpenCode ~/.config/opencode/skills/
Windsurf ~/.windsurf/skills/
Antigravity ~/.gemini/antigravity/skills/

Adding Predefined Targets

# Just use the name - path is auto-detected
skills target add cursor
skills target add claude
skills target add gemini

Adding Custom Targets

# For tools not in the list, specify the path
skills target add mytool ~/path/to/mytool/skills

Adding Skills

From GitHub

# Full repository
skills source add https://github.com/owner/repo --remote

# Specific subdirectory (great for mono-repos)
skills source add https://github.com/owner/repo/tree/main/skills/my-skill --remote

# With custom name (to avoid conflicts)
skills source add https://github.com/owner/repo --remote --name my-custom-name

From GitLab

skills source add https://gitlab.com/owner/repo --remote
skills source add https://gitlab.com/owner/repo/-/tree/main/skills/my-skill --remote

From Bitbucket

skills source add https://bitbucket.org/owner/repo --remote
skills source add https://bitbucket.org/owner/repo/src/main/skills/my-skill --remote

From Local Folder

skills source add ./my-local-skills --local
skills source add /absolute/path/to/skills --local

Configuration

Directory Structure

~/.skills/
├── store/                    # Central repository for all skills
│   ├── react-best-practices/ # Each skill in its own folder
│   │   ├── SKILL.md
│   │   └── rules/
│   └── my-custom-skill/
│       └── SKILL.md
└── config.json               # Registry of sources and targets

Skill Folder Structure

Each skill should follow this structure:

skill-name/
├── SKILL.md          # Main skill definition (required)
├── AGENTS.md         # Agent behavior (optional)
├── rules/            # Additional rules (optional)
│   ├── rule-1.md
│   └── rule-2.md
└── metadata.json     # Skill metadata (optional)

Config File

Located at ~/.skills/config.json:

{
  "sources": [
    {
      "type": "remote",
      "url": "https://github.com/owner/repo/tree/main/skills/my-skill",
      "name": "my-skill"
    },
    {
      "type": "local",
      "path": "/home/user/my-skills",
      "name": "my-local-skill"
    }
  ],
  "targets": [
    {
      "name": "cursor",
      "path": "/home/user/.cursor/skills"
    },
    {
      "name": "claude",
      "path": "/home/user/.claude/skills"
    }
  ]
}

FAQ

How is this different from manually copying files?

Skills CLI provides:

What happens when I run skills sync?

The contents of ~/.skills/store/ are copied to all registered target directories, maintaining the folder structure:

~/.skills/store/my-skill/  →  ~/.cursor/skills/my-skill/
                           →  ~/.claude/skills/my-skill/
                           →  ~/.gemini/skills/my-skill/

How do I handle naming conflicts?

Use the --name flag when adding skills:

# Two different "utils" skills from different repos
skills source add https://github.com/user1/repo --remote --name user1-utils
skills source add https://github.com/user2/repo --remote --name user2-utils

How do I update skills from remote sources?

skills update  # Pulls latest from all remote sources
skills sync    # Pushes to all targets

Can I add a tool that’s not in the predefined list?

Yes! Just specify the path:

skills target add mytool ~/path/to/mytool/skills

Common Issues

“Git is not installed”

Install Git from git-scm.com or via your package manager.

“Skill already exists”

Either remove it first or use --name to give it a different name:

skills source remove old-skill
skills source add <url> --remote

# Or use a different name
skills source add <url> --remote --name new-name

“Unknown target”

The target isn’t in the predefined list. Specify the path:

skills target add mytool ~/path/to/skills

Need help?

skills doctor        # Run diagnostics
skills status        # Check current state
skills target available  # See predefined targets
skills --help        # Show all commands

Contributing

git clone https://github.com/dhruvwill/skills.git
cd skills
bun install
bun test

License

MIT