⚡ tweakcc-fixed
June 25, 2026 · View on GitHub
⚡ tweakcc-fixed
Customize Claude Code far past its settings menu — themes, prompts, thinking, toolsets, and behavior — patched straight into the installed binary.
Install · Customize · The fork · How it works
Claude Code only exposes so much through its settings. tweakcc reaches the rest: it patches the installed binary directly — the cli.js, and the JavaScript baked into the native Bun build — so you can restyle the interface, rewrite the prompts Claude actually runs on, and change how it behaves. You pick what you want from a terminal UI, apply it in one command, and roll it back whenever you like.
This is tweakcc-fixed, a fork of Piebald's tweakcc that keeps everything the original does and pushes further — roughly twice the prompt coverage, a deeper set of patches, and overrides that reach the native install where upstream stops. More on that below.
$ npx -y tweakcc-fixed@latest --apply
✓ Theme, spinner, thinking verbs, statusline
✓ System Prompt: Doing tasks (override) 92 fewer chars
✓ Tool Description: Bash (override) 4 fewer chars
✓ Toolset + subagent model selection
… patches applied · backup written
Install
npx -y tweakcc-fixed@latest # interactive TUI — toggle patches, edit prompts
npx -y tweakcc-fixed@latest --apply # apply everything you've enabled
npx -y tweakcc-fixed@latest --restore # revert from the backup
Nothing to clone or build. Prompt data is pulled from this repo at runtime, so a new Claude Code release works the moment its version bump lands here. Updating Claude Code overwrites the patches, so you just re-run --apply — your configuration in ~/.tweakcc/config.json is untouched either way.
Versions ≤ 1.0.5 on npm came from a different, unmaintained fork. 2.0.0 onward is this one.
What you can customize
Everything lives behind one terminal UI: toggle a patch, edit a prompt, apply.
The surface is wide. You can restyle the look — themes, the wording of the thinking verbs, the spinner's symbols and speed, the input border, the statusline, table rendering, session titles. You can rewrite the prompts — every system prompt, tool description, and <system-reminder> is plain markdown you can edit, so you change what Claude is told, not just how it's dressed. You can retune the tooling — toolsets, subagent model selection, input-pattern highlighters, file-read limits, MCP startup. And you can adjust behavior — reasoning-effort defaults, memory handling, session naming, and a good deal more.
It works the same on npm and native (Bun-compiled) installs, every change is a toggle, and --restore puts the original binary back.
What this fork adds
tweakcc-fixed is a strict superset of the original: everything above still applies, on the same latest Claude Code target. What it adds is reach.
The biggest difference is coverage. Its extractor pulls roughly twice the prompt surface upstream does — every model-facing string, including the short ones the base skips — which is what makes serious prompt editing possible in the first place.
| tweakcc-fixed | upstream | |
|---|---|---|
| Prompt sites (CC 2.1.191) | 1,091 | 519 |
| Unique prompt IDs | 1,050 | 519 |
| Patches | 58 | 45 |
| Overrides on native installs | yes | gated off |
That reach shows up in a few mechanisms the base doesn't have. The <system-reminder> injections that fire per turn — and never surface as named prompts — become editable: blank one out to drop it, or rewrite it. Each connected MCP server's instruction block can be dropped or rewritten the same way. And where upstream gates system-prompt overrides off for native installs, this fork applies them. It pairs with lobotomized-claude-code, a set of per-model override packs tuned against exactly this extraction.
The extra patches cluster around a few themes: memory (a dream-mode consolidation pass, leaner memory types), reasoning (Opus defaulting to max effort, plus the experimental complexity router), search (the experimental fff backend), and a run of correctness fixes — an honest rewind-summary header, a "summarize from here" that actually starts at the rewind point, quieter empty system-reminders, and more.
Two of those are worth calling out, and both ship off by default. fff-first Bash search routes Claude's grep, find, and rg through fff and a warm-index daemon, so results come back ranked; it serves a query only when the result is provably identical to the real tool and falls back to the embedded ripgrep/ugrep on anything it can't match exactly, so correctness never rides on it. The complexity router reads how hard each task is and routes reasoning effort to match — routine work runs low, the hardest runs max — without switching models or churning the prompt cache, and an explicit /effort or CLAUDE_CODE_EFFORT_LEVEL always wins.
Every patch the fork adds
Memory & context
dream-mode—/dreamplus automatic memory consolidationlean-memory-types— a trimmed memory-type taxonomyclaudemd-context-once-per-conversation— inject CLAUDE.md and context once per conversation, not every turn
Reasoning
max-effort-default— Opus defaults to max reasoning effortcomplexity-router— route reasoning effort by task difficulty (experimental)
Search
swap-ripgrep-for-fff— fff-backed grep, find, and rg (experimental)
Correctness & noise
fix-rewind-summary-header— an honest rewind / compaction summary headerfix-summarize-from-here— "summarize from here" starts at the rewind point, not the topstrip-empty-system-reminders— drop the empty<system-reminder>blocks left after empty tool outputread-default-lines— an env-gated cap on the defaultReadline countsuppress-deferred-tools— drop the deferred-tools announcement
Models & prompts
autonomous-operation-all-models— apply the Fable/Mythos autonomous prompt set to every modelauto-mode-classifier-model— pin the auto-mode safety classifier to a cheaper model
How it works
Two kinds of edit, both driven by your config in ~/.tweakcc/config.json:
┌──────────────────────┐ ┌────────────────────────────┐
│ 1. code patches │ │ 2. prompt overrides │
│ regex-anchored │ │ swap embedded prompt text │
│ splices of JS │ │ for your markdown │
└──────────┬───────────┘ └─────────────┬──────────────┘
└────────────┬────────────────────┘
▼
npm cli.js ──or── native Bun binary
(patched in place) (JS extracted → patched → repacked)
▼
backup written · `--restore` anytime
A code patch finds a minified shape with a regex and splices in modified JS; a prompt override swaps the embedded prompt text for your markdown. npm installs are patched in place, while native installs have their JS pulled out of the Bun binary with node-lief, patched, and repacked with stale bytecode cleared. The same building blocks ship as a library — tryDetectInstallation, readContent/writeContent, backupFile, and the minified-identifier helpers — if you'd rather script your own patches.
Staying current
When Claude Code ships a new version, the showtime skill runs the whole upgrade: pull the new cli.js, re-extract the prompts, realign anything that drifted, and verify it landed clean. Say "it's showtime," or run node skills/showtime/driver.mjs check.
Credit & license
A fork of Piebald-AI/tweakcc (© Piebald LLC) — all of the core customization is its work, carried here with fixes from upstream PRs #601, #646, #655, and #664 on top of the fork-only additions. MIT.
If it made your Claude Code better, a ⭐ helps others find it.