This document summarizes tweakcc capabilities and concrete implementation ideas for cc-mirror variants. It is intentionally practical: you can copy/paste snippets, adopt patterns, or expand into your own presets.
- Edit Claude Code system prompts (core prompt, tool descriptions, agent prompts, utilities, etc.)
- Create custom toolsets
- Name/rename sessions in Claude Code (tweakcc enables /title and /rename)
- Create custom themes with RGB/HSL picker
- Customize thinking verbs ("Thinking..." spinner text)
- Customize thinking spinner animation phases + speed
- Style user messages in chat history
- Remove ASCII border from input box
- Expand thinking blocks by default
- Indicate patched status in banner (optional)
- Show startup banner / clawd (configurable)
- Fix spinner freeze when
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICis set - Allow custom context window size (env
CLAUDE_CODE_CONTEXT_LIMIT)
tweakcc patches the Claude Code cli.js from the npm install.
- Per-variant config lives at:
~/.cc-mirror/<variant>/tweakcc/config.json~/.cc-mirror/<variant>/tweakcc/system-prompts/
- Patch apply uses:
TWEAKCC_CONFIG_DIR=~/.cc-mirror/<variant>/tweakccTWEAKCC_CC_INSTALLATION_PATH=~/.cc-mirror/<variant>/npm/node_modules/@anthropic-ai/claude-code/cli.js
- cc-mirror applies tweakcc after create/update, unless
--no-tweak.
Goal: make each provider unmistakable while keeping readability.
Implementation suggestions:
- Choose a single signature accent color ("claude"/"bashBorder") and 1-2 supporting colors.
- Keep
backgroundandtexthigh-contrast (use light backgrounds only if your terminal supports it). - Use muted tinted backgrounds for:
userMessageBackgroundbashMessageBackgroundColormemoryBackgroundColor
- Keep
promptBorderandpromptBorderShimmerslightly darker than background, so focus rings show.
Example snippet (light theme with strong accents):
{
"name": "MiniMax Pulse",
"id": "minimax-pulse",
"colors": {
"claude": "rgb(255,77,77)",
"claudeShimmer": "rgb(255,140,140)",
"background": "rgb(245,245,245)",
"text": "rgb(17,17,17)",
"promptBorder": "rgb(229,209,255)",
"userMessageBackground": "rgb(255,235,240)"
}
}
Make the user label obvious and brand-consistent.
Suggested settings:
format:[<username>] {}borderStyle:topBottomBoldortopBottomDoublefitBoxToContent:true
Make the "thinking" feel unique.
Ideas:
- Short, punchy verbs for fast models ("Routing", "Syncing")
- Longer verbs for more "deliberate" feel ("Calibrating", "Synthesizing")
- Spinner phases like
['·','•','◦','•']for clean minimal rhythm
Preconfigure toolsets so brand variants are scoped:
"toolsets": [
{ "name": "minimax", "allowedTools": "*" }
],
"defaultToolset": "minimax",
"planModeToolset": "minimax"
Tweakcc can simplify the UI:
"inputBox": { "removeBorder": true },
"misc": {
"showPatchesApplied": true,
"hideStartupBanner": false,
"hideStartupClawd": false,
"expandThinkingBlocks": true,
"hideCtrlGToEditPrompt": true
}
System prompt editing is powerful but risky. Suggested process:
- Start by editing only one prompt (core prompt) and validate behavior.
- Keep diffs small; avoid removing safety or tool instructions.
- When Claude Code updates, tweakcc will create HTML diffs for conflicts.
Suggested workflow:
- Run tweakcc UI or open the system prompts folder.
- Edit a single prompt file.
- Run
tweakcc --apply(cc-mirror does this on update).
Use CLAUDE_CODE_CONTEXT_LIMIT only for custom endpoints that support larger windows.
- Example:
CLAUDE_CODE_CONTEXT_LIMIT=400000
- tweakcc is sensitive to Claude Code versions. Patch failures are expected after CC updates.
- The
tweakccUI will still work even when one patch fails.
- Prompt for API key
- Create variant (npm install, pinned version)
- Apply brand preset + tweakcc patches
- Exit
- Choose brand preset
- Optionally open tweakcc UI
- Optionally edit system prompts
- Unique theme palette with high contrast
- Distinct thinking verbs + spinner style
- User message banner formatting
- Toolset default set to provider
- Input box border removed
- Startup banner visibility (hide or show)
- System prompt customized (optional)
tweakcc can show or hide Claude Code’s built‑in startup banner and clawd art. It does not currently support custom startup ASCII art. cc-mirror can optionally print a small wrapper splash when CC_MIRROR_SPLASH=1, and skips it for non‑TTY output or --output-format runs.
- Brand themes:
src/brands/*.ts - Tweakcc config writing:
src/core/tweakcc.ts - Variant creation:
src/core/index.ts - tweakcc upstream reference:
repos/tweakcc/README.md
- Theme polish pass: iterate on one brand at a time, validate contrast, and tune borders/shimmers.
- System prompt v1: edit only the main system prompt + 1 tool description, then validate behavior.
- Toolset tightening: define provider-specific toolsets (e.g., restrict web or bash for certain endpoints).
- MCP defaults: seed provider MCP servers in
.claude.json, then document how to manage scopes. - Update flow: add a “reapply after CC update” hint in CLI/TUI and detect patch failures early.
- UX polish: add short “preview” messages in the TUI showing what will change before applying.