gsp-update
Step 1 — Detect installation
Determine the runtime by checking which config directory exists. Check local first, then global:
| Runtime | Local dir | Global dir |
|---|---|---|
| Claude Code | .claude/ |
~/.claude/ |
| OpenCode | .opencode/ |
~/.config/opencode/ |
| Gemini | .gemini/ |
~/.gemini/ |
| Codex | .codex/ |
~/.codex/ |
For each runtime, look for the VERSION file in two paths (current layout first, legacy fallback):
{runtime-dir}/VERSION(v0.5.0+){runtime-dir}/get-shit-pretty/VERSION(legacy v0.4.x)
Record which runtime(s) and install type (local/global) were found.
If no VERSION file exists anywhere, tell the user GSP doesn't appear to be installed and suggest:
npx get-shit-pretty
Then stop.
Read the VERSION file to get the installed version.
Step 2 — Check latest version
npm view get-shit-pretty version
If the command fails, tell the user the version check failed (they may be offline or npm is unavailable) and stop.
Step 3 — Compare versions
If installed version >= latest version:
GSP v{installed} is already up to date.
Then stop.
Step 4 — Show what's new
Update available: v{installed} → v{latest}
Fetch the changelog:
curl -sf https://raw.githubusercontent.com/jubscodes/get-shit-pretty/main/CHANGELOG.md
If the fetch succeeds, extract and display the section(s) between the installed and latest versions. If it fails, skip — changelog display is optional.
Step 5 — Warn about clean install
The update replaces:
• skills/gsp-* (all GSP skills + sibling files)
• templates/ (config, state, brief templates)
• references/ (shared reference material)
• agents/gsp-* (all GSP agents)
Custom files outside these prefixes are preserved.
Step 6 — Confirm with user
Use AskUserQuestion:
- Update now — "Install v{latest}"
- Skip — "I'll update later"
If skip → stop.
Step 7 — Execute update
Build the installer command based on what was detected in Step 1:
Runtime flag: use the detected runtime (--claude, --opencode, --gemini, --codex). If multiple runtimes were found, use --all.
Scope flag: --local if local install was detected, --global if global.
npx get-shit-pretty@latest {runtime-flag} {scope-flag}
Examples:
- Local Claude:
npx get-shit-pretty@latest --claude --local - Global Claude:
npx get-shit-pretty@latest --claude --global - Global OpenCode:
npx get-shit-pretty@latest --opencode --global - Multiple runtimes:
npx get-shit-pretty@latest --all --global
Show the output to the user.
Step 7.5 — Run migrations
Scan .design/branding/ for brand directories. For each brand, if {brand}/system/ exists but {brand}/patterns/ does not, rename via mv and log the migration. This handles the v0.5.0 → v0.5.1 rename.
Step 8 — Clear update cache
Remove the update cache so the statusline reflects the new state. Clear cache from the same directory where VERSION was found in Step 1:
rm -f {version-dir}/.update-cache.json
Also clean the legacy path if it exists:
rm -f {runtime-dir}/get-shit-pretty/.update-cache.json
Step 9 — Remind to restart
GSP updated to v{latest}.
Restart your session to load the new skills and agents.
More from jubscodes/get-shit-pretty
get-shit-pretty
Design engineering for AI coding tools. Full pipeline: brand research, strategy, identity, guidelines, UI design, critique, accessibility audit, build, and review. Expertise skills (color, typography, visuals) serve the entire pipeline. 14 specialized agents with Apple HIG, Nielsen's heuristics, WCAG 2.2 AA, and design token standards.
17gsp-visuals
Define visual direction — imagery, 3D, video, textures, and surface treatments
16gsp-accessibility
Quick contrast checks and token WCAG audits — inline, no agent
16gsp-help
Show all skills
16gsp-color
Design color systems — palettes, contrast, semantic mapping, dark mode
16gsp-typography
Design type systems — scale, pairing, fluid type, vertical rhythm
16