⚡ 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.

npm downloads Claude Code license

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-fixedupstream
Prompt sites (CC 2.1.191)1,091519
Unique prompt IDs1,050519
Patches5845
Overrides on native installsyesgated 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/dream plus automatic memory consolidation
  • lean-memory-types — a trimmed memory-type taxonomy
  • claudemd-context-once-per-conversation — inject CLAUDE.md and context once per conversation, not every turn

Reasoning

  • max-effort-default — Opus defaults to max reasoning effort
  • complexity-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 header
  • fix-summarize-from-here — "summarize from here" starts at the rewind point, not the top
  • strip-empty-system-reminders — drop the empty <system-reminder> blocks left after empty tool output
  • read-default-lines — an env-gated cap on the default Read line count
  • suppress-deferred-tools — drop the deferred-tools announcement

Models & prompts

  • autonomous-operation-all-models — apply the Fable/Mythos autonomous prompt set to every model
  • auto-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/tweakccPiebald 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.