| name | updating-wrangler |
| description | Update the wrangler plugin to the latest version by clearing all caching layers. Use when user says "update yourself", "update wrangler", or after pushing changes to the wrangler repo. |
Update Wrangler Plugin
This skill updates the wrangler plugin to the latest version from GitHub by clearing all caching layers.
When to Use
- User says "update yourself" or "update wrangler"
- After pushing changes to the wrangler GitHub repo
- When slash commands or skills aren't showing up after changes
- When plugin behavior doesn't match the latest code
Background: The Caching Problem
Claude Code's plugin system has three layers that can get out of sync:
| Layer | Location | Purpose |
|---|
| GitHub | Remote repository | Source of truth |
| Marketplace clone | ~/.claude/plugins/marketplaces/{marketplace}/ | Local git clone |
| Installed cache | ~/.claude/plugins/cache/{marketplace}/wrangler/ | Files Claude Code uses |
The /plugin command only reads from the marketplace clone, and only re-installs if version changes. Pushing to GitHub doesn't update the other layers.
Instructions
Step 1: Find the Marketplace Name
grep -l wrangler ~/.claude/plugins/marketplaces/*/plugin.json 2>/dev/null | head -1 | xargs dirname | xargs basename
Or check ~/.claude/plugins/installed_plugins.json for the key containing "wrangler" (e.g., wrangler@samjhecht-plugins means marketplace is samjhecht-plugins).
Step 2: Update All Layers
Execute these commands (replace {marketplace} with actual name):
cd ~/.claude/plugins/marketplaces/{marketplace} && git fetch origin && git reset --hard origin/main && cd -
rm -rf ~/.claude/plugins/cache/{marketplace}/wrangler/
cd ~/.claude/plugins/marketplaces/{marketplace} && npm install && cd -
Step 3 rebuilds the MCP bundle. This is critical because Claude Code copies plugin files but doesn't run npm install or postinstall scripts. The MCP server requires mcp/dist/bundle.cjs which is built by the postinstall script.
For step 4, edit ~/.claude/plugins/installed_plugins.json and set the wrangler entry to an empty array:
"wrangler@{marketplace}": []
Step 3: Inform User
Tell the user:
Wrangler plugin cache cleared. Please restart Claude Code to complete the update.
The plugin will reinstall from the latest code on next startup.
Automated Script
Execute the script directly:
./scripts/update-wrangler.sh
Or offer to add it to the user's shell config for easy access:
source /path/to/wrangler/skills/updating-wrangler/scripts/update-wrangler.sh
update-wrangler
The script (scripts/update-wrangler.sh) handles:
- Finding the marketplace name automatically
- Updating the marketplace clone from origin
- Clearing the plugin cache
- Resetting the installed_plugins.json entry
Requires: jq for JSON manipulation (falls back to manual instructions if not installed)
Manual Alternative
If the user prefers not to use the script, provide these manual steps:
- Find your marketplace name in
~/.claude/plugins/installed_plugins.json
- Pull latest code:
cd ~/.claude/plugins/marketplaces/{marketplace} && git pull
- Delete cache:
rm -rf ~/.claude/plugins/cache/{marketplace}/wrangler/
- Rebuild MCP bundle:
cd ~/.claude/plugins/marketplaces/{marketplace} && npm install
- Edit
~/.claude/plugins/installed_plugins.json - set wrangler entry to []
- Restart Claude Code
Verification
After restart, verify the update worked:
cat ~/.claude/plugins/installed_plugins.json | grep -A5 wrangler
ls ~/.claude/plugins/cache/{marketplace}/wrangler/*/commands/
Why This Is Necessary
- Version numbers alone don't trigger updates (same version = no reinstall)
- The marketplace clone is a local git repo that doesn't auto-fetch
installed_plugins.json caches the commit SHA and won't reinstall unless cleared
- All three layers must be updated for changes to take effect