Crush - टर्मिनल के लिए उन्नत AI कोडिंग एजेंट
(github.com/charmbracelet)- टर्मिनल में चलने वाला AI कोडिंग एजेंट है, जो कई LLM (Large Language Model) से इंटीग्रेट होकर कोड लेखन, वर्कफ्लो ऑटोमेशन और कोड संदर्भ बनाए रखने जैसी चीज़ों के जरिए कोड उत्पादकता बढ़ाने में मदद करता है
- कई मॉडल चुने जा सकते हैं, और सत्र के बीच में भी स्वतंत्र रूप से मॉडल स्विच किया जा सकता है; साथ ही प्रोजेक्ट-स्तर पर सत्र/संदर्भ बनाए रखने का समर्थन भी करता है
- LSP (Language Server Protocol) इंटीग्रेशन, एक्सटेंसिबल MCP (Model Context Protocol) सपोर्ट,
.gitignoreऔर अलग फाइल्स को ignore करने जैसी डेवलपर-फ्रेंडली फीचर्स प्रदान की गई हैं - macOS, Linux, Windows, FreeBSD जैसे सभी प्रमुख टर्मिनल वातावरण पर चलता है, और पैकेज मैनेजर या Go, बाइनरी आदि कई तरीकों से इंस्टॉलेशन संभव है
- इंट्यूटिव सेटअप और एडवांस कस्टमाइज़ेशन दोनों एक साथ उपलब्ध हैं, साथ ही env variables, JSON सेटिंग, टूल व्हाइटलिस्ट जैसी सुविधाओं के साथ इसे एडवांस यूज़र को ध्यान में रखकर डिज़ाइन किया गया है
Crush
- टर्मिनल वातावरण में रन होने वाला AI कोडिंग एजेंट, जो डेवलपर के पसंदीदा LLM को फ्रीली कनेक्ट करके कोड लिखने, एडिट करने और ऑटोमेशन में मदद करता है
- कई मॉडल (Anthropic, OpenAI, Groq, OpenRouter आदि) को चुनना व बदलना फ्री है, और प्रत्येक सत्र का संदर्भ अलग-अलग संभाला जाता है
- LSP (Language Server Protocol) के जरिए हर भाषा के लिए अतिरिक्त संदर्भ लेकर कोड सहायता को और स्मार्ट बनाता है
- MCP (Model Context Protocol) के जरिये बाहरी सिस्टम, HTTP, कमांड लाइन, SSE आदि स्रोतों से अतिरिक्त जानकारी इकट्ठा करके उपयोग कर सकता है
मुख्य फीचर्स
- मल्टी- मॉडल सपोर्ट: OpenAI, Anthropic, Groq, OpenRouter आदि कई LLM इंटीग्रेशन, ज़रूरत पड़ने पर सीधे अतिरिक्त मॉडल जोड़ने की सुविधा
- सत्र-आधारित वर्कफ़्लो: प्रोजेक्ट-स्तर पर कई वर्क सत्र और संदर्भ अलग करके प्रबंधन
- लचीला मॉडल स्विच: सत्र के बीच में भी मॉडल बदलना संभव, मौजूदा संदर्भ बिना टूटे बना रहता है
- LSP इंटीग्रेशन: Go, TypeScript, Nix जैसी प्रमुख भाषाओं के LSP से कनेक्ट होकर कोड संदर्भ को मजबूत करता है
- एक्सटेंसिबिलिटी: MCP प्रोटोकॉल आधारित बाहरी HTTP/CLI/SSE आदि अतिरिक्त फंक्शनलिटी को आसान तरीके से एक्सटेंड कर सकता है
- वाइड प्लेटफॉर्म सपोर्ट: macOS, Linux, Windows (WSL, PowerShell), FreeBSD, OpenBSD, NetBSD जैसे सभी प्रमुख OS टर्मिनलों पर काम करता है
- इंट्यूटिव कॉन्फ़िगरेशन: अलग से सेटअप की जरूरत बिना तुरंत उपयोग, और जब चाहें प्रोजेक्ट/ग्लोबल JSON सेटिंग सपोर्ट
- मज़बूत ignoring फीचर:
.gitignore,.crushignoreफाइलों से संदर्भ में exclude करने वाली फाइल/डायरेक्टरी मैनेज की जा सकती है - टूल व्हाइटलिस्ट: टूल रन होने से पहले पूर्व-अनुमोदन और ऑटो रन विकल्प उपलब्ध;
--yoloफ़्लैग से पूरा prompt स्किप किया जा सकता है (सावधानी रखें) - कस्टम प्रोवाइडर: OpenAI, Anthropic-कम्पैटिबल API को आसानी से जोड़ें और दाम/संदर्भ जैसे डिटेल विकल्प सेट करें
इंस्टॉलेशन और शुरुआत
- Homebrew, NPM, Arch, Nix, Debian/Ubuntu, Fedora/RHEL आदि कई पैकेज मैनेजर तथा बाइनरी/Go से इंस्टॉलेशन संभव
- पहले रन पर पसंदीदा LLM API Key (OpenAI, Anthropic, Groq आदि) डालना ज़रूरी है, इसे environment variables से भी सेट किया जा सकता है
- environment variables के जरिये कनेक्ट होने वाले प्रमुख LLM:
OPENAI_API_KEY,ANTHROPIC_API_KEY,GROQ_API_KEY,OPENROUTER_API_KEY,GEMINI_API_KEY,VERTEXAI_PROJECTआदि
सेटिंग उदाहरण
- ग्लोबल या प्रोजेक्ट-स्तर JSON फाइलें (./.crush.json, ./crush.json, $HOME/.config/crush/crush.json) से एडवांस ऑप्शंस लागू करें
- LSP सेटिंग: प्रत्येक भाषा के लिए अलग कमांड सेट किया जा सकता है
{ "lsp": { "go": { "command": "gopls" }, "typescript": { "command": "typescript-language-server", "args": ["--stdio"] } } } - MCP सेटिंग: HTTP/CLI/SSE आधारित बाहरी एक्सटेंशन उदाहरण
{ "mcp": { "filesystem": { "type": "stdio", "command": "node", "args": ["/path/to/mcp-server.js"] } } } - फाइल इग्नोर और टूल अप्रूवल
.crushignoreसे खास फाइल/फोल्डर को exclude करें- टूल रन व्हाइटलिस्ट या
--yoloफ़्लैग से पूरे prompt को स्किप करें
उन्नत उपयोगकर्ता फीचर्स
- कस्टम प्रोवाइडर रजिस्ट्रेशन: OpenAI/Anthropic compatible API जोड़ना, मूल्य/संदर्भ आदि के डिटेल विकल्प सेट करना
- लॉगिंग: प्रोजेक्ट-स्तर लॉग फाइल उपलब्ध,
crush logs,crush logs --followजैसी CLI कमांड से रियल-टाइम देखने का विकल्प - डिबग विकल्प:
--debugफ़्लैग या config से डिटेल्ड लॉगिंग enable करें
2 टिप्पणियां
aiderसच में बिल्कुल बेकार है;;Hacker News राय
यह अजीब लगता है कि ज़्यादातर terminal-आधारित AI coding agents text UI को बहुत चमकदार बनाने की कोशिश कर रहे हैं। बहुत सारा खाली स्थान, line art, widgets, ASCII art, gradients, यहाँ तक कि animations भी जोड़ दिए जाते हैं। लेकिन जिन बुनियादी सुविधाओं की ज़रूरत होती है, जैसे मनचाहे key bindings, tab autocomplete, consistent scrollback, या बिना flicker के text rendering, वे गायब रहती हैं। कम से कम यह tool
node.jsमें नहीं लिखा गया है, इसलिए terminal output में अनावश्यक redraw कम करने जैसी performance के मामले में इससे उम्मीद की जा सकती है। लेकिन अगर आप इसे REPL या CLI की उम्मीद से इस्तेमाल करें, तो interaction model वही होने पर भी इसका व्यवहार पूरी तरह अलग है, और editor या reader श्रेणी के Unix TUI से इसका एहसास भी काफी अलग है। सोच रहा हूँ कि क्या यह रुझान सिर्फ Claude Code की नकल है, या इसकी शुरुआत इससे भी पहले हुई थी। इसलिए मैं अब भी Aider को पसंद करता हूँ। यह REPL के ज़्यादा करीब दिखावट और usability देता हैयह tool Charm नाम की कंपनी ने बनाया है, और command windows को आकर्षक बनाना ही उसका mission है। LLM boom से पहले से यह कई वर्षों से सक्रिय है। यह golang के लिए CLI framework और tools बनाती है
terminal में मुझे सबसे पसंद यह है कि मैं command टाइप करूँ और फिर अलग-अलग sources और programs के actions और outputs को log की तरह sequence में लगातार scroll करके देख सकूँ। मैं सच में जो चाहता हूँ, वह एक शक्तिशाली HTML-आधारित multi-program scroll workflow है। लेकिन आजकल की ऐसी कोशिशें दोनों दुनियाओं की कमियाँ जोड़ देने जैसी लगती हैं। अच्छा UI मैं किसी बेहतर rendering system में देखना चाहूँगा
यह text UI रुझान असल में AI agents से पहले से ही charmbracelet की अपनी खास शैली रहा है। पारंपरिक TUI की तुलना में मुझे यह इसलिए पसंद है क्योंकि key bindings सहज रूप से खोजे जा सकते हैं
शायद इन interfaces के तेज़ी से fans और developers जुटाने का एक कारण यह है कि बहुत से लोग मूल रूप से graphical IDE-style editors के अभ्यस्त हैं। हर developer सिर्फ terminal में काम नहीं करता। (मेरे तो अब भी ऐसे दिन होते हैं जब मैं X/Wayland भी चालू नहीं करता)
कम से कम emacs में Claude Code इस्तेमाल किया जा सकता है https://github.com/stevemolitor/claude-code.el
इस tool की अच्छी बातों में से एक यह है कि यह अभी शुरुआती चरण में है, इसलिए code बहुत स्पष्ट और modular है। tool calling, sessions, auto summarization, persistence management जैसी चीज़ों के साथ अगर आप किसी agent को design करना चाहते हैं, तो यह एक बेहतरीन blueprint है। इस commit link को ज़रूर bookmark कर लेने लायक है
जो लोग demo GIF में वास्तव में क्या हो रहा है, उसे पढ़ना चाहते हैं, उनके लिए मैंने
ffmpegसे इसे धीमा करके video बनाकर अपलोड किया है https://share.cleanshot.com/XBXQbSPPमैंने इसे लगभग 15 मिनट तक गंभीरता से इस्तेमाल किया। Claude Code की तुलना में इसके फायदे हैं सुंदर UI, एक उपयोगी sidebar जिसमें बदली गई files और cost जैसी चीज़ों को track किया जा सकता है, और changes accept करने के लिए आसान UX (hotkeys, आसानी से पढ़ा जाने वाला diff)। दूसरी ओर नुकसान यह हैं कि कई models को मिलाकर इस्तेमाल नहीं किया जा सकता, और directory में बहुत सी अनावश्यक binary files जुड़ जाती हैं। शुरुआती init एक
CHARM.mdfile बनाता है, लेकिन वह उस जानकारी से मेल नहीं खाती जिसे मैं model के साथ साझा करना चाहता हूँ। उदाहरण के लिए, यह नहीं बताता कि मेरे Go test cases PascalCasing का उपयोग करते हैं। साथ ही,Ctrl+Cसे बाहर निकलने पर मेरा terminal crash हो गयाCHARM.mdबनाने वाली बात पर, अब सच में अच्छा होगा अगर सब लोग किसी एक अच्छी तरह जानी-पहचानी single agent instruction file standard (जैसेAGENT.md) पर सहमत हो जाएँ। यह भले ही Amp अपने CLI tool के लिए प्रचारित कर रहा standard हो, फिर भी उसकी विडंबना जानते हुए मैं इस तरीके का समर्थन करता हूँ https://ampcode.com/AGENT.md देखें। या फिर ऐसा एक workaround hack भी है https://kau.sh/blog/agents-md/असली महत्वपूर्ण सवाल यह है कि नए agents में कौन-सा local models को ठीक से support करता है। मैं external API dependency हटाना चाहता हूँ, और कुछ हद तक performance sacrifice करने के लिए तैयार हूँ
Crush में Ollama support जोड़ने का issue चल रहा है (2 हफ्ते से)
ज़्यादातर agents OpenAI-compatible endpoints पर काम करते हैं
OpenHands में आप अपनी पसंद का कोई भी LLM configure कर सकते हैं https://github.com/All-Hands-AI/OpenHands
Aider भी local models support करने का दावा करता है, लेकिन मैंने खुद इसे आज़माया नहीं है https://aider.chat/docs/llms.html
काश Claude Code, opencode, aider, cortex जैसे इन सभी नए tools की तुलना करने वाली कोई तालिका होती। हर tool कैसे काम करता है या उसमें फर्क क्या है, यह एक नज़र में आसानी से समझ नहीं आता
commercial models का उपयोग करके तुलना या benchmarking करना cost की वजह से बहुत मुश्किल है। हाल ही में जब मैंने एक paper लिखा, तो कई SOTA commercial models का evaluation करने में ही 10,000 डॉलर से ज़्यादा खर्च हो गए। open models के साथ तुलना सस्ती थी, लेकिन reviewers “best” के साथ comparison चाहते हैं, इसलिए बचने का रास्ता नहीं था। इसके अलावा commercial models की internal structure या stack transparent नहीं होती और कभी भी बदल सकती है, इसलिए यह बहुत अप्रभावी है। मुझे नहीं लगता कि academic research में commercial models के साथ comparison को हर हाल में अनिवार्य करना उचित है
याद है कि opencode इसका मूल नाम था, लेकिन developers के बीच विवाद हुआ और फिर नाम बदल दिया गया
performance सिर्फ tool पर निर्भर नहीं करती, बल्कि इस्तेमाल किए गए model, codebase (context), और दिए गए task (prompt) पर भी निर्भर करती है। ये factors एक-दूसरे से स्वतंत्र नहीं हैं, और उनके combination के अनुसार performance में बड़ा फर्क आता है। उदाहरण के लिए, Claude Sonnet 4 और Claude Code backend Python features लागू करने में अच्छे थे, जबकि Gemini 2.5 Pro frontend React code edits में बेहतर था। यानी सभी variables को स्थिर रखकर सिर्फ tools की तुलना नहीं की जा सकती; toolmodelcontext*prompt जैसे combinations की ज़रूरत होती है। 16x Eval इस पहलू को कुछ हद तक संभालता है, लेकिन tool जैसे factors अभी इसमें शामिल नहीं हैं https://eval.16x.engineer/
"glamorous" ब्रिटिश English में भी इस्तेमाल होने वाला शब्द है https://dictionary.cambridge.org/dictionary/english/glamorous
मैं पिछले कुछ हफ्तों से Crush इस्तेमाल कर रहा हूँ, और इसे लेकर सच में बहुत उत्साहित हूँ। मैं लंबे समय से Charm को follow कर रहा हूँ, और यह उन गिनी-चुनी teams में से है जो developer experience को सच में समझती हैं और लगातार ऐसे tools बनाती हैं जिन्हें लोग पसंद करते हैं। AI coding race में इसका इतनी जल्दी शामिल होना भी एक अच्छा संकेत है। साफ दिखता है कि यह tool ऐसे लोगों ने बनाया है जो खुद वास्तव में इसका उपयोग करते हैं
एक और tool आ गया, और इस बार design सच में अच्छा है। मैं इसे ज़रूर test करूँगा। हर tool में जो बात खटकती है (EDIT: opencode में GitHub authentication संभव है) वह यह है कि मैं अपनी subscription के ज़रिए किसी monthly flat-rate service (github copilot, claude code, openai codex, cursor आदि) में सीधे authenticate नहीं कर सकता। अगर मैं service की subscription ले चुका हूँ लेकिन interface पसंद नहीं है, तो उसे अपनी पसंद से बदल पाना बहुत अच्छा होगा
LSP-enhanced: Crush आम तौर पर इस्तेमाल होने वाले तरीके की तरह LSP को अतिरिक्त context के रूप में उपयोग करता है। मेरे लिए यह सबसे दिलचस्प feature है। multi-session और project features में भी दिलचस्पी है