[{"data":1,"prerenderedAt":116},["ShallowReactive",2],{"post-\u002Fblog\u002Fcrush":3},{"id":4,"title":5,"body":6,"date":106,"description":107,"extension":108,"meta":109,"navigation":110,"path":111,"seo":112,"sitemap":113,"stem":114,"__hash__":115},"blog\u002Fblog\u002Fcrush.md","Crush: AI in Your Terminal",{"type":7,"value":8,"toc":100},"minimark",[9,13,21,27,33,36,41,64,68,93,96],[10,11,12],"p",{},"We spend our lives in the terminal, yet we keep alt-tabbing to a browser to ask an AI why our code is broken. It’s a context-switching nightmare.",[10,14,15,16,20],{},"Most CLI AI tools are trash. They are glorified ",[17,18,19],"code",{},"curl"," wrappers that dump unformatted text into your shell. You waste more time formatting the output than fixing the bug.",[22,23,24],"blockquote",{},[10,25,26],{},"\"Glamorous software is a force multiplier.\"\n— Charm",[10,28,29,32],{},[17,30,31],{},"crush"," is different. It’s a full-blown agent living in your TUI. It doesn't just guess; it talks to your LSP (Language Server Protocol) to understand the actual structure of your project.",[10,34,35],{},"It proposes changes, shows you a diff, and lets you apply them. No copy-pasting.",[37,38,40],"h3",{"id":39},"why-it-works","Why it works",[42,43,44,52,58],"ol",{},[45,46,47,51],"li",{},[48,49,50],"strong",{},"Model Agnostic:"," Start with Claude, switch to GPT-4 mid-session. It keeps the context.",[45,53,54,57],{},[48,55,56],{},"Visuals:"," Built on Bubble Tea. It looks better than your IDE.",[45,59,60,63],{},[48,61,62],{},"Diff View:"," Review changes side-by-side before committing.",[37,65,67],{"id":66},"get-it","Get it",[69,70,75],"pre",{"className":71,"code":72,"language":73,"meta":74,"style":74},"language-bash shiki shiki-themes github-light github-dark","brew install charmbracelet\u002Ftap\u002Fcrush\n","bash","",[17,76,77],{"__ignoreMap":74},[78,79,82,86,90],"span",{"class":80,"line":81},"line",1,[78,83,85],{"class":84},"sScJk","brew",[78,87,89],{"class":88},"sZZnC"," install",[78,91,92],{"class":88}," charmbracelet\u002Ftap\u002Fcrush\n",[10,94,95],{},"Config your API key and stop leaving your terminal.",[97,98,99],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":74,"searchDepth":101,"depth":101,"links":102},2,[103,105],{"id":39,"depth":104,"text":40},3,{"id":66,"depth":104,"text":67},"2025-12-09","Stop alt-tabbing for code help","md",{},true,"\u002Fblog\u002Fcrush",{"title":5,"description":107},{"loc":111},"blog\u002Fcrush","V8Q5hvTlvPRBEEoUw_-PF1PGPQQf7wNT7UtYS2L5h1A",1783186628091]