टर्मिनल वेलोसिटी: AI एब्स्ट्रैक्शन लेयर के रूप में CLI
यह अंग्रेज़ी मूल लेख का मशीनी अनुवाद है। कुछ बारीकियाँ छूट सकती हैं, इसलिए संदर्भ के लिए अंग्रेज़ी संस्करण ही मान्य है। अंग्रेज़ी में मूल लेख पढ़ें
संक्षेप में
आधुनिक AI लैब में आपकी उत्पादकता आपके कॉन्टेक्स्ट-स्विचिंग के बोझ से सीमित होती है। अगर आप एरर लॉग या कमिट मैसेज पेस्ट करने के लिए बार-बार alt-tab करके ब्राउज़र में जा रहे हैं, तो आप अपना ध्यान गँवा रहे हैं। मैं सब कुछ एक बेहद कस्टमाइज़्ड WSL2 इंस्टेंस से चलाता हूँ, क्योंकि टर्मिनल “इंटेलिजेंस लेयर” का मूल इंटरफ़ेस है। OS को सीधे LLM में पाइप करके मैंने अपना “बेवकूफ़ी भरा काम” (फ़ॉर्मैटिंग, कमिट मैसेज लिखना, लॉग खोजना) लगभग शून्य कर दिया है।
यह बदलाव वैचारिक नहीं था। मेरा IDE PowerShell और Bash कमांड पर बार-बार फ़ेल होता रहा, और टर्मिनल ने बस काम कर दिया। पूरा “हृदय-परिवर्तन” इतना ही था।
आर्किटेक्चर
मेरा वर्कफ़्लो शेल को एक कंपोज़ेबल डेटा पाइपलाइन की तरह देखता है। किसी भी कमांड का आउटपुट, चाहे वह फ़ेल हुआ बिल्ड हो, git diff हो या curl का जवाब, बस टेक्स्ट है। और टेक्स्ट ही LLM की मुख्य भाषा है।
| घटक | टूल / कॉन्फ़िग | तर्क |
|---|---|---|
| शेल | Zsh + Oh My Zsh | प्लगइन इकोसिस्टम और बेहतर टैब-कम्प्लीशन। |
| टर्मिनल | Windows Terminal | Windows के लिए सबसे अच्छी मल्टी-टैब सुविधा और GPU रेंडरिंग। |
| मल्टीप्लेक्सर | Tmux | WSL2 रीस्टार्ट के बाद भी बने रहने वाले सेशन। |
| फ़ॉन्ट | MesloLGS NF | Powerlevel10k और आइकन के लिए ज़रूरी। |
| AI CLI | fabric / ollama | टेक्स्ट को “दिमाग़ों” तक पाइप करने के हल्के रैपर। |
निर्माण
असली ताक़त आपकी .zshrc में रहती है। साधारण कामों के लिए मैं जटिल एजेंट इस्तेमाल नहीं करता; मैं ऐसे शेल फ़ंक्शन इस्तेमाल करता हूँ जो मेरे GekroLLMClient से बात करते हैं।
1. AI-संचालित Git कमिट
कमिट मैसेज में “fix” लिखना बंद कीजिए। यह फ़ंक्शन आपके बदलाव स्टेज करता है, diff को एक लोकल Llama 3 इंस्टेंस को भेजता है और एक कन्वेंशनल कमिट मैसेज बना देता है।
# Generate AI commit message from staged changes
aic() {
local diff=$(git diff --cached)
if [ -z "$diff" ]; then
echo "No staged changes found."
return 1
fi
echo "Generating commit message..."
local msg=$(echo "$diff" | ollama run llama3 "Generate a concise, one-line conventional commit message for this diff. No preamble.")
git commit -m "$msg"
}
2. Explain पाइप
जब भी कोई कमांड फ़ेल होती है, मैं उसे पाइप कर देता हूँ। अब C++ के अजीब एरर कोड गूगल नहीं करने पड़ते।
# Pipe any output to LLM for instant explanation
alias explain="ollama run llama3 'Explain this error output and suggest a fix concisely:'"
# Usage:
# npm run build | explain
3. WSL2 कॉन्फ़िगरेशन नोट
Windows पर इसे नेटिव Linux जैसा अनुभव बनाने के लिए आपको पाथ और फ़ॉन्ट की ख़ामियाँ ठीक करनी होंगी।
Windows Terminal के settings.json का अंश:
{
"guid": "{57605e5d-1f0f-5602-9ae4-0466a014995f}",
"name": "Ubuntu-22.04",
"source": "Windows.Terminal.Wsl",
"font": {
"face": "MesloLGS NF",
"size": 12
},
"startingDirectory": "//wsl$/Ubuntu-22.04/home/rohit"
}
सुझाव: NTFS/9P की परफ़ॉर्मेंस पेनल्टी से बचने के लिए Windows ऐप्लिकेशन में हमेशा //wsl$/ पाथ फ़ॉर्मैट इस्तेमाल करें।
समझौते
इसे सेट करने में मेरे वे घंटे लग गए जिनका मैंने बजट नहीं बनाया था। मैं एक मॉडल से WSL2 और Zsh का कॉन्फ़िगरेशन समझाने को कह रहा था, और उसने मुझे चक्कर में डाल दिया (यह Gemini की दूसरी पीढ़ी थी): पूरे आत्मविश्वास से एक कमांड थमा देता, मुझे उसे पेस्ट करते देखता, उसे फ़ेल होते देखता, फिर दूसरी थमा देता। मैं असली डॉक्यूमेंटेशन पढ़कर ही मंज़िल तक पहुँचा, जैसे 2015 में पढ़ते थे। अगर आप यह सेटअप कर रहे हैं, तो एक पूरी दोपहर रखिए और शॉर्टकट छोड़ दीजिए।
इंजीनियरों की सबसे बड़ी चूक जो मैं देखता हूँ, वह है अलियास का अतिभार। मेरे पास कभी 200+ अलियास थे और मैं कमांड टाइप करने में जितना समय लगाता उससे ज़्यादा समय शॉर्टकट याद करने में लगाता था। तब से मैंने उन्हें छाँटकर “हाई-फ़्रीक्वेंसी फ़ाइव” तक सीमित कर दिया है: aic (AI कमिट), gup (Docker Compose Up), ld (लॉग डंप), pf (Python फ़ॉर्मैट) और explain।
परिचालन की हक़ीक़त: संवेदनशील लॉग को क्लाउड LLM में पाइप करना सुरक्षा में सेंध का इंतज़ार है। मैंने यह तब सीखा जब मैंने ग़लती से एक प्रोडक्शन .env फ़ाइल, जिसमें क्लियर-टेक्स्ट क्रेडेंशियल थे, क्लाउड प्रोवाइडर को भेज दी, क्योंकि वह एक grep में फँस गई थी जिसे मैंने “explain” अलियास में पाइप किया था। शेल पाइपिंग के लिए हमेशा लोकल Ollama इंस्टेंस इस्तेमाल करें ताकि आपके एनवायरनमेंट वेरिएबल आपकी मशीन पर ही रहें।
एक और बात, और इससे शीर्षक की हवा थोड़ी निकल जाती है। अब मैं दोनों इस्तेमाल करता हूँ। टर्मिनल ने वे काम जीत लिए जिनमें वह अच्छा है, GUI ने अपने काम रख लिए, और रास्ते में कहीं मैंने गिनती रखना छोड़ दिया। अगर आप साफ़ अंत वाली हृदय-परिवर्तन की कहानी के लिए आए थे, तो ईमानदार संस्करण यही है।
आगे की राह
मैं फ़िलहाल एक टर्मिनल-से-एक्शन ब्रिज बना रहा हूँ। किसी एरर को सिर्फ़ समझाने के बजाय शेल फ़ंक्शन एक sed या patch कमांड सुझाएगा, और मैं Y दबाकर सुधार सीधे लागू कर सकूँगा। टर्मिनल अप्रचलित नहीं हो रहा; वह हमारे बनाए हर एजेंट का कॉकपिट बन रहा है।
लेखक
Rohit BuraniAI इंजीनियर, जो लैब से लोकल-फ़र्स्ट सिस्टम, सेल्फ़-होस्टेड इंफ्रास्ट्रक्चर और स्वायत्त टूल बनाते हैं।