From swisher
Switch Claude Code to the Z.ai GLM coding plan. Run the bundled switcher and reply with a formatted status panel. Use only when the user invokes /swisher:glm.
How this skill is triggered — by the user, by Claude, or both
Slash command
/swisher:glmThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Run the bundled switcher:
Run the bundled switcher:
!node "${CLAUDE_PLUGIN_ROOT}/scripts/swisher.mjs" switch glm --json
If status is blocked: reply with:
❌ Blocked — Z.ai API Key not configured
Add
zai_api_keyin Claude Code settings → Plugins → Swisher, then run/swisher:glmagain.
If status is validation_failed: reply with:
⚠️ Switch applied but API key validation failed
The key may be invalid or the endpoint unreachable. HTTP {validationStatus}: {validationError}. Check your Z.ai API key and try again.
The switch was still applied — your settings are updated. If the key is valid but timed out, restart Claude Code to try it.
If status is ok: reply with a formatted panel:
## ✅ Switched to Z.ai GLM
**Provider:** Z.ai GLM
**Base URL:** https://api.z.ai/api/anthropic
**Timeout:** 3000000ms (50 min)
**Model Mapping:**
- Opus / Sonnet → glm-4.7 (200K context, 128K output)
- Haiku → glm-4.5-air (128K context, 96K output)
- Fast model → glm-4.7-flash
**Validation:** {validationStatus >= 200 && validationStatus < 300 ? "✅ passed" : "⚠️ HTTP " + validationStatus}
**Changed keys:** {changedKeys.join(", ")}
⚠️ **Restart Claude Code** or open a new terminal session to activate the new provider.
Notes about Z.ai GLM:
npx claudepluginhub misterwonderful/swisher --plugin swisherCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.