claude-code-theme-patcher
v0.2.2
Published
Patch official Claude Code installs to inject bundled and custom Hippocode themes.
Maintainers
Readme
Claude-themes-SpongeBob
Standalone theme package for patching official Claude Code with Hippocode Pixel themes.
The npm package published from this repository is still named claude-code-theme-patcher.
This package is the second-stage installer:
- it finds the official Claude Code install
- it chooses the right patch strategy for that install shape
- it backs up the original entrypoint to
~/.claude/backups/ - it injects bundled plus imported custom themes into a validated Claude Code runtime
- it can restore the original install later
Quick Start
Open-box path for bundled themes:
npx claude-code-theme-patcher initOpen-box path for your own theme pack:
npx claude-code-theme-patcher init --theme-pack ./my-themes.jsonReusable local command:
npm install -g claude-code-theme-patcherUsage
claude-theme-patch init [theme]
claude-theme-patch list
claude-theme-patch status
claude-theme-patch install spongebob
claude-theme-patch import-theme ./my-themes.json
claude-theme-patch sync
claude-theme-patch set light-patrick
claude-theme-patch removePatch an unvalidated Claude Code build anyway:
claude-theme-patch --force install spongebobRecommended user flow
Patch official Claude Code and set a usable bundled theme in one command:
npx claude-code-theme-patcher initPatch official Claude Code and immediately use the first theme from your custom pack:
npx claude-code-theme-patcher init --theme-pack ./my-themes.jsonPick a specific theme during init:
npx claude-code-theme-patcher init jellyfish-fields --theme-pack ./my-themes.jsonSwitch later without reinstalling or re-importing:
npx claude-code-theme-patcher set bubble-bassIf you already initialized once, import an updated custom pack and refresh the patch:
npx claude-code-theme-patcher import-theme ./my-themes.json
npx claude-code-theme-patcher set jellyfish-fieldsOr install once globally, then reuse the local command:
npm install -g claude-code-theme-patcher
claude-theme-patch init
claude-theme-patch set bubble-bassFiles
- Claude Code config:
~/.claude.json - Patch metadata:
~/.claude/hippocode-theme-patch.json - Imported custom theme pack:
~/.claude/hippocode-custom-themes.json - Managed Claude runtime cache:
~/.claude/hippocode-managed-runtime/ - Backups:
~/.claude/backups/
Custom Theme Pack Format
Custom themes are imported from JSON and expanded into a dark + light pair automatically.
{
"themes": [
{
"name": "jellyfish-fields",
"displayName": "Jellyfish Fields",
"accent": "#b982ff",
"shimmer": "#e9d5ff",
"promptBorder": "#7d5fa8"
}
]
}Notes:
namebecomesnameandlight-name- colors accept
#rrggbb,#rgb, orrgb(r,g,b) displayName,shimmer, andpromptBorderare optional- importing a theme with the same name updates the saved definition
Notes
- On classic JS-based Claude Code installs, this tool patches the official
cli.jsin place. - On newer npm-wrapper installs that ship a native
bin/claude.exe,initinstalls a managed validated Claude Code runtime under~/.claude/hippocode-managed-runtime/and swaps the wrapper entrypoint to launch that patched runtime. removerestores the original official launcher and deletes the managed runtime cache for that install.- Version-specific patch matchers live under
src/adapters/; add a new adapter instead of growingsrc/cli.ts. - This release is validated against Claude Code
2.1.112. - When Claude Code updates, you may need to rerun the patcher or publish a new patcher build.
- Use
--target <path>to patch a copiedcli.jsor a copied official wrapper during testing instead of touching the real install. initis the shortest supported user path; it patches Claude Code and sets a theme in one command.statusreports whether the detected Claude Code version is inside the validated set.installblocks unvalidated Claude Code versions unless you pass--force.import-themepersists custom theme seeds and refreshes the current patch automatically when metadata is available.syncrebuilds the installed patch using the current saved custom theme pack.- After patching, users can switch official, bundled, and imported custom themes from Claude Code
/themeor viaclaude-theme-patch set <theme>.
Release Check
npm run verify:releasePublishing
This repository now includes a GitHub Actions publish workflow at .github/workflows/publish.yml.
Release docs:
- Current release body:
docs/releases/v0.2.1.md - Native-wrapper release body:
docs/releases/v0.2.2.md - Next automated release checklist:
docs/releases/0.2.2-checklist.md - Project changelog:
CHANGELOG.md
One-time npm setup:
- Create or claim the
claude-code-theme-patcherpackage on npm. - In npm package settings, add a trusted publisher for:
- GitHub user or org:
sqoder - Repository:
Claude-themes-SpongeBob - Workflow filename:
publish.yml
- GitHub user or org:
- After the first successful publish, restrict package publishing to trusted publishing on npm.
Release flow:
- Bump
package.jsonto the version you want to ship. - Push that commit to
main. - Create a GitHub Release with tag
v<package.json version>. - The publish workflow will run
npm run verify:releaseand thennpm publish.
Notes:
- The workflow uses npm trusted publishing through GitHub Actions OIDC.
package.jsonalready pointsrepository.urlathttps://github.com/sqoder/Claude-themes-SpongeBob.git, which npm requires to match the publishing repository for trusted publishing.- npm package
claude-code-theme-patcheris published publicly on npm.
Development
npm install
npm run build
npm run smoke