tweakcc 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{Fragment as e,createContext as t,useCallback as n,useContext as r,useEffect as i,useState as a}from"react";import{Box as o,Text as s,render as c,useInput as l,useStdout as u}from"ink";import{Fragment as d,jsx as f,jsxs as p}from"react/jsx-runtime";import*as m from"node:path";import h from"node:path";import*as g from"node:os";import _ from"figlet";import*as v from"node:fs";import*as y from"node:child_process";import*as b from"node:fs/promises";import x from"node:fs/promises";function S({items:e,selectedIndex:t,onSelect:n,onSubmit:r}){return l((i,a)=>{a.upArrow?n(t>0?t-1:e.length-1):a.downArrow?n(t<e.length-1?t+1:0):a.return&&r(e[t].name)}),f(o,{flexDirection:`column`,children:e.map((e,n)=>f(o,{children:p(s,{children:[p(s,{bold:n===t,color:n===t?`cyan`:void 0,...n===t?e.selectedStyles??{}:e.styles??{},children:[n===t?`❯ `:` `,e.name]}),e.desc&&n===t&&p(s,{dimColor:!0,bold:!1,children:[` \x1B[0;2m`,`- `,e.desc]})]})},n))})}let C=function(e){return e.THEMES=`Themes`,e.LAUNCH_TEXT=`Launch text`,e.THINKING_VERBS=`Thinking verbs`,e.THINKING_STYLE=`Thinking style`,e.APPLY_CHANGES=`*Apply customizations to cli.js`,e.RESTORE_ORIGINAL=`Restore original Claude Code (preserves tweakcc.json)`,e.OPEN_CONFIG=`Open tweakcc.json`,e.OPEN_CLI=`Open Claude Code's cli.js`,e.EXIT=`Exit`,e}({});const w={themes:[{name:`Dark mode`,id:`dark`,colors:{autoAccept:`rgb(175,135,255)`,bashBorder:`rgb(253,93,177)`,claude:`rgb(215,119,87)`,permission:`rgb(177,185,249)`,planMode:`rgb(72,150,140)`,secondaryBorder:`rgb(136,136,136)`,text:`rgb(255,255,255)`,inverseText:`rgb(0,0,0)`,secondaryText:`rgb(153,153,153)`,suggestion:`rgb(177,185,249)`,remember:`rgb(177,185,249)`,success:`rgb(78,186,101)`,error:`rgb(255,107,128)`,warning:`rgb(255,193,7)`,diffAdded:`rgb(34,92,43)`,diffRemoved:`rgb(122,41,54)`,diffAddedDimmed:`rgb(71,88,74)`,diffRemovedDimmed:`rgb(105,72,77)`,diffAddedWord:`rgb(56,166,96)`,diffRemovedWord:`rgb(179,89,107)`,diffAddedWordDimmed:`rgb(46,107,58)`,diffRemovedWordDimmed:`rgb(139,57,69)`}},{name:`Light mode`,id:`light`,colors:{autoAccept:`rgb(135,0,255)`,bashBorder:`rgb(255,0,135)`,claude:`rgb(215,119,87)`,permission:`rgb(87,105,247)`,planMode:`rgb(0,102,102)`,secondaryBorder:`rgb(153,153,153)`,text:`rgb(0,0,0)`,inverseText:`rgb(255,255,255)`,secondaryText:`rgb(102,102,102)`,suggestion:`rgb(87,105,247)`,remember:`rgb(0,0,255)`,success:`rgb(44,122,57)`,error:`rgb(171,43,63)`,warning:`rgb(150,108,30)`,diffAdded:`rgb(105,219,124)`,diffRemoved:`rgb(255,168,180)`,diffAddedDimmed:`rgb(199,225,203)`,diffRemovedDimmed:`rgb(253,210,216)`,diffAddedWord:`rgb(47,157,68)`,diffRemovedWord:`rgb(209,69,75)`,diffAddedWordDimmed:`rgb(144,194,156)`,diffRemovedWordDimmed:`rgb(232,165,173)`}},{name:`Light mode (ANSI colors only)`,id:`light-ansi`,colors:{autoAccept:`#cd00cd`,bashBorder:`#cd00cd`,claude:`#cdcd00`,permission:`#0000ee`,planMode:`#00cdcd`,secondaryBorder:`#e5e5e5`,text:`#000000`,inverseText:`#ffffff`,secondaryText:`#7f7f7f`,suggestion:`#0000ee`,remember:`#0000ee`,success:`#00cd00`,error:`#cd0000`,warning:`#cdcd00`,diffAdded:`#00cd00`,diffRemoved:`#cd0000`,diffAddedDimmed:`#00cd00`,diffRemovedDimmed:`#cd0000`,diffAddedWord:`#00ff00`,diffRemovedWord:`#ff0000`,diffAddedWordDimmed:`#00cd00`,diffRemovedWordDimmed:`#cd0000`}},{name:`Dark mode (ANSI colors only)`,id:`dark-ansi`,colors:{autoAccept:`#ff00ff`,bashBorder:`#ff00ff`,claude:`#cdcd00`,permission:`#5c5cff`,planMode:`#00ffff`,secondaryBorder:`#e5e5e5`,text:`#ffffff`,inverseText:`#000000`,secondaryText:`#e5e5e5`,suggestion:`#5c5cff`,remember:`#5c5cff`,success:`#00ff00`,error:`#ff0000`,warning:`#ffff00`,diffAdded:`#00cd00`,diffRemoved:`#cd0000`,diffAddedDimmed:`#00cd00`,diffRemovedDimmed:`#cd0000`,diffAddedWord:`#00ff00`,diffRemovedWord:`#ff0000`,diffAddedWordDimmed:`#00cd00`,diffRemovedWordDimmed:`#cd0000`}},{name:`Light mode (colorblind-friendly)`,id:`light-daltonized`,colors:{autoAccept:`rgb(135,0,255)`,bashBorder:`rgb(0,102,204)`,claude:`rgb(255,153,51)`,permission:`rgb(51,102,255)`,planMode:`rgb(51,102,102)`,secondaryBorder:`rgb(153,153,153)`,text:`rgb(0,0,0)`,inverseText:`rgb(255,255,255)`,secondaryText:`rgb(102,102,102)`,suggestion:`rgb(51,102,255)`,remember:`rgb(51,102,255)`,success:`rgb(0,102,153)`,error:`rgb(204,0,0)`,warning:`rgb(255,153,0)`,diffAdded:`rgb(153,204,255)`,diffRemoved:`rgb(255,204,204)`,diffAddedDimmed:`rgb(209,231,253)`,diffRemovedDimmed:`rgb(255,233,233)`,diffAddedWord:`rgb(51,102,204)`,diffRemovedWord:`rgb(153,51,51)`,diffAddedWordDimmed:`rgb(102,153,204)`,diffRemovedWordDimmed:`rgb(204,153,153)`}},{name:`Dark mode (colorblind-friendly)`,id:`dark-daltonized`,colors:{autoAccept:`rgb(175,135,255)`,bashBorder:`rgb(51,153,255)`,claude:`rgb(255,153,51)`,permission:`rgb(153,204,255)`,planMode:`rgb(102,153,153)`,secondaryBorder:`rgb(136,136,136)`,text:`rgb(255,255,255)`,inverseText:`rgb(0,0,0)`,secondaryText:`rgb(153,153,153)`,suggestion:`rgb(153,204,255)`,remember:`rgb(153,204,255)`,success:`rgb(51,153,255)`,error:`rgb(255,102,102)`,warning:`rgb(255,204,0)`,diffAdded:`rgb(0,68,102)`,diffRemoved:`rgb(102,0,0)`,diffAddedDimmed:`rgb(62,81,91)`,diffRemovedDimmed:`rgb(62,44,44)`,diffAddedWord:`rgb(0,119,179)`,diffRemovedWord:`rgb(179,0,0)`,diffAddedWordDimmed:`rgb(26,99,128)`,diffRemovedWordDimmed:`rgb(128,21,21)`}}],launchText:{method:`figlet`,figletText:`Claude Code`,figletFont:`ANSI Shadow`,customText:``},thinkingVerbs:{useHaikuGenerated:!0,punctuation:`…`,verbs:`Accomplishing.Actioning.Actualizing.Baking.Booping.Brewing.Calculating.Cerebrating.Channelling.Churning.Clauding.Coalescing.Cogitating.Combobulating.Computing.Concocting.Conjuring.Considering.Contemplating.Cooking.Crafting.Creating.Crunching.Deciphering.Deliberating.Determining.Discombobulating.Divining.Doing.Effecting.Elucidating.Enchanting.Envisioning.Finagling.Flibbertigibbeting.Forging.Forming.Frolicking.Generating.Germinating.Hatching.Herding.Honking.Hustling.Ideating.Imagining.Incubating.Inferring.Jiving.Manifesting.Marinating.Meandering.Moseying.Mulling.Musing.Mustering.Noodling.Percolating.Perusing.Philosophising.Pondering.Pontificating.Processing.Puttering.Puzzling.Reticulating.Ruminating.Scheming.Schlepping.Shimmying.Shucking.Simmering.Smooshing.Spelunking.Spinning.Stewing.Sussing.Synthesizing.Thinking.Tinkering.Transmuting.Unfurling.Unravelling.Vibing.Wandering.Whirring.Wibbling.Wizarding.Working.Wrangling`.split(`.`)},thinkingStyle:{updateInterval:120,phases:{}.TERM===`xterm-ghostty`?[`·`,`✢`,`✳`,`✶`,`✻`,`*`]:process.platform===`darwin`?[`·`,`✢`,`✳`,`✶`,`✻`,`✽`]:[`·`,`✢`,`*`,`✶`,`✻`,`✽`],reverseMirror:!0}},T=m.join(g.homedir(),`.tweakcc`),E=m.join(T,`config.json`),D=m.join(T,`cli.js.backup`),O=[m.join(g.homedir(),`AppData`,`Local`,`Volta`,`tools`,`image`,`packages`,`@anthropic-ai`,`claude-code`,`node_modules`,`@anthropic-ai`,`claude-code`),m.join(g.homedir(),`AppData`,`Roaming`,`npm`,`node_modules`,`@anthropic-ai`,`claude-code`),m.join(g.homedir(),`AppData`,`Local`,`Yarn`,`config`,`global`,`node_modules`,`@anthropic-ai`,`claude-code`),m.join(g.homedir(),`AppData`,`Local`,`pnpm`,`global`,`5`,`node_modules`,`@anthropic-ai`,`claude-code`)];({}).N_PREFIX&&O.push(m.join({}.N_PREFIX,`lib`,`node_modules`,`@anthropic-ai`,`claude-code`)),process.platform!=`win32`&&O.push(m.join(`/usr`,`local`,`lib`,`node_modules`,`@anthropic-ai`,`claude-code`));const k=[{name:C.THEMES,desc:`Modify Claude Code's built-in themes or create your own`},{name:C.LAUNCH_TEXT,desc:`Change the "CLAUDE CODE" banner text that's shown when you sign in to Claude Code`},{name:C.THINKING_VERBS,desc:`Customize the list of verbs that Claude Code uses when it's working`},{name:C.THINKING_STYLE,desc:`Choose custom spinners`}],A=[{name:C.RESTORE_ORIGINAL,desc:`Reverts your Claude Code install to its original state (your customizations are remembered and can be reapplied)`},{name:C.OPEN_CONFIG,desc:`Opens your tweack cc config file (${E})`},{name:C.OPEN_CLI,desc:`Opens Claude Code's cli.js file`},{name:C.EXIT,desc:`Bye!`}];function j({onSubmit:e,notification:t}){let n=[...r($).changesApplied?[]:[{name:C.APPLY_CHANGES,desc:`Required: Updates Claude Code's cli.js in-place with your changes`,selectedStyles:{color:`green`}}],...k,...A],[i,c]=a(0);return p(o,{flexDirection:`column`,children:[f(o,{marginBottom:1,children:p(s,{bold:!0,backgroundColor:`#ffd500`,color:`black`,children:[` `,`Tweak Claude Code`,` `]})}),f(o,{marginBottom:1,children:p(s,{color:`gray`,children:[f(s,{bold:!0,children:`Customize your Claude Code installation.`}),` `,f(s,{dimColor:!0,children:`Settings will be saved to a JSON file.`})]})}),t&&f(o,{marginBottom:1,borderLeft:!0,borderRight:!1,borderTop:!1,borderBottom:!1,borderStyle:`bold`,borderColor:t?.type===`success`?`green`:t?.type===`error`?`red`:t?.type===`info`?`blue`:`yellow`,paddingLeft:1,flexDirection:`column`,children:f(s,{color:t?.type===`success`?`green`:t?.type===`error`?`red`:t?.type===`info`?`blue`:`yellow`,children:t?.message})}),f(S,{items:n,selectedIndex:i,onSelect:c,onSubmit:t=>e(t)})]})}function M({theme:e}){return p(o,{flexDirection:`column`,paddingLeft:1,children:[f(o,{marginBottom:1,children:p(s,{bold:!0,children:[`Preview: `,e.name]})}),f(o,{borderStyle:`single`,borderColor:`gray`,padding:1,children:p(o,{flexDirection:`column`,children:[f(s,{children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[`│ `,f(s,{color:e.colors.secondaryText,children:`1`}),` `,p(s,{color:e.colors.text,children:[`function greet() `,`{`]}),` `,`│`]}),p(s,{children:[`│ `,f(s,{color:e.colors.secondaryText,children:`2`}),` `,p(s,{backgroundColor:e.colors.diffRemoved,color:e.colors.text,children:[`- console.log("`,f(s,{backgroundColor:e.colors.diffRemovedWord,children:`Hello, World!`}),`");`]}),` `,`│`]}),p(s,{children:[`│ `,f(s,{color:e.colors.secondaryText,children:`2`}),` `,p(s,{backgroundColor:e.colors.diffAdded,color:e.colors.text,children:[`+ console.log("`,f(s,{backgroundColor:e.colors.diffAddedWord,children:`Hello, Claude!`}),`");`]}),` `,`│`]}),f(s,{color:e.colors.warning,children:`╭─────────────────────────────────────────────╮`}),p(s,{color:e.colors.warning,children:[`│ Do you trust the files in this folder?`,` `,`│`]}),p(s,{children:[f(s,{color:e.colors.warning,children:`│ `}),f(s,{color:`white`,dimColor:!0,children:`Enter to confirm · Esc to exit`}),p(s,{color:e.colors.warning,children:[` `,`│`]})]}),f(s,{color:e.colors.claude,children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[f(s,{color:e.colors.claude,children:`│ `}),f(s,{color:e.colors.claude,children:`✻`}),f(s,{children:` Welcome to Tweak Claude Code!`}),p(s,{color:e.colors.claude,children:[` `,`│`]})]}),p(s,{children:[f(s,{color:e.colors.claude,children:`│`}),p(s,{color:e.colors.secondaryText,italic:!0,children:[` `,`/help for help, /status for your current set`]}),f(s,{color:e.colors.claude,children:`│`})]}),p(s,{color:e.colors.success,children:[`Login successful. Press `,f(s,{bold:!0,children:`Enter`}),` to continue…`]}),f(s,{color:e.colors.bashBorder,children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[f(s,{color:e.colors.bashBorder,children:`│ !`}),p(s,{color:`white`,children:[` `,`ls`,` `]}),f(s,{color:e.colors.bashBorder,children:`│`})]}),f(s,{color:e.colors.planMode,children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[f(s,{color:e.colors.planMode,children:`│ `}),f(s,{color:e.colors.permission,children:`Ready to code?`}),p(s,{color:e.colors.planMode,children:[` `,`│`]})]}),p(s,{children:[f(s,{color:e.colors.planMode,children:`│ `}),f(s,{children:`Here is Claude's plan:`}),p(s,{color:e.colors.planMode,children:[` `,`│`]})]}),f(s,{color:e.colors.secondaryBorder,children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[f(s,{color:e.colors.secondaryBorder,children:`│`}),` `,p(s,{color:e.colors.secondaryText,children:[`> Try “refactor <filepath>”`,` `,`│`]})]}),f(s,{color:e.colors.permission,children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[p(s,{color:e.colors.permission,children:[`│ `,f(s,{bold:!0,children:`Permissions:`})]}),` `,p(s,{backgroundColor:e.colors.permission,color:e.colors.inverseText,bold:!0,children:[` `,`Allow`,` `]}),` `,`Deny`,` `,`Workspace`,` `,f(s,{color:e.colors.permission,children:`│`})]}),f(s,{color:e.colors.secondaryText,children:`> list the dir`}),p(s,{children:[f(s,{color:e.colors.error,children:`●`}),f(s,{color:`white`,children:` Update(__init__.py)`})]}),p(s,{children:[f(s,{children:` ⎿ `}),f(s,{color:e.colors.error,children:`User rejected update to __init__.py`})]}),p(s,{color:`white`,children:[` `,f(s,{color:e.colors.secondaryText,children:`1`}),` `,p(s,{backgroundColor:e.colors.diffRemovedDimmed,color:e.colors.text,children:[`- import`,` `,f(s,{backgroundColor:e.colors.diffRemovedWordDimmed,color:e.colors.text,children:`os`})]})]}),p(s,{color:`white`,children:[` `,f(s,{color:e.colors.secondaryText,children:`2`}),` `,p(s,{backgroundColor:e.colors.diffAddedDimmed,color:e.colors.text,children:[`+ import`,` `,f(s,{backgroundColor:e.colors.diffAddedWordDimmed,color:e.colors.text,children:`random`})]})]}),p(s,{children:[f(s,{color:e.colors.success,children:`●`}),f(s,{color:`white`,children:` List(.)`})]}),f(s,{color:`white`,children:` ⎿ Listed 123 paths (ctrl+r to expand)`}),p(s,{children:[f(s,{color:e.colors.secondaryText,children:`●`}),f(s,{color:`white`,children:` The directory `}),f(s,{color:e.colors.permission,children:`C:\\Users\\user`}),f(s,{color:`white`,children:` contains **123** files.`})]}),p(s,{children:[f(s,{color:e.colors.claude,children:`✻ Thinking… `}),f(s,{color:e.colors.secondaryText,children:`(10s · ↑ 456 tokens · esc to interrupt)`})]}),p(s,{children:[p(s,{color:e.colors.autoAccept,children:[`⏵⏵ auto-accept edits on`,` `]}),f(s,{color:e.colors.secondaryText,dimColor:!0,children:`(shift+tab to cycle)`})]}),p(s,{children:[f(s,{color:e.colors.planMode,children:`⏸ plan mode on `}),f(s,{color:e.colors.secondaryText,dimColor:!0,children:`(shift+tab to cycle)`})]})]})})]})}function N({colorKey:e,theme:t,bold:n=!1}){let r=t.colors[e];return e===`inverseText`?f(s,{color:r,backgroundColor:t.colors.permission,bold:n,children:e}):e.startsWith(`diff`)?f(s,{backgroundColor:r,bold:n,color:t.colors.text,children:e}):f(s,{color:r,bold:n,children:e})}function P({initialValue:t,onColorChange:n,onExit:r,onCancel:c,colorKey:u,theme:m}){let h=I(t)||{h:0,s:50,l:50},g=F(t)||{r:128,g:128,b:128},[_,v]=a(h),[y,b]=a(g),[x,S]=a(`hsl`),[C,w]=a(`h`),[T,E]=a(!1);i(()=>{let e=I(t),n=F(t);e&&n&&(E(!0),v(e),b(n),E(!1))},[t]),i(()=>{if(!T){let e=`rgb(${y.r},${y.g},${y.b})`;n(e)}},[_,y,T]),l((e,t)=>{if(t.return)r();else if(t.escape)c();else if(t.ctrl&&e===`a`)S(e=>e===`hsl`?`rgb`:`hsl`),w(e=>x===`hsl`?e===`h`?`r`:e===`s`?`g`:`b`:e===`r`?`h`:e===`g`?`s`:`l`);else if(t.upArrow)w(x===`hsl`?e=>e===`h`?`l`:e===`s`?`h`:`s`:e=>e===`r`?`b`:e===`g`?`r`:`g`);else if(t.downArrow||t.tab)w(x===`hsl`?e=>e===`h`?`s`:e===`s`?`l`:`h`:e=>e===`r`?`g`:e===`g`?`b`:`r`);else if(t.leftArrow){let e=t.shift||t.ctrl||t.meta?-10:-1;D(e)}else if(t.rightArrow){let e=t.shift||t.ctrl||t.meta?10:1;D(e)}});let D=e=>{E(!0),x===`hsl`?v(t=>{let n={...t};C===`h`?n.h=Math.max(0,Math.min(360,t.h+e)):C===`s`?n.s=Math.max(0,Math.min(100,t.s+e)):C===`l`&&(n.l=Math.max(0,Math.min(100,t.l+e)));let[r,i,a]=k(n.h,n.s,n.l);return b({r,g:i,b:a}),n}):b(t=>{let n={...t};C===`r`?n.r=Math.max(0,Math.min(255,t.r+e)):C===`g`?n.g=Math.max(0,Math.min(255,t.g+e)):C===`b`&&(n.b=Math.max(0,Math.min(255,t.b+e)));let r=O(n.r,n.g,n.b);return v(r),n}),E(!1)},O=(e,t,n)=>{let r=e/255,i=t/255,a=n/255,o=Math.max(r,i,a),s=Math.min(r,i,a),c=o-s,l=(o+s)/2,u=0;c!==0&&(u=l>.5?c/(2-o-s):c/(o+s));let d=0;return c!==0&&(d=o===r?((i-a)/c+(i<a?6:0))/6:o===i?((a-r)/c+2)/6:((r-i)/c+4)/6),{h:Math.round(d*360),s:Math.round(u*100),l:Math.round(l*100)}},k=(e,t,n)=>{e/=360,t/=100,n/=100;let r=(1-Math.abs(2*n-1))*t,i=r*(1-Math.abs(e*6%2-1)),a=n-r/2,o=0,s=0,c=0;return 0<=e&&e<1/6?(o=r,s=i,c=0):1/6<=e&&e<2/6?(o=i,s=r,c=0):2/6<=e&&e<3/6?(o=0,s=r,c=i):3/6<=e&&e<4/6?(o=0,s=i,c=r):4/6<=e&&e<5/6?(o=i,s=0,c=r):5/6<=e&&e<1&&(o=r,s=0,c=i),[Math.round((o+a)*255),Math.round((s+a)*255),Math.round((c+a)*255)]},A=()=>{let e=[],t=[[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[127,0,255],[255,0,255],[255,0,127],[255,0,0]];for(let n=0;n<40;n++){let r=n/39,i=r*(t.length-1),a=Math.floor(i),o=Math.ceil(i),c=i-a,[l,u,d]=t[a],[p,m,h]=t[o],g=Math.round(l+(p-l)*c),_=Math.round(u+(m-u)*c),v=Math.round(d+(h-d)*c);e.push(f(s,{backgroundColor:`rgb(${g},${_},${v})`,children:` `},n))}return e},j=()=>{let e=[];for(let t=0;t<40;t++){let n=t/39*100,[r,i,a]=k(_.h,n,_.l);e.push(f(s,{backgroundColor:`rgb(${r},${i},${a})`,children:` `},t))}return e},M=()=>{let e=[];for(let t=0;t<40;t++){let n=t/39*100,[r,i,a]=k(_.h,_.s,n);e.push(f(s,{backgroundColor:`rgb(${r},${i},${a})`,children:` `},t))}return e},N=()=>{let[e,t,n]=k(_.h,_.s,_.l);return`rgb(${e},${t},${n})`},P=(e,t,n)=>{let r=e=>e.toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`},L=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(f(s,{backgroundColor:`rgb(${n},${y.g},${y.b})`,children:` `},t))}return e},R=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(f(s,{backgroundColor:`rgb(${y.r},${n},${y.b})`,children:` `},t))}return e},z=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(f(s,{backgroundColor:`rgb(${y.r},${y.g},${n})`,children:` `},t))}return e},B=(e,t)=>Math.round(e/t*39);return p(o,{flexDirection:`column`,borderStyle:`single`,borderColor:`white`,padding:1,children:[p(o,{flexDirection:`column`,children:[f(s,{bold:!0,children:`Color Picker`}),p(o,{marginBottom:1,flexDirection:`column`,children:[f(s,{color:`gray`,dimColor:!0,children:`←→ to adjust (shift/ctrl/cmd +10)`}),f(s,{color:`gray`,dimColor:!0,children:`↑↓ to change bar`}),f(s,{color:`gray`,dimColor:!0,children:`ctrl+a to switch rgb/hsl`}),f(s,{color:`gray`,dimColor:!0,children:`enter to exit (auto-saved)`}),f(s,{color:`gray`,dimColor:!0,children:`esc to cancel changes`})]})]}),x===`hsl`?p(d,{children:[p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`h`?`yellow`:`white`,children:[C===`h`?`❯ `:` `,`Hue (`,_.h,`°):`]})}),f(o,{children:A().map((t,n)=>f(e,{children:n===B(_.h,360)?f(s,{children:`|`}):t},n))})]}),p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`s`?`yellow`:`white`,children:[C===`s`?`❯ `:` `,`Saturation (`,_.s,`%):`]})}),f(o,{children:j().map((t,n)=>f(e,{children:n===B(_.s,100)?f(s,{children:`|`}):t},n))})]}),p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`l`?`yellow`:`white`,children:[C===`l`?`❯ `:` `,`Lightness (`,_.l,`%):`]})}),f(o,{children:M().map((t,n)=>f(e,{children:n===B(_.l,100)?f(s,{children:`|`}):t},n))})]})]}):p(d,{children:[p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`r`?`yellow`:`white`,children:[C===`r`?`❯ `:` `,`Red (`,y.r,`):`]})}),f(o,{children:L().map((t,n)=>f(e,{children:n===B(y.r,255)?f(s,{children:`|`}):t},n))})]}),p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`g`?`yellow`:`white`,children:[C===`g`?`❯ `:` `,`Green (`,y.g,`):`]})}),f(o,{children:R().map((t,n)=>f(e,{children:n===B(y.g,255)?f(s,{children:`|`}):t},n))})]}),p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`b`?`yellow`:`white`,children:[C===`b`?`❯ `:` `,`Blue (`,y.b,`):`]})}),f(o,{children:z().map((t,n)=>f(e,{children:n===B(y.b,255)?f(s,{children:`|`}):t},n))})]})]}),p(o,{marginBottom:1,children:[f(s,{children:`Current: `}),f(s,{backgroundColor:N(),children:` `})]}),p(o,{flexDirection:`row`,justifyContent:`space-between`,children:[p(o,{flexDirection:`column`,children:[f(s,{dimColor:!0,children:`Hex `}),u?.startsWith(`diff`)?f(s,{backgroundColor:N(),color:m?.colors?.text||`white`,bold:!0,children:P(y.r,y.g,y.b)}):u===`inverseText`?f(s,{color:N(),backgroundColor:m?.colors?.permission,bold:!0,children:P(y.r,y.g,y.b)}):f(s,{color:N(),bold:!0,children:P(y.r,y.g,y.b)})]}),p(o,{flexDirection:`column`,children:[f(s,{dimColor:!0,children:`RGB `}),u?.startsWith(`diff`)?f(s,{backgroundColor:N(),color:m?.colors?.text||`white`,bold:!0,children:`rgb(${y.r}, ${y.g}, ${y.b})`}):u===`inverseText`?f(s,{color:N(),backgroundColor:m?.colors?.permission,bold:!0,children:`rgb(${y.r}, ${y.g}, ${y.b})`}):f(s,{color:N(),bold:!0,children:`rgb(${y.r}, ${y.g}, ${y.b})`})]}),p(o,{flexDirection:`column`,children:[f(s,{dimColor:!0,children:`HSL `}),u?.startsWith(`diff`)?f(s,{backgroundColor:N(),color:m?.colors?.text||`white`,bold:!0,children:`hsl(${_.h}, ${_.s}%, ${_.l}%)`}):u===`inverseText`?f(s,{color:N(),backgroundColor:m?.colors?.permission,bold:!0,children:`hsl(${_.h}, ${_.s}%, ${_.l}%)`}):f(s,{color:N(),bold:!0,children:`hsl(${_.h}, ${_.s}%, ${_.l}%)`})]})]})]})}function F(e){let t=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(t)return{r:parseInt(t[1]),g:parseInt(t[2]),b:parseInt(t[3])};let n=e.match(/^#([a-fA-F0-9]{6})$/);if(n){let e=n[1];return{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16)}}return null}function I(e){let t=e.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);if(t)return{h:parseInt(t[1]),s:parseInt(t[2]),l:parseInt(t[3])};let n=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(n){let e=parseInt(n[1])/255,t=parseInt(n[2])/255,r=parseInt(n[3])/255,i=Math.max(e,t,r),a=Math.min(e,t,r),o=i-a,s=(i+a)/2,c=0;o!==0&&(c=s>.5?o/(2-i-a):o/(i+a));let l=0;return o!==0&&(l=i===e?((t-r)/o+(t<r?6:0))/6:i===t?((r-e)/o+2)/6:((e-t)/o+4)/6),{h:Math.round(l*360),s:Math.round(c*100),l:Math.round(s*100)}}let r=e.match(/^#([a-fA-F0-9]{6})$/);if(r){let e=r[1],t=parseInt(e.substr(0,2),16)/255,n=parseInt(e.substr(2,2),16)/255,i=parseInt(e.substr(4,2),16)/255,a=Math.max(t,n,i),o=Math.min(t,n,i),s=a-o,c=(a+o)/2,l=0;s!==0&&(l=c>.5?s/(2-a-o):s/(a+o));let u=0;return s!==0&&(u=a===t?((n-i)/s+(n<i?6:0))/6:a===n?((i-t)/s+2)/6:((t-n)/s+4)/6),{h:Math.round(u*360),s:Math.round(l*100),l:Math.round(c*100)}}return{h:0,s:50,l:50}}function L({onBack:e,themeId:t}){let{settings:{themes:i},updateSettings:c}=r($),[u,m]=a(t),h=i.find(e=>e.id===u)||i[0],[g,_]=a(`rgb`),[v,y]=a(0),[b,x]=a(null),[S,C]=a(null),[w,T]=a(``),[E,D]=a(``),O=n(e=>{c(t=>{let n=t.themes.findIndex(e=>e.id===u);n!==-1&&e(t.themes[n])})},[u,c]);l((t,n)=>{if(b===null&&S===null){if(n.escape)e();else if(n.ctrl&&t===`a`)_(e=>e===`rgb`?`hex`:e===`hex`?`hsl`:`rgb`);else if(n.upArrow)y(e=>Math.max(0,e-1));else if(n.downArrow)y(e=>Math.min(k.length+1,e+1));else if(n.return)if(v===0)C(`name`),T(h.name),D(h.name);else if(v===1)C(`id`),T(h.id),D(h.id);else{let e=v-2,t=k[e],n=h.colors[t];x(e),T(n),D(n)}}else if(b!==null)n.ctrl&&t===`a`&&_(e=>e===`rgb`?`hex`:e===`hex`?`hsl`:`rgb`);else if(S!==null)if(n.return){if(S===`id`){let e=u;m(w),c(t=>{let n=t.themes.findIndex(t=>t.id===e);n!==-1&&(t.themes[n].id=w)})}else O(e=>{e.name=w});C(null),T(``),D(``)}else n.escape?(C(null),T(``),D(``)):n.backspace||n.delete?T(e=>e.slice(0,-1)):t&&T(e=>e+t)});let k=Object.keys(h.colors),A=(e,t)=>{let n=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(!n)return e;let r=parseInt(n[1]),i=parseInt(n[2]),a=parseInt(n[3]);switch(t){case`hex`:{let e=e=>e.toString(16).padStart(2,`0`);return`#${e(r)}${e(i)}${e(a)}`}case`hsl`:{let e=r/255,t=i/255,n=a/255,o=Math.max(e,t,n),s=Math.min(e,t,n),c=o-s,l=(o+s)/2,u=0;c!==0&&(u=l>.5?c/(2-o-s):c/(o+s));let d=0;return c!==0&&(d=o===e?((t-n)/c+(t<n?6:0))/6:o===t?((n-e)/c+2)/6:((e-t)/c+4)/6),`hsl(${Math.round(d*360)}, ${Math.round(u*100)}%, ${Math.round(l*100)}%)`}case`rgb`:default:return e}},j=e=>{let t={claude:`Claude branding color. Used for the Claude logo, the welcome message, and the thinking text.`,text:`Code color. Used in diffs.`,inverseText:`Inverse text color. Used for the text of tabs, where the background is filled in.`,secondaryText:`Secondary/dimmed text. Used for keyboard shortcuts and other help text.`,secondaryBorder:`Secondary border color. Used for various boxes.`,suggestion:`Suggestion text color. Used for suggestions for theme names and various other things.`,remember:`Remember/note color. Used for various text relating to memories.`,success:`Success indicator. Used for the bullet on successful tool calls, and various success messages (such as sign in successful).`,error:`Error indicator`,warning:`Warning indicator`,autoAccept:`Auto-accept mode indicator`,bashBorder:`Bash command border`,permission:`Permission prompt color`,planMode:`Plan mode indicator`,diffAdded:`Added diff background`,diffRemoved:`Removed diff background`,diffAddedDimmed:`Added diff background (dimmed)`,diffRemovedDimmed:`Removed diff background (dimmed)`,diffAddedWord:`Added word highlight`,diffRemovedWord:`Removed word highlight`,diffAddedWordDimmed:`Added word highlight (dimmed)`,diffRemovedWordDimmed:`Removed word highlight (dimmed)`};return t[e]||``},F=Math.max(...k.map(e=>e.length));return p(o,{children:[p(o,{flexDirection:`column`,width:`50%`,children:[f(o,{children:p(s,{backgroundColor:`#ffd500`,color:`black`,bold:!0,children:[` `,`Editing theme “`,h.name,`” (`,h.id,`)`,` `]})}),b===null&&S===null?p(d,{children:[p(o,{marginBottom:1,flexDirection:`column`,children:[f(s,{dimColor:!0,children:`enter to edit theme name, id, or color`}),f(s,{dimColor:!0,children:`ctrl+a to toggle rgb, hex, hsl`}),f(s,{dimColor:!0,children:`esc to go back`})]}),v<2?p(o,{marginBottom:1,borderStyle:`single`,borderTop:!1,borderBottom:!1,borderRight:!1,borderColor:`yellow`,flexDirection:`column`,paddingLeft:1,children:[f(s,{bold:!0,children:v===0?`Theme Name`:`Theme ID`}),f(s,{children:v===0?`The display name for this theme`:"Unique identifier for this theme; used in `.claude.json` to select the theme."})]}):p(o,{marginBottom:1,borderStyle:`single`,borderTop:!1,borderBottom:!1,borderRight:!1,borderColor:h.colors[k[v-2]],flexDirection:`column`,paddingLeft:1,children:[f(N,{colorKey:k[v-2],theme:h,bold:!0}),f(s,{children:j(k[v-2])})]}),p(o,{flexDirection:`column`,children:[p(o,{children:[f(s,{color:v===0?`yellow`:`white`,children:v===0?`❯ `:` `}),f(s,{bold:!0,children:`Name: `}),f(s,{children:h.name})]}),p(o,{marginBottom:1,children:[f(s,{color:v===1?`yellow`:`white`,children:v===1?`❯ `:` `}),f(s,{bold:!0,children:`ID: `}),f(s,{children:h.id})]}),k.map((e,t)=>{let n=t+2;return p(o,{children:[f(s,{color:v===n?`yellow`:`white`,children:v===n?`❯ `:` `}),f(o,{width:F+2,children:f(s,{children:f(N,{colorKey:e,theme:h,bold:!0})})}),f(s,{color:h.colors[e],children:A(h.colors[e],g)})]},e)})]})]}):S?p(o,{flexDirection:`column`,marginTop:1,children:[p(s,{children:[`Editing `,S===`name`?`theme name`:`theme ID`,`:`]}),f(o,{borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:f(s,{children:w})}),f(s,{dimColor:!0,children:`enter to save, esc to cancel`})]}):f(P,{initialValue:E,colorKey:k[b],theme:h,onColorChange:e=>{T(e),O(t=>{t.colors[k[b]]=e})},onExit:()=>{O(e=>{e.colors[k[b]]=w}),x(null),T(``),D(``)},onCancel:()=>{O(e=>{e.colors[k[b]]=E}),x(null),T(``),D(``)}})]}),f(o,{width:`50%`,children:f(M,{theme:h})})]})}function R(e){return e.map(e=>`${e.name} (${e.id})`)}function z({onBack:e}){let{settings:{themes:t},updateSettings:n}=r($),[i,c]=a(0),[u,d]=a(null),[m,h]=a(!0),g=()=>{let e=t[0]||w.themes[0],r={...e,name:`New Custom Theme`,id:`custom-${Date.now()}`};n(e=>{e.themes.push(r)}),d(r.id),h(!1)},_=e=>{t.length<=1||(n(t=>{t.themes=t.themes.filter(t=>t.id!==e)}),i>=t.length-1&&c(Math.max(0,t.length-2)))},v=()=>{n(e=>{e.themes=[...w.themes]}),c(0)};if(l((n,r)=>{if(r.escape)e();else if(r.upArrow)c(e=>Math.max(0,e-1));else if(r.downArrow)c(e=>Math.min(t.length-1,e+1));else if(r.return){let e=t[i];e&&(d(e.id),h(!1))}else if(n===`n`)g();else if(n===`d`){let e=t[i];e&&_(e.id)}else r.ctrl&&n===`r`&&v()},{isActive:m}),u)return f(L,{themeId:u,onBack:()=>{d(null),h(!0)}});let y=R(t),b=t.find(e=>y[i]?.includes(`(${e.id})`))||t[0];return t.length===0?f(o,{children:p(o,{flexDirection:`column`,width:`100%`,children:[p(s,{bold:!0,backgroundColor:`#ffd500`,color:`black`,children:[` `,`Themes`,` `]}),p(o,{marginBottom:1,flexDirection:`column`,children:[f(s,{dimColor:!0,children:`n to create a new theme`}),f(s,{dimColor:!0,children:`esc to go back`})]}),f(s,{children:`No themes available!`})]})}):p(o,{children:[p(o,{flexDirection:`column`,width:`50%`,children:[p(s,{bold:!0,backgroundColor:`#ffd500`,color:`black`,children:[` `,`Themes`,` `]}),p(o,{marginBottom:1,flexDirection:`column`,children:[f(s,{dimColor:!0,children:`n to create a new theme`}),f(s,{dimColor:!0,children:`d to delete a theme`}),f(s,{dimColor:!0,children:`ctrl+r to delete all themes and restore built-in`}),f(s,{dimColor:!0,children:`enter to edit theme`}),f(s,{dimColor:!0,children:`esc to go back`})]}),f(o,{flexDirection:`column`,children:y.map((e,t)=>p(s,{color:i===t?`yellow`:void 0,children:[i===t?`❯ `:` `,e]},t))})]}),f(o,{width:`50%`,children:f(M,{theme:b})})]})}function B(){try{let e=m.join(g.homedir(),`.claude.json`),t=JSON.parse(v.readFileSync(e,`utf8`));return t.theme||`dark`}catch{}return`dark`}function V(e){if(process.platform===`win32`)y.spawn(`explorer`,[`/select,`,e],{detached:!0,stdio:`ignore`}).unref();else if(process.platform===`darwin`)y.spawn(`open`,[`-R`,e],{detached:!0,stdio:`ignore`}).unref();else{let t=m.dirname(e);y.spawn(`xdg-open`,[t],{detached:!0,stdio:`ignore`}).unref()}}let H=[`ANSI Shadow`];function U({onBack:e}){let{stdout:t}=u(),n=t?.columns||120,{settings:{launchText:{method:c,figletText:m,figletFont:h,customText:g},themes:v},updateSettings:y}=r($),b=c===`figlet`?[`method`,`text`,`font`]:[`method`,`text`],[x,S]=a(0),C=b[x],[w,T]=a(c===`figlet`?0:1),[E,D]=a(H),[O,k]=a(H),[A,j]=a(``),[M,N]=a(!1),[P,F]=a(0),[I,L]=a(``),[R,z]=a(50),[V,U]=a(!1),[W,G]=a(c===`figlet`?m:g),K=B(),q=v.find(e=>e.id===K)||v.find(e=>e.id===`dark`),J=q?.colors.claude||`rgb(215,119,87)`;i(()=>{_.fonts((e,t)=>{if(!e&&t){let e=t.sort();D(e),k(e),H=e;let n=e.indexOf(h);F(n>=0?n:e.indexOf(`ANSI Shadow`)||0)}})},[]),i(()=>{Y()},[c,m,h,g,W,V]);let Y=()=>{if(c===`figlet`)try{let e=V?W:m,t=_.textSync(e.replace(`
2
+ import{Fragment as e,createContext as t,useCallback as n,useContext as r,useEffect as i,useState as a}from"react";import{Box as o,Text as s,render as c,useInput as l,useStdout as u}from"ink";import{Fragment as d,jsx as f,jsxs as p}from"react/jsx-runtime";import*as m from"node:path";import h from"node:path";import*as g from"node:os";import _ from"figlet";import*as v from"node:fs";import*as y from"node:child_process";import*as b from"node:fs/promises";import x from"node:fs/promises";function S({items:e,selectedIndex:t,onSelect:n,onSubmit:r}){return l((i,a)=>{a.upArrow?n(t>0?t-1:e.length-1):a.downArrow?n(t<e.length-1?t+1:0):a.return&&r(e[t].name)}),f(o,{flexDirection:`column`,children:e.map((e,n)=>f(o,{children:p(s,{children:[p(s,{bold:n===t,color:n===t?`cyan`:void 0,...n===t?e.selectedStyles??{}:e.styles??{},children:[n===t?`❯ `:` `,e.name]}),e.desc&&n===t&&p(s,{dimColor:!0,bold:!1,children:[` \x1B[0;2m`,`- `,e.desc]})]})},n))})}let C=function(e){return e.THEMES=`Themes`,e.LAUNCH_TEXT=`Launch text`,e.THINKING_VERBS=`Thinking verbs`,e.THINKING_STYLE=`Thinking style`,e.APPLY_CHANGES=`*Apply customizations to cli.js`,e.RESTORE_ORIGINAL=`Restore original Claude Code (preserves tweakcc.json)`,e.OPEN_CONFIG=`Open tweakcc.json`,e.OPEN_CLI=`Open Claude Code's cli.js`,e.EXIT=`Exit`,e}({});const w={themes:[{name:`Dark mode`,id:`dark`,colors:{autoAccept:`rgb(175,135,255)`,bashBorder:`rgb(253,93,177)`,claude:`rgb(215,119,87)`,permission:`rgb(177,185,249)`,planMode:`rgb(72,150,140)`,secondaryBorder:`rgb(136,136,136)`,text:`rgb(255,255,255)`,inverseText:`rgb(0,0,0)`,secondaryText:`rgb(153,153,153)`,suggestion:`rgb(177,185,249)`,remember:`rgb(177,185,249)`,success:`rgb(78,186,101)`,error:`rgb(255,107,128)`,warning:`rgb(255,193,7)`,diffAdded:`rgb(34,92,43)`,diffRemoved:`rgb(122,41,54)`,diffAddedDimmed:`rgb(71,88,74)`,diffRemovedDimmed:`rgb(105,72,77)`,diffAddedWord:`rgb(56,166,96)`,diffRemovedWord:`rgb(179,89,107)`,diffAddedWordDimmed:`rgb(46,107,58)`,diffRemovedWordDimmed:`rgb(139,57,69)`}},{name:`Light mode`,id:`light`,colors:{autoAccept:`rgb(135,0,255)`,bashBorder:`rgb(255,0,135)`,claude:`rgb(215,119,87)`,permission:`rgb(87,105,247)`,planMode:`rgb(0,102,102)`,secondaryBorder:`rgb(153,153,153)`,text:`rgb(0,0,0)`,inverseText:`rgb(255,255,255)`,secondaryText:`rgb(102,102,102)`,suggestion:`rgb(87,105,247)`,remember:`rgb(0,0,255)`,success:`rgb(44,122,57)`,error:`rgb(171,43,63)`,warning:`rgb(150,108,30)`,diffAdded:`rgb(105,219,124)`,diffRemoved:`rgb(255,168,180)`,diffAddedDimmed:`rgb(199,225,203)`,diffRemovedDimmed:`rgb(253,210,216)`,diffAddedWord:`rgb(47,157,68)`,diffRemovedWord:`rgb(209,69,75)`,diffAddedWordDimmed:`rgb(144,194,156)`,diffRemovedWordDimmed:`rgb(232,165,173)`}},{name:`Light mode (ANSI colors only)`,id:`light-ansi`,colors:{autoAccept:`#cd00cd`,bashBorder:`#cd00cd`,claude:`#cdcd00`,permission:`#0000ee`,planMode:`#00cdcd`,secondaryBorder:`#e5e5e5`,text:`#000000`,inverseText:`#ffffff`,secondaryText:`#7f7f7f`,suggestion:`#0000ee`,remember:`#0000ee`,success:`#00cd00`,error:`#cd0000`,warning:`#cdcd00`,diffAdded:`#00cd00`,diffRemoved:`#cd0000`,diffAddedDimmed:`#00cd00`,diffRemovedDimmed:`#cd0000`,diffAddedWord:`#00ff00`,diffRemovedWord:`#ff0000`,diffAddedWordDimmed:`#00cd00`,diffRemovedWordDimmed:`#cd0000`}},{name:`Dark mode (ANSI colors only)`,id:`dark-ansi`,colors:{autoAccept:`#ff00ff`,bashBorder:`#ff00ff`,claude:`#cdcd00`,permission:`#5c5cff`,planMode:`#00ffff`,secondaryBorder:`#e5e5e5`,text:`#ffffff`,inverseText:`#000000`,secondaryText:`#e5e5e5`,suggestion:`#5c5cff`,remember:`#5c5cff`,success:`#00ff00`,error:`#ff0000`,warning:`#ffff00`,diffAdded:`#00cd00`,diffRemoved:`#cd0000`,diffAddedDimmed:`#00cd00`,diffRemovedDimmed:`#cd0000`,diffAddedWord:`#00ff00`,diffRemovedWord:`#ff0000`,diffAddedWordDimmed:`#00cd00`,diffRemovedWordDimmed:`#cd0000`}},{name:`Light mode (colorblind-friendly)`,id:`light-daltonized`,colors:{autoAccept:`rgb(135,0,255)`,bashBorder:`rgb(0,102,204)`,claude:`rgb(255,153,51)`,permission:`rgb(51,102,255)`,planMode:`rgb(51,102,102)`,secondaryBorder:`rgb(153,153,153)`,text:`rgb(0,0,0)`,inverseText:`rgb(255,255,255)`,secondaryText:`rgb(102,102,102)`,suggestion:`rgb(51,102,255)`,remember:`rgb(51,102,255)`,success:`rgb(0,102,153)`,error:`rgb(204,0,0)`,warning:`rgb(255,153,0)`,diffAdded:`rgb(153,204,255)`,diffRemoved:`rgb(255,204,204)`,diffAddedDimmed:`rgb(209,231,253)`,diffRemovedDimmed:`rgb(255,233,233)`,diffAddedWord:`rgb(51,102,204)`,diffRemovedWord:`rgb(153,51,51)`,diffAddedWordDimmed:`rgb(102,153,204)`,diffRemovedWordDimmed:`rgb(204,153,153)`}},{name:`Dark mode (colorblind-friendly)`,id:`dark-daltonized`,colors:{autoAccept:`rgb(175,135,255)`,bashBorder:`rgb(51,153,255)`,claude:`rgb(255,153,51)`,permission:`rgb(153,204,255)`,planMode:`rgb(102,153,153)`,secondaryBorder:`rgb(136,136,136)`,text:`rgb(255,255,255)`,inverseText:`rgb(0,0,0)`,secondaryText:`rgb(153,153,153)`,suggestion:`rgb(153,204,255)`,remember:`rgb(153,204,255)`,success:`rgb(51,153,255)`,error:`rgb(255,102,102)`,warning:`rgb(255,204,0)`,diffAdded:`rgb(0,68,102)`,diffRemoved:`rgb(102,0,0)`,diffAddedDimmed:`rgb(62,81,91)`,diffRemovedDimmed:`rgb(62,44,44)`,diffAddedWord:`rgb(0,119,179)`,diffRemovedWord:`rgb(179,0,0)`,diffAddedWordDimmed:`rgb(26,99,128)`,diffRemovedWordDimmed:`rgb(128,21,21)`}}],launchText:{method:`figlet`,figletText:`Claude Code`,figletFont:`ANSI Shadow`,customText:``},thinkingVerbs:{useHaikuGenerated:!0,punctuation:`…`,verbs:`Accomplishing.Actioning.Actualizing.Baking.Booping.Brewing.Calculating.Cerebrating.Channelling.Churning.Clauding.Coalescing.Cogitating.Combobulating.Computing.Concocting.Conjuring.Considering.Contemplating.Cooking.Crafting.Creating.Crunching.Deciphering.Deliberating.Determining.Discombobulating.Divining.Doing.Effecting.Elucidating.Enchanting.Envisioning.Finagling.Flibbertigibbeting.Forging.Forming.Frolicking.Generating.Germinating.Hatching.Herding.Honking.Hustling.Ideating.Imagining.Incubating.Inferring.Jiving.Manifesting.Marinating.Meandering.Moseying.Mulling.Musing.Mustering.Noodling.Percolating.Perusing.Philosophising.Pondering.Pontificating.Processing.Puttering.Puzzling.Reticulating.Ruminating.Scheming.Schlepping.Shimmying.Shucking.Simmering.Smooshing.Spelunking.Spinning.Stewing.Sussing.Synthesizing.Thinking.Tinkering.Transmuting.Unfurling.Unravelling.Vibing.Wandering.Whirring.Wibbling.Wizarding.Working.Wrangling`.split(`.`)},thinkingStyle:{updateInterval:120,phases:{}.TERM===`xterm-ghostty`?[`·`,`✢`,`✳`,`✶`,`✻`,`*`]:process.platform===`darwin`?[`·`,`✢`,`✳`,`✶`,`✻`,`✽`]:[`·`,`✢`,`*`,`✶`,`✻`,`✽`],reverseMirror:!0}},T=m.join(g.homedir(),`.tweakcc`),E=m.join(T,`config.json`),D=m.join(T,`cli.js.backup`),O=[m.join(g.homedir(),`AppData`,`Local`,`Volta`,`tools`,`image`,`packages`,`@anthropic-ai`,`claude-code`,`node_modules`,`@anthropic-ai`,`claude-code`),m.join(g.homedir(),`AppData`,`Roaming`,`npm`,`node_modules`,`@anthropic-ai`,`claude-code`),m.join(g.homedir(),`AppData`,`Local`,`Yarn`,`config`,`global`,`node_modules`,`@anthropic-ai`,`claude-code`),m.join(g.homedir(),`AppData`,`Local`,`pnpm`,`global`,`5`,`node_modules`,`@anthropic-ai`,`claude-code`)];({}).N_PREFIX&&O.push(m.join({}.N_PREFIX,`lib`,`node_modules`,`@anthropic-ai`,`claude-code`)),process.platform!=`win32`&&O.push(m.join(`/usr`,`local`,`lib`,`node_modules`,`@anthropic-ai`,`claude-code`));const k=[{name:C.THEMES,desc:`Modify Claude Code's built-in themes or create your own`},{name:C.LAUNCH_TEXT,desc:`Change the "CLAUDE CODE" banner text that's shown when you sign in to Claude Code`},{name:C.THINKING_VERBS,desc:`Customize the list of verbs that Claude Code uses when it's working`},{name:C.THINKING_STYLE,desc:`Choose custom spinners`}],A=[{name:C.RESTORE_ORIGINAL,desc:`Reverts your Claude Code install to its original state (your customizations are remembered and can be reapplied)`},{name:C.OPEN_CONFIG,desc:`Opens your tweack cc config file (${E})`},{name:C.OPEN_CLI,desc:`Opens Claude Code's cli.js file`},{name:C.EXIT,desc:`Bye!`}];function j({onSubmit:e,notification:t}){let n=[...r($).changesApplied?[]:[{name:C.APPLY_CHANGES,desc:`Required: Updates Claude Code's cli.js in-place with your changes`,selectedStyles:{color:`green`}}],...k,...A],[i,c]=a(0);return p(o,{flexDirection:`column`,children:[f(o,{marginBottom:1,children:p(s,{bold:!0,backgroundColor:`#ffd500`,color:`black`,children:[` `,`Tweak Claude Code`,` `]})}),f(o,{marginBottom:1,children:p(s,{color:`gray`,children:[f(s,{bold:!0,children:`Customize your Claude Code installation.`}),` `,f(s,{dimColor:!0,children:`Settings will be saved to a JSON file.`})]})}),t&&f(o,{marginBottom:1,borderLeft:!0,borderRight:!1,borderTop:!1,borderBottom:!1,borderStyle:`bold`,borderColor:t?.type===`success`?`green`:t?.type===`error`?`red`:t?.type===`info`?`blue`:`yellow`,paddingLeft:1,flexDirection:`column`,children:f(s,{color:t?.type===`success`?`green`:t?.type===`error`?`red`:t?.type===`info`?`blue`:`yellow`,children:t?.message})}),f(S,{items:n,selectedIndex:i,onSelect:c,onSubmit:t=>e(t)})]})}function M({theme:e}){return p(o,{flexDirection:`column`,paddingLeft:1,children:[f(o,{marginBottom:1,children:p(s,{bold:!0,children:[`Preview: `,e.name]})}),f(o,{borderStyle:`single`,borderColor:`gray`,padding:1,children:p(o,{flexDirection:`column`,children:[f(s,{children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[`│ `,f(s,{color:e.colors.secondaryText,children:`1`}),` `,p(s,{color:e.colors.text,children:[`function greet() `,`{`]}),` `,`│`]}),p(s,{children:[`│ `,f(s,{color:e.colors.secondaryText,children:`2`}),` `,p(s,{backgroundColor:e.colors.diffRemoved,color:e.colors.text,children:[`- console.log("`,f(s,{backgroundColor:e.colors.diffRemovedWord,children:`Hello, World!`}),`");`]}),` `,`│`]}),p(s,{children:[`│ `,f(s,{color:e.colors.secondaryText,children:`2`}),` `,p(s,{backgroundColor:e.colors.diffAdded,color:e.colors.text,children:[`+ console.log("`,f(s,{backgroundColor:e.colors.diffAddedWord,children:`Hello, Claude!`}),`");`]}),` `,`│`]}),f(s,{color:e.colors.warning,children:`╭─────────────────────────────────────────────╮`}),p(s,{color:e.colors.warning,children:[`│ Do you trust the files in this folder?`,` `,`│`]}),p(s,{children:[f(s,{color:e.colors.warning,children:`│ `}),f(s,{color:`white`,dimColor:!0,children:`Enter to confirm · Esc to exit`}),p(s,{color:e.colors.warning,children:[` `,`│`]})]}),f(s,{color:e.colors.claude,children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[f(s,{color:e.colors.claude,children:`│ `}),f(s,{color:e.colors.claude,children:`✻`}),f(s,{children:` Welcome to Tweak Claude Code!`}),p(s,{color:e.colors.claude,children:[` `,`│`]})]}),p(s,{children:[f(s,{color:e.colors.claude,children:`│`}),p(s,{color:e.colors.secondaryText,italic:!0,children:[` `,`/help for help, /status for your current set`]}),f(s,{color:e.colors.claude,children:`│`})]}),p(s,{color:e.colors.success,children:[`Login successful. Press `,f(s,{bold:!0,children:`Enter`}),` to continue…`]}),f(s,{color:e.colors.bashBorder,children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[f(s,{color:e.colors.bashBorder,children:`│ !`}),p(s,{color:`white`,children:[` `,`ls`,` `]}),f(s,{color:e.colors.bashBorder,children:`│`})]}),f(s,{color:e.colors.planMode,children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[f(s,{color:e.colors.planMode,children:`│ `}),f(s,{color:e.colors.permission,children:`Ready to code?`}),p(s,{color:e.colors.planMode,children:[` `,`│`]})]}),p(s,{children:[f(s,{color:e.colors.planMode,children:`│ `}),f(s,{children:`Here is Claude's plan:`}),p(s,{color:e.colors.planMode,children:[` `,`│`]})]}),f(s,{color:e.colors.secondaryBorder,children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[f(s,{color:e.colors.secondaryBorder,children:`│`}),` `,p(s,{color:e.colors.secondaryText,children:[`> Try “refactor <filepath>”`,` `,`│`]})]}),f(s,{color:e.colors.permission,children:`╭─────────────────────────────────────────────╮`}),p(s,{children:[p(s,{color:e.colors.permission,children:[`│ `,f(s,{bold:!0,children:`Permissions:`})]}),` `,p(s,{backgroundColor:e.colors.permission,color:e.colors.inverseText,bold:!0,children:[` `,`Allow`,` `]}),` `,`Deny`,` `,`Workspace`,` `,f(s,{color:e.colors.permission,children:`│`})]}),f(s,{color:e.colors.secondaryText,children:`> list the dir`}),p(s,{children:[f(s,{color:e.colors.error,children:`●`}),f(s,{color:`white`,children:` Update(__init__.py)`})]}),p(s,{children:[f(s,{children:` ⎿ `}),f(s,{color:e.colors.error,children:`User rejected update to __init__.py`})]}),p(s,{color:`white`,children:[` `,f(s,{color:e.colors.secondaryText,children:`1`}),` `,p(s,{backgroundColor:e.colors.diffRemovedDimmed,color:e.colors.text,children:[`- import`,` `,f(s,{backgroundColor:e.colors.diffRemovedWordDimmed,color:e.colors.text,children:`os`})]})]}),p(s,{color:`white`,children:[` `,f(s,{color:e.colors.secondaryText,children:`2`}),` `,p(s,{backgroundColor:e.colors.diffAddedDimmed,color:e.colors.text,children:[`+ import`,` `,f(s,{backgroundColor:e.colors.diffAddedWordDimmed,color:e.colors.text,children:`random`})]})]}),p(s,{children:[f(s,{color:e.colors.success,children:`●`}),f(s,{color:`white`,children:` List(.)`})]}),f(s,{color:`white`,children:` ⎿ Listed 123 paths (ctrl+r to expand)`}),p(s,{children:[f(s,{color:e.colors.secondaryText,children:`●`}),f(s,{color:`white`,children:` The directory `}),f(s,{color:e.colors.permission,children:`C:\\Users\\user`}),f(s,{color:`white`,children:` contains **123** files.`})]}),p(s,{children:[f(s,{color:e.colors.claude,children:`✻ Thinking… `}),f(s,{color:e.colors.secondaryText,children:`(10s · ↑ 456 tokens · esc to interrupt)`})]}),p(s,{children:[p(s,{color:e.colors.autoAccept,children:[`⏵⏵ auto-accept edits on`,` `]}),f(s,{color:e.colors.secondaryText,dimColor:!0,children:`(shift+tab to cycle)`})]}),p(s,{children:[f(s,{color:e.colors.planMode,children:`⏸ plan mode on `}),f(s,{color:e.colors.secondaryText,dimColor:!0,children:`(shift+tab to cycle)`})]})]})})]})}function N({colorKey:e,theme:t,bold:n=!1}){let r=t.colors[e];return e===`inverseText`?f(s,{color:r,backgroundColor:t.colors.permission,bold:n,children:e}):e.startsWith(`diff`)?f(s,{backgroundColor:r,bold:n,color:t.colors.text,children:e}):f(s,{color:r,bold:n,children:e})}function P({initialValue:t,onColorChange:n,onExit:r,onCancel:c,colorKey:u,theme:m}){let h=I(t)||{h:0,s:50,l:50},g=F(t)||{r:128,g:128,b:128},[_,v]=a(h),[y,b]=a(g),[x,S]=a(`hsl`),[C,w]=a(`h`),[T,E]=a(!1);i(()=>{let e=I(t),n=F(t);e&&n&&(E(!0),v(e),b(n),E(!1))},[t]),i(()=>{if(!T){let e=`rgb(${y.r},${y.g},${y.b})`;n(e)}},[_,y,T]),l((e,t)=>{if(t.return)r();else if(t.escape)c();else if(t.ctrl&&e===`a`)S(e=>e===`hsl`?`rgb`:`hsl`),w(e=>x===`hsl`?e===`h`?`r`:e===`s`?`g`:`b`:e===`r`?`h`:e===`g`?`s`:`l`);else if(t.upArrow)w(x===`hsl`?e=>e===`h`?`l`:e===`s`?`h`:`s`:e=>e===`r`?`b`:e===`g`?`r`:`g`);else if(t.downArrow||t.tab)w(x===`hsl`?e=>e===`h`?`s`:e===`s`?`l`:`h`:e=>e===`r`?`g`:e===`g`?`b`:`r`);else if(t.leftArrow){let e=t.shift||t.ctrl||t.meta?-10:-1;D(e)}else if(t.rightArrow){let e=t.shift||t.ctrl||t.meta?10:1;D(e)}});let D=e=>{E(!0),x===`hsl`?v(t=>{let n={...t};C===`h`?n.h=Math.max(0,Math.min(359,t.h+e)):C===`s`?n.s=Math.max(0,Math.min(100,t.s+e)):C===`l`&&(n.l=Math.max(0,Math.min(100,t.l+e)));let[r,i,a]=k(n.h,n.s,n.l);return b({r,g:i,b:a}),n}):b(t=>{let n={...t};C===`r`?n.r=Math.max(0,Math.min(255,t.r+e)):C===`g`?n.g=Math.max(0,Math.min(255,t.g+e)):C===`b`&&(n.b=Math.max(0,Math.min(255,t.b+e)));let r=O(n.r,n.g,n.b);return v(r),n}),E(!1)},O=(e,t,n)=>{let r=e/255,i=t/255,a=n/255,o=Math.max(r,i,a),s=Math.min(r,i,a),c=o-s,l=(o+s)/2,u=0;c!==0&&(u=l>.5?c/(2-o-s):c/(o+s));let d=0;return c!==0&&(d=o===r?((i-a)/c+(i<a?6:0))/6:o===i?((a-r)/c+2)/6:((r-i)/c+4)/6),{h:Math.round(d*360),s:Math.round(u*100),l:Math.round(l*100)}},k=(e,t,n)=>{e/=360,t/=100,n/=100;let r=(1-Math.abs(2*n-1))*t,i=r*(1-Math.abs(e*6%2-1)),a=n-r/2,o=0,s=0,c=0;return 0<=e&&e<1/6?(o=r,s=i,c=0):1/6<=e&&e<2/6?(o=i,s=r,c=0):2/6<=e&&e<3/6?(o=0,s=r,c=i):3/6<=e&&e<4/6?(o=0,s=i,c=r):4/6<=e&&e<5/6?(o=i,s=0,c=r):5/6<=e&&e<1&&(o=r,s=0,c=i),[Math.round((o+a)*255),Math.round((s+a)*255),Math.round((c+a)*255)]},A=()=>{let e=[],t=[[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[127,0,255],[255,0,255],[255,0,127],[255,0,0]];for(let n=0;n<40;n++){let r=n/39,i=r*(t.length-1),a=Math.floor(i),o=Math.ceil(i),c=i-a,[l,u,d]=t[a],[p,m,h]=t[o],g=Math.round(l+(p-l)*c),_=Math.round(u+(m-u)*c),v=Math.round(d+(h-d)*c);e.push(f(s,{backgroundColor:`rgb(${g},${_},${v})`,children:` `},n))}return e},j=()=>{let e=[];for(let t=0;t<40;t++){let n=t/39*100,[r,i,a]=k(_.h,n,_.l);e.push(f(s,{backgroundColor:`rgb(${r},${i},${a})`,children:` `},t))}return e},M=()=>{let e=[];for(let t=0;t<40;t++){let n=t/39*100,[r,i,a]=k(_.h,_.s,n);e.push(f(s,{backgroundColor:`rgb(${r},${i},${a})`,children:` `},t))}return e},N=()=>{let[e,t,n]=k(_.h,_.s,_.l);return`rgb(${e},${t},${n})`},P=(e,t,n)=>{let r=e=>e.toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`},L=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(f(s,{backgroundColor:`rgb(${n},${y.g},${y.b})`,children:` `},t))}return e},R=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(f(s,{backgroundColor:`rgb(${y.r},${n},${y.b})`,children:` `},t))}return e},z=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(f(s,{backgroundColor:`rgb(${y.r},${y.g},${n})`,children:` `},t))}return e},B=(e,t)=>Math.round(e/t*39);return p(o,{flexDirection:`column`,borderStyle:`single`,borderColor:`white`,padding:1,children:[p(o,{flexDirection:`column`,children:[f(s,{bold:!0,children:`Color Picker`}),p(o,{marginBottom:1,flexDirection:`column`,children:[f(s,{color:`gray`,dimColor:!0,children:`←→ to adjust (shift/ctrl/cmd +10)`}),f(s,{color:`gray`,dimColor:!0,children:`↑↓ to change bar`}),f(s,{color:`gray`,dimColor:!0,children:`ctrl+a to switch rgb/hsl`}),f(s,{color:`gray`,dimColor:!0,children:`enter to exit (auto-saved)`}),f(s,{color:`gray`,dimColor:!0,children:`esc to cancel changes`})]})]}),x===`hsl`?p(d,{children:[p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`h`?`yellow`:`white`,children:[C===`h`?`❯ `:` `,`Hue (`,_.h,`°):`]})}),f(o,{children:A().map((t,n)=>f(e,{children:n===B(_.h,360)?f(s,{children:`|`}):t},n))})]}),p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`s`?`yellow`:`white`,children:[C===`s`?`❯ `:` `,`Saturation (`,_.s,`%):`]})}),f(o,{children:j().map((t,n)=>f(e,{children:n===B(_.s,100)?f(s,{children:`|`}):t},n))})]}),p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`l`?`yellow`:`white`,children:[C===`l`?`❯ `:` `,`Lightness (`,_.l,`%):`]})}),f(o,{children:M().map((t,n)=>f(e,{children:n===B(_.l,100)?f(s,{children:`|`}):t},n))})]})]}):p(d,{children:[p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`r`?`yellow`:`white`,children:[C===`r`?`❯ `:` `,`Red (`,y.r,`):`]})}),f(o,{children:L().map((t,n)=>f(e,{children:n===B(y.r,255)?f(s,{children:`|`}):t},n))})]}),p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`g`?`yellow`:`white`,children:[C===`g`?`❯ `:` `,`Green (`,y.g,`):`]})}),f(o,{children:R().map((t,n)=>f(e,{children:n===B(y.g,255)?f(s,{children:`|`}):t},n))})]}),p(o,{marginBottom:1,children:[f(o,{width:25,children:p(s,{color:C===`b`?`yellow`:`white`,children:[C===`b`?`❯ `:` `,`Blue (`,y.b,`):`]})}),f(o,{children:z().map((t,n)=>f(e,{children:n===B(y.b,255)?f(s,{children:`|`}):t},n))})]})]}),p(o,{marginBottom:1,children:[f(s,{children:`Current: `}),f(s,{backgroundColor:N(),children:` `})]}),p(o,{flexDirection:`row`,justifyContent:`space-between`,children:[p(o,{flexDirection:`column`,children:[f(s,{dimColor:!0,children:`Hex `}),u?.startsWith(`diff`)?f(s,{backgroundColor:N(),color:m?.colors?.text||`white`,bold:!0,children:P(y.r,y.g,y.b)}):u===`inverseText`?f(s,{color:N(),backgroundColor:m?.colors?.permission,bold:!0,children:P(y.r,y.g,y.b)}):f(s,{color:N(),bold:!0,children:P(y.r,y.g,y.b)})]}),p(o,{flexDirection:`column`,children:[f(s,{dimColor:!0,children:`RGB `}),u?.startsWith(`diff`)?f(s,{backgroundColor:N(),color:m?.colors?.text||`white`,bold:!0,children:`rgb(${y.r}, ${y.g}, ${y.b})`}):u===`inverseText`?f(s,{color:N(),backgroundColor:m?.colors?.permission,bold:!0,children:`rgb(${y.r}, ${y.g}, ${y.b})`}):f(s,{color:N(),bold:!0,children:`rgb(${y.r}, ${y.g}, ${y.b})`})]}),p(o,{flexDirection:`column`,children:[f(s,{dimColor:!0,children:`HSL `}),u?.startsWith(`diff`)?f(s,{backgroundColor:N(),color:m?.colors?.text||`white`,bold:!0,children:`hsl(${_.h}, ${_.s}%, ${_.l}%)`}):u===`inverseText`?f(s,{color:N(),backgroundColor:m?.colors?.permission,bold:!0,children:`hsl(${_.h}, ${_.s}%, ${_.l}%)`}):f(s,{color:N(),bold:!0,children:`hsl(${_.h}, ${_.s}%, ${_.l}%)`})]})]})]})}function F(e){let t=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(t)return{r:parseInt(t[1]),g:parseInt(t[2]),b:parseInt(t[3])};let n=e.match(/^#([a-fA-F0-9]{6})$/);if(n){let e=n[1];return{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16)}}return null}function I(e){let t=e.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);if(t)return{h:parseInt(t[1]),s:parseInt(t[2]),l:parseInt(t[3])};let n=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(n){let e=parseInt(n[1])/255,t=parseInt(n[2])/255,r=parseInt(n[3])/255,i=Math.max(e,t,r),a=Math.min(e,t,r),o=i-a,s=(i+a)/2,c=0;o!==0&&(c=s>.5?o/(2-i-a):o/(i+a));let l=0;return o!==0&&(l=i===e?((t-r)/o+(t<r?6:0))/6:i===t?((r-e)/o+2)/6:((e-t)/o+4)/6),{h:Math.round(l*360),s:Math.round(c*100),l:Math.round(s*100)}}let r=e.match(/^#([a-fA-F0-9]{6})$/);if(r){let e=r[1],t=parseInt(e.substr(0,2),16)/255,n=parseInt(e.substr(2,2),16)/255,i=parseInt(e.substr(4,2),16)/255,a=Math.max(t,n,i),o=Math.min(t,n,i),s=a-o,c=(a+o)/2,l=0;s!==0&&(l=c>.5?s/(2-a-o):s/(a+o));let u=0;return s!==0&&(u=a===t?((n-i)/s+(n<i?6:0))/6:a===n?((i-t)/s+2)/6:((t-n)/s+4)/6),{h:Math.round(u*360),s:Math.round(l*100),l:Math.round(c*100)}}return{h:0,s:50,l:50}}function L({onBack:e,themeId:t}){let{settings:{themes:i},updateSettings:c}=r($),[u,m]=a(t),h=i.find(e=>e.id===u)||i[0],[g,_]=a(`rgb`),[v,y]=a(0),[b,x]=a(null),[S,C]=a(null),[w,T]=a(``),[E,D]=a(``),O=n(e=>{c(t=>{let n=t.themes.findIndex(e=>e.id===u);n!==-1&&e(t.themes[n])})},[u,c]);l((t,n)=>{if(b===null&&S===null){if(n.escape)e();else if(n.ctrl&&t===`a`)_(e=>e===`rgb`?`hex`:e===`hex`?`hsl`:`rgb`);else if(n.upArrow)y(e=>Math.max(0,e-1));else if(n.downArrow)y(e=>Math.min(k.length+1,e+1));else if(n.return)if(v===0)C(`name`),T(h.name),D(h.name);else if(v===1)C(`id`),T(h.id),D(h.id);else{let e=v-2,t=k[e],n=h.colors[t];x(e),T(n),D(n)}}else if(b!==null)n.ctrl&&t===`a`&&_(e=>e===`rgb`?`hex`:e===`hex`?`hsl`:`rgb`);else if(S!==null)if(n.return){if(S===`id`){let e=u;m(w),c(t=>{let n=t.themes.findIndex(t=>t.id===e);n!==-1&&(t.themes[n].id=w)})}else O(e=>{e.name=w});C(null),T(``),D(``)}else n.escape?(C(null),T(``),D(``)):n.backspace||n.delete?T(e=>e.slice(0,-1)):t&&T(e=>e+t)});let k=Object.keys(h.colors),A=(e,t)=>{let n=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(!n)return e;let r=parseInt(n[1]),i=parseInt(n[2]),a=parseInt(n[3]);switch(t){case`hex`:{let e=e=>e.toString(16).padStart(2,`0`);return`#${e(r)}${e(i)}${e(a)}`}case`hsl`:{let e=r/255,t=i/255,n=a/255,o=Math.max(e,t,n),s=Math.min(e,t,n),c=o-s,l=(o+s)/2,u=0;c!==0&&(u=l>.5?c/(2-o-s):c/(o+s));let d=0;return c!==0&&(d=o===e?((t-n)/c+(t<n?6:0))/6:o===t?((n-e)/c+2)/6:((e-t)/c+4)/6),`hsl(${Math.round(d*360)}, ${Math.round(u*100)}%, ${Math.round(l*100)}%)`}case`rgb`:default:return e}},j=e=>{let t={claude:`Claude branding color. Used for the Claude logo, the welcome message, and the thinking text.`,text:`Code color. Used in diffs.`,inverseText:`Inverse text color. Used for the text of tabs, where the background is filled in.`,secondaryText:`Secondary/dimmed text. Used for keyboard shortcuts and other help text.`,secondaryBorder:`Secondary border color. Used for various boxes.`,suggestion:`Suggestion text color. Used for suggestions for theme names and various other things.`,remember:`Remember/note color. Used for various text relating to memories.`,success:`Success indicator. Used for the bullet on successful tool calls, and various success messages (such as sign in successful).`,error:`Error indicator`,warning:`Warning indicator`,autoAccept:`Auto-accept mode indicator`,bashBorder:`Bash command border`,permission:`Permission prompt color`,planMode:`Plan mode indicator`,diffAdded:`Added diff background`,diffRemoved:`Removed diff background`,diffAddedDimmed:`Added diff background (dimmed)`,diffRemovedDimmed:`Removed diff background (dimmed)`,diffAddedWord:`Added word highlight`,diffRemovedWord:`Removed word highlight`,diffAddedWordDimmed:`Added word highlight (dimmed)`,diffRemovedWordDimmed:`Removed word highlight (dimmed)`};return t[e]||``},F=Math.max(...k.map(e=>e.length));return p(o,{children:[p(o,{flexDirection:`column`,width:`50%`,children:[f(o,{children:p(s,{backgroundColor:`#ffd500`,color:`black`,bold:!0,children:[` `,`Editing theme “`,h.name,`” (`,h.id,`)`,` `]})}),b===null&&S===null?p(d,{children:[p(o,{marginBottom:1,flexDirection:`column`,children:[f(s,{dimColor:!0,children:`enter to edit theme name, id, or color`}),f(s,{dimColor:!0,children:`ctrl+a to toggle rgb, hex, hsl`}),f(s,{dimColor:!0,children:`esc to go back`})]}),v<2?p(o,{marginBottom:1,borderStyle:`single`,borderTop:!1,borderBottom:!1,borderRight:!1,borderColor:`yellow`,flexDirection:`column`,paddingLeft:1,children:[f(s,{bold:!0,children:v===0?`Theme Name`:`Theme ID`}),f(s,{children:v===0?`The display name for this theme`:"Unique identifier for this theme; used in `.claude.json` to select the theme."})]}):p(o,{marginBottom:1,borderStyle:`single`,borderTop:!1,borderBottom:!1,borderRight:!1,borderColor:h.colors[k[v-2]],flexDirection:`column`,paddingLeft:1,children:[f(N,{colorKey:k[v-2],theme:h,bold:!0}),f(s,{children:j(k[v-2])})]}),p(o,{flexDirection:`column`,children:[p(o,{children:[f(s,{color:v===0?`yellow`:`white`,children:v===0?`❯ `:` `}),f(s,{bold:!0,children:`Name: `}),f(s,{children:h.name})]}),p(o,{marginBottom:1,children:[f(s,{color:v===1?`yellow`:`white`,children:v===1?`❯ `:` `}),f(s,{bold:!0,children:`ID: `}),f(s,{children:h.id})]}),k.map((e,t)=>{let n=t+2;return p(o,{children:[f(s,{color:v===n?`yellow`:`white`,children:v===n?`❯ `:` `}),f(o,{width:F+2,children:f(s,{children:f(N,{colorKey:e,theme:h,bold:!0})})}),f(s,{color:h.colors[e],children:A(h.colors[e],g)})]},e)})]})]}):S?p(o,{flexDirection:`column`,marginTop:1,children:[p(s,{children:[`Editing `,S===`name`?`theme name`:`theme ID`,`:`]}),f(o,{borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:f(s,{children:w})}),f(s,{dimColor:!0,children:`enter to save, esc to cancel`})]}):f(P,{initialValue:E,colorKey:k[b],theme:h,onColorChange:e=>{T(e),O(t=>{t.colors[k[b]]=e})},onExit:()=>{O(e=>{e.colors[k[b]]=w}),x(null),T(``),D(``)},onCancel:()=>{O(e=>{e.colors[k[b]]=E}),x(null),T(``),D(``)}})]}),f(o,{width:`50%`,children:f(M,{theme:h})})]})}function R(e){return e.map(e=>`${e.name} (${e.id})`)}function z({onBack:e}){let{settings:{themes:t},updateSettings:n}=r($),[i,c]=a(0),[u,d]=a(null),[m,h]=a(!0),g=()=>{let e=t[0]||w.themes[0],r={colors:{...e.colors},name:`New Custom Theme`,id:`custom-${Date.now()}`};n(e=>{e.themes.push(r)}),d(r.id),h(!1)},_=e=>{t.length<=1||(n(t=>{t.themes=t.themes.filter(t=>t.id!==e)}),i>=t.length-1&&c(Math.max(0,t.length-2)))},v=()=>{n(e=>{e.themes=[...w.themes]}),c(0)};if(l((n,r)=>{if(r.escape)e();else if(r.upArrow)c(e=>Math.max(0,e-1));else if(r.downArrow)c(e=>Math.min(t.length-1,e+1));else if(r.return){let e=t[i];e&&(d(e.id),h(!1))}else if(n===`n`)g();else if(n===`d`){let e=t[i];e&&_(e.id)}else r.ctrl&&n===`r`&&v()},{isActive:m}),u)return f(L,{themeId:u,onBack:()=>{d(null),h(!0)}});let y=R(t),b=t.find(e=>y[i]?.includes(`(${e.id})`))||t[0];return t.length===0?f(o,{children:p(o,{flexDirection:`column`,width:`100%`,children:[p(s,{bold:!0,backgroundColor:`#ffd500`,color:`black`,children:[` `,`Themes`,` `]}),p(o,{marginBottom:1,flexDirection:`column`,children:[f(s,{dimColor:!0,children:`n to create a new theme`}),f(s,{dimColor:!0,children:`esc to go back`})]}),f(s,{children:`No themes available!`})]})}):p(o,{children:[p(o,{flexDirection:`column`,width:`50%`,children:[p(s,{bold:!0,backgroundColor:`#ffd500`,color:`black`,children:[` `,`Themes`,` `]}),p(o,{marginBottom:1,flexDirection:`column`,children:[f(s,{dimColor:!0,children:`n to create a new theme`}),f(s,{dimColor:!0,children:`d to delete a theme`}),f(s,{dimColor:!0,children:`ctrl+r to delete all themes and restore built-in`}),f(s,{dimColor:!0,children:`enter to edit theme`}),f(s,{dimColor:!0,children:`esc to go back`})]}),f(o,{flexDirection:`column`,children:y.map((e,t)=>p(s,{color:i===t?`yellow`:void 0,children:[i===t?`❯ `:` `,e]},t))})]}),f(o,{width:`50%`,children:f(M,{theme:b})})]})}function B(){try{let e=m.join(g.homedir(),`.claude.json`),t=JSON.parse(v.readFileSync(e,`utf8`));return t.theme||`dark`}catch{}return`dark`}function V(e){if(process.platform===`win32`)y.spawn(`explorer`,[`/select,`,e],{detached:!0,stdio:`ignore`}).unref();else if(process.platform===`darwin`)y.spawn(`open`,[`-R`,e],{detached:!0,stdio:`ignore`}).unref();else{let t=m.dirname(e);y.spawn(`xdg-open`,[t],{detached:!0,stdio:`ignore`}).unref()}}let H=[`ANSI Shadow`];function U({onBack:e}){let{stdout:t}=u(),n=t?.columns||120,{settings:{launchText:{method:c,figletText:m,figletFont:h,customText:g},themes:v},updateSettings:y}=r($),b=c===`figlet`?[`method`,`text`,`font`]:[`method`,`text`],[x,S]=a(0),C=b[x],[w,T]=a(c===`figlet`?0:1),[E,D]=a(H),[O,k]=a(H),[A,j]=a(``),[M,N]=a(!1),[P,F]=a(0),[I,L]=a(``),[R,z]=a(50),[V,U]=a(!1),[W,G]=a(c===`figlet`?m:g),K=B(),q=v.find(e=>e.id===K)||v.find(e=>e.id===`dark`),J=q?.colors.claude||`rgb(215,119,87)`;i(()=>{_.fonts((e,t)=>{if(!e&&t){let e=t.sort();D(e),k(e),H=e;let n=e.indexOf(h);F(n>=0?n:e.indexOf(`ANSI Shadow`)||0)}})},[]),i(()=>{Y()},[c,m,h,g,W,V]);let Y=()=>{if(c===`figlet`)try{let e=V?W:m,t=_.textSync(e.replace(`
3
3
  `,` `),{font:h}),r=Math.floor(n*.7),i=t.split(`
4
4
  `),a=i.map(e=>e.length>r?e.substring(0,r-3)+`…`:e),o=a.join(`
5
5
  `);L(o);let s=Math.max(...a.map(e=>e.length)),c=Math.min(75,Math.max(50,Math.ceil(s/n*100)));z(c+5)}catch{L(`Error generating figlet text`),z(50)}else{let e=Math.floor(n*.6),t=V?W:g,r=t.split(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tweakcc",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "type": "module",
5
5
  "description": "Command-line tool to customize your Claude Code installation",
6
6
  "main": "dist/index.js",