# copy-skill > Copy Claude Code skills from GitHub repositories into local .claude/skills directory. Use when the user wants to install, download, or copy a skill from GitHub, or mentions a GitHub URL to a skill they want to add. - Author: Khang - Repository: khang859/clauding-it - Version: 20260115224208 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/khang859/clauding-it - Web: https://mule.run/skillshub/@@khang859/clauding-it~copy-skill:20260115224208 --- --- name: copy-skill description: Copy Claude Code skills from GitHub repositories into local .claude/skills directory. Use when the user wants to install, download, or copy a skill from GitHub, or mentions a GitHub URL to a skill they want to add. --- # Copy Skill Downloads and installs Claude Code skills from GitHub repositories to your local `.claude/skills` directory. ## Quick Start ```bash node scripts/copy-skill.js [--target ] ``` ## Instructions ### Step 1: Parse the GitHub URL Accept URLs in these formats: - `https://github.com/owner/repo/tree/branch/path/to/skill` - `https://github.com/owner/repo/tree/main/skills/skill-name` ### Step 2: Run the copy script ```bash # Copy to project .claude/skills (default) node scripts/copy-skill.js https://github.com/user/repo/tree/main/skills/my-skill # Copy to user home ~/.claude/skills node scripts/copy-skill.js https://github.com/user/repo/tree/main/skills/my-skill --target ~/.claude/skills ``` ### Step 3: Verify installation The script will: 1. Fetch the directory listing from GitHub API 2. Recursively download all files (SKILL.md, scripts/, references/, etc.) 3. Create the local directory structure 4. Write all files preserving the structure ## Usage Examples **Copy a skill from a public repository:** ```bash node scripts/copy-skill.js https://github.com/owner/repo/tree/main/skills/my-skill ``` **Copy to a custom location:** ```bash node scripts/copy-skill.js https://github.com/user/skills/tree/main/my-skill --target /path/to/.claude/skills ``` **Copy to home directory skills:** ```bash node scripts/copy-skill.js https://github.com/user/repo/tree/main/skill-name --target ~/.claude/skills ``` ## Script Options | Option | Description | Default | |--------|-------------|---------| | `--target`, `-t` | Target directory for skill installation | `.claude/skills` | | `--name`, `-n` | Override skill directory name | Extracted from URL | | `--verbose`, `-v` | Enable verbose output | `false` | ## Requirements - Node.js 18+ (for native fetch support) - Internet connection to access GitHub API ## How It Works 1. **URL Parsing**: Extracts owner, repo, branch, and path from GitHub URL 2. **API Fetching**: Uses GitHub Contents API to list all files recursively 3. **Content Download**: Fetches raw content for each file 4. **Directory Creation**: Creates local directory structure mirroring the source 5. **File Writing**: Writes all files to the target location ## Error Handling The script handles: - Invalid GitHub URLs - Non-existent repositories or paths - Network failures with retry logic - Rate limiting (suggests using GITHUB_TOKEN) ## Troubleshooting **Rate limit exceeded:** ```bash export GITHUB_TOKEN=your_token_here node scripts/copy-skill.js ``` **Permission denied:** - Check write permissions on target directory - Try with sudo or change target path **Skill not found after install:** - Restart Claude Code to reload skills - Verify SKILL.md exists in the installed directory