# skills-updater > Check and update installed Claude Code skills from multiple sources (Claude plugins and npx skills). Scans for available updates, supports batch or individual updates with intelligent local change merging, and recommends popular skills from skillsmp.com and skills.sh marketplaces. Use when users want to update skills, check for new versions, discover trending skills, or manage their skill collection. - Author: Your Name - Repository: wjt0321/skills-collection - Version: 20260125215222 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/wjt0321/skills-collection - Web: https://mule.run/skillshub/@@wjt0321/skills-collection~skills-updater:20260125215222 --- --- name: skills-updater description: Check and update installed Claude Code skills from multiple sources (Claude plugins and npx skills). Scans for available updates, supports batch or individual updates with intelligent local change merging, and recommends popular skills from skillsmp.com and skills.sh marketplaces. Use when users want to update skills, check for new versions, discover trending skills, or manage their skill collection. --- # Skills Updater Manage, update, and discover Claude Code skills across multiple installation sources. ## Internationalization (i18n) All scripts automatically detect user locale from environment variables and display output in the appropriate language. **Supported Languages:** - English (en) - Default - Chinese (zh) - ไธญๆ–‡ **Auto-detection order:** 1. `LANG` environment variable 2. `LC_ALL` environment variable 3. `LANGUAGE` environment variable 4. System locale **Manual override:** ```bash python scripts/check_updates.py --lang zh # Force Chinese python scripts/check_updates.py --lang en # Force English ``` ## Supported Sources **Claude Code Plugins** (`~/.claude/plugins/`): - `installed_plugins.json` - Tracks installed skills with versions - `known_marketplaces.json` - Registered marketplace sources - `cache/` - Installed skill files **npx skills** (`~/.skills/` if present): - Skills installed via `npx skills add ` - Managed by skills.sh infrastructure ## Update Check Workflow ### Step 1: Scan Installed Skills ```bash python scripts/check_updates.py ``` Output format: ``` ๐Ÿ“ฆ Installed Skills Status โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” โœ… Up-to-date (12): โ€ข skill-creator@daymade-skills (1.2.2) โ€ข github-ops@daymade-skills (1.0.0) ... โฌ†๏ธ Updates Available (3): โ€ข planning-with-files@planning-with-files Local: 2.5.0 โ†’ Remote: 2.6.1 โ€ข superpowers@superpowers-marketplace Local: 4.0.3 โ†’ Remote: 4.1.0 ... โš ๏ธ Unknown Version (2): โ€ข document-skills@anthropic-agent-skills (unknown) ... ``` ### Step 2: Confirm Update Strategy Present options to user: 1. **Update All** - Update all skills with available updates 2. **Select Individual** - Let user choose specific skills to update 3. **Skip** - Cancel the update process ### Step 3: Handle Local Modifications Before updating, check for local modifications: ```bash # Check if local skill has uncommitted changes cd ~/.claude/plugins/cache/// git status --porcelain ``` **If local changes detected:** 1. Create backup of modified files 2. Pull remote updates 3. Attempt 3-way merge 4. If conflicts: - Show conflict files to user - Offer manual resolution or keep local version ### Step 4: Execute Update For Claude Code plugins: ```bash # Trigger marketplace refresh and skill reinstall # This uses Claude Code's built-in update mechanism claude /install @ ``` For npx skills: ```bash npx skills add --force ``` ## Auto-Install After Marketplace Update The `update_marketplace.py` script can automatically reinstall affected skills after updating a marketplace repository. ### Usage ```bash # Update marketplace only (show affected skills) python scripts/update_marketplace.py anthropic-agent-skills # Update marketplace AND auto-reinstall affected skills python scripts/update_marketplace.py anthropic-agent-skills --auto-install # Output as JSON python scripts/update_marketplace.py anthropic-agent-skills --json # Force language python scripts/update_marketplace.py anthropic-agent-skills --lang zh ``` ### Output (Chinese locale) ``` ๐Ÿ“ก ๆญฃๅœจ่Žทๅ–่ฟœ็จ‹ๆ›ดๆ–ฐ... ๅฝ“ๅ‰ๆไบค: e5c60158df67 ่ฟœ็จ‹ๆไบค: 69c0b1a06741 ็Šถๆ€: ่ฝๅŽ 6 ไธชๆไบค ๐Ÿ“ ๆ›ดๆ–ฐๅ†…ๅฎน: โ€ข 69c0b1a Add link to Agent Skills specification website โ€ข be229a5 Fix links in agent skills specification ... ๐Ÿ“ฆ ๅ—ๅฝฑๅ“็š„ๆŠ€่ƒฝ: document-skills ๐Ÿ“ฅ ๆญฃๅœจๆ›ดๆ–ฐๅธ‚ๅœบ: anthropic-agent-skills โœ… ๅธ‚ๅœบๆ›ดๆ–ฐๆˆๅŠŸ ๐Ÿ”„ ๆญฃๅœจ้‡ๆ–ฐๅฎ‰่ฃ…ๅ—ๅฝฑๅ“็š„ๆŠ€่ƒฝ... ๆญฃๅœจๅฎ‰่ฃ…: document-skills โœ… ๅทฒๅฎ‰่ฃ…: document-skills โœ… ๆ‰€ๆœ‰ๅ—ๅฝฑๅ“็š„ๆŠ€่ƒฝๅทฒๆ›ดๆ–ฐ ``` ### Workflow 1. **Fetch remote** - Git fetch to check for updates 2. **Compare commits** - Show how many commits behind 3. **List affected skills** - Find installed skills from this marketplace 4. **Pull updates** - Git pull to update local marketplace 5. **Auto-reinstall** - (with `--auto-install`) Reinstall each affected skill ## Skill Recommendations ### Fetch Trending Skills ```bash python scripts/recommend_skills.py --source all ``` Sources: - **skills.sh** - Leaderboard ranked by installs - **skillsmp.com** - Curated marketplace (if accessible) ### Output Format ``` ๐Ÿ”ฅ Trending Skills โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” From skills.sh: 1. vercel-react-best-practices (25.5K installs) npx skills add vercel/react-best-practices 2. web-design-guidelines (19.2K installs) npx skills add webdesign/guidelines 3. remotion-best-practices (2.2K installs) npx skills add remotion/best-practices ๐Ÿ’ก Personalized Recommendations: Based on your installed skills (developer-tools, productivity): - playwright-skill - Browser automation testing - github-ops - GitHub CLI operations ``` ### Install Recommended Skill After showing recommendations, offer to install: ``` Would you like to install any of these skills? 1. Install by number (e.g., "1" or "1,3,5") 2. Install by name 3. Skip ``` ## Version Detection Methods ### Primary: marketplace.json Read version from remote marketplace.json: ```bash curl -s "https://raw.githubusercontent.com///main/.claude-plugin/marketplace.json" | jq '.plugins[] | select(.name == "") | .version' ``` ### Fallback: GitHub API If marketplace.json unavailable or version not specified: ```bash # Get latest release tag curl -s "https://api.github.com/repos///releases/latest" | jq -r '.tag_name' # Or latest commit on main curl -s "https://api.github.com/repos///commits/main" | jq -r '.sha[:7]' ``` ### Commit SHA Comparison For skills tracking by commit (e.g., `e30768372b41`): ```bash # Compare local gitCommitSha with remote HEAD local_sha=$(jq -r '.plugins[""][0].gitCommitSha' ~/.claude/plugins/installed_plugins.json) remote_sha=$(curl -s "https://api.github.com/repos///commits/main" | jq -r '.sha') if [ "$local_sha" != "$remote_sha" ]; then echo "Update available" fi ``` ## Smart Merge Strategy When local modifications exist: 1. **Identify modified files**: ```bash git diff --name-only HEAD ``` 2. **Categorize changes**: - SKILL.md customizations โ†’ Preserve user sections - scripts/ modifications โ†’ Keep local, note for review - references/ additions โ†’ Merge both - assets/ โ†’ Keep both versions if different 3. **Merge approach**: ```python # Pseudo-code for smart merge for file in modified_files: if file == 'SKILL.md': merge_skill_md(local, remote) # Preserve user customizations elif file.startswith('scripts/'): backup_and_warn(local) # User scripts need review else: three_way_merge(base, local, remote) ``` ## User Interaction Patterns ### Check for Updates User says: "ๆฃ€ๆŸฅ skills ๆ›ดๆ–ฐ" / "check skill updates" / "update my skills" โ†’ Run `scripts/check_updates.py` and display results ### Update Specific Skill User says: "ๆ›ดๆ–ฐ skill-creator" / "update skill-creator" โ†’ Check and update only the specified skill ### Discover New Skills User says: "ๆŽจ่ไธ€ไบ›ๅฅฝ็”จ็š„ skills" / "recommend skills" / "popular skills" โ†’ Run `scripts/recommend_skills.py` and show curated list ### Full Update Workflow User says: "ๆ›ดๆ–ฐๆ‰€ๆœ‰ skills" / "update all skills" โ†’ Scan โ†’ Confirm โ†’ Handle merges โ†’ Update โ†’ Report results ## Error Handling **Network errors**: Retry with exponential backoff, cache last known state **Permission errors**: Suggest running with appropriate permissions **Merge conflicts**: Show conflict markers, offer resolution options: - Accept local (keep your changes) - Accept remote (use upstream) - Manual merge (show diff) **Missing marketplace**: Inform user if source is no longer available ## Resources ### scripts/ - `check_updates.py` - Scan and compare installed vs remote versions - `recommend_skills.py` - Fetch trending skills from marketplaces - `update_marketplace.py` - Update marketplace repos and auto-reinstall skills - `i18n.py` - Internationalization module (locale detection, translations) ### references/ - `marketplaces.md` - Supported marketplace documentation ## Adding New Languages To add a new language, edit `scripts/i18n.py`: 1. Add translations to `TRANSLATIONS` dict: ```python TRANSLATIONS["ja"] = { "checking_updates": "ใ‚นใ‚ญใƒซใฎๆ›ดๆ–ฐใ‚’็ขบ่ชไธญ...", # ... other translations } ``` 2. Update `detect_locale()` to recognize the new locale: ```python if lang_lower.startswith('ja'): return 'ja' ```