Patch Creation
Create and register new patches for tweakcc.
Install
npx skills add Piebald-AI/tweakcc --skill patch-creation -g -a claude-code -y- Repository
- Piebald-AI/tweakcc2.6k
- Category
- AI and agents
- Updated
- 4d ago
- License
- MIT
- Context cost
- Mediumabout 1,529 tokens
- Runs scripts
- No, instructions only
What it does
Create and register new patches for tweakcc. Use when adding new customizations to Claude Code.
Patch Creation & Registration
Overview
Patches are code modifications applied to Claude Code's cli.js (or native binary). Each patch finds specific patterns in the minified code and replaces/injects new behavior.
Creating a New Patch
1. Create the patch file
Create src/patches/myPatch.ts:
// Please see the note about writing patches in ./index
import { showDiff } from './index';
/**
* Description of what this patch does.
*
* CC X.Y.Z:
* ```diff
* // Show before/after of the code change
* -oldCode
* +newCode
* ```
*/
export const writeMyPatch = (
file: string,
configValue: string // Add parameters as needed
): string | null => {
// Pattern to find in minified code
// IMPORTANT: Use [$\w]+ for identifiers (not \w+) because $ is valid in JS identifiers
// IMPORTANT: Start patterns with a boundary char (,;}{) for HIGH performance (e.g. 1.5s -> 30ms)
const pattern = /,somePattern([$\w]+)/;
const match = file.match(pattern);
if (!match || match.index === undefined) {
console.error('patch: myPatch: failed to find pattern');
return null;
}
const replacement = `,newCode${match[1]}`;
const startIndex = match.index;
const endIndex = startIndex + match[0].length;
const newFile =
file.slice(0, startIndex) + replacement + file.slice(endIndex);
showDiff(file, newFile, replacement, startIndex, endIndex);
return newFile;
};
2. Add config type (if patch is configurable)
Edit src/types.ts - add to MiscConfig or create a new interface:
export interface MiscConfig {
// ... existing fields ...
myNewSetting: string | null; // null = disabled
}
3. Add default value
Edit src/defaultSettings.ts:
misc: {
// ... existing fields ...
myNewSetting: null, // or a sensible default
},
4. Register in index.ts
Edit src/patches/index.ts:
4a. Add import:
import { writeMyPatch } from './myPatch';

