gekro
GitHub LinkedIn
Workflow

टर्मिनल व्हेलॉसिटी: AI ॲब्स्ट्रॅक्शन लेयर म्हणून CLI

7 मिनिटांचे वाचन

हा इंग्रजी मूळ लेखाचा यांत्रिक अनुवाद आहे. काही बारकावे हरवू शकतात, म्हणून संदर्भासाठी इंग्रजी आवृत्तीच ग्राह्य धरावी. मूळ लेख इंग्रजीत वाचा

थोडक्यात

AI इंजिनिअरिंगमध्ये GUI अडथळा का ठरते आणि WSL2 व Zsh वापरून वेगवान कमांड-लाइन वर्कफ्लो कसा बनवायचा.
GUI हे शोधासाठी बनवलेले खोटे आहे, वेगासाठी नाही. AI डेव्हलपमेंटमध्ये टर्मिनल हाच एकमेव इंटरफेस आहे जो विचारांच्या वेगाशी जुळवून घेतो. हा लेख त्या विशिष्ट Zsh फंक्शन्स आणि WSL2 कॉन्फिगरेशनचा तपशील देतो ज्यांच्या मदतीने मी माउसला हात न लावता सिस्टीमचे आउटपुट थेट LLM मध्ये पाइप करतो.

आधुनिक AI लॅबमध्ये तुमची उत्पादकता कॉन्टेक्स्ट-स्विचिंगच्या ओझ्याने मर्यादित होते. एरर लॉग किंवा कमिट मेसेज पेस्ट करण्यासाठी तुम्ही सतत alt-tab करून ब्राउझरमध्ये जात असाल, तर तुम्ही लक्ष गमावत आहात. मी सर्व काही एका खूप कस्टमाइझ केलेल्या WSL2 इन्स्टन्समधून चालवतो, कारण टर्मिनल हा “इंटेलिजन्स लेयर” चा मूळ इंटरफेस आहे. OS ला थेट LLM मध्ये पाइप करून मी माझे “मूर्खपणाचे काम” (फॉरमॅटिंग, कमिट मेसेज लिहिणे, लॉग शोधणे) जवळजवळ शून्यावर आणले आहे.

हा बदल वैचारिक नव्हता. माझा IDE PowerShell आणि Bash कमांडवर पुन्हा पुन्हा अपयशी ठरत होता, आणि टर्मिनलने फक्त काम करून दाखवले. संपूर्ण “धर्मांतर” एवढेच होते.

आर्किटेक्चर

माझा वर्कफ्लो शेलला एक कंपोझेबल डेटा पाइपलाइन म्हणून पाहतो. कोणत्याही कमांडचे आउटपुट, मग ते अयशस्वी बिल्ड असो, git diff असो किंवा curl चे उत्तर, फक्त मजकूर असते. आणि मजकूर ही LLM ची मुख्य भाषा आहे.

घटकटूल / कॉन्फिगकारण
शेलZsh + Oh My Zshप्लगइन इकोसिस्टीम आणि उत्कृष्ट टॅब-कम्प्लीशन.
टर्मिनलWindows TerminalWindows साठी सर्वोत्तम मल्टी-टॅब आणि GPU रेंडरिंग.
मल्टिप्लेक्सरTmuxWSL2 रीस्टार्टनंतरही टिकणारी सेशन्स.
फॉन्टMesloLGS NFPowerlevel10k आणि आयकॉनसाठी आवश्यक.
AI CLIfabric / 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 Burani

लेखक

Rohit Burani

AI इंजिनिअर, जे लॅबमधून लोकल-फर्स्ट सिस्टीम, सेल्फ-होस्टेड इन्फ्रास्ट्रक्चर आणि स्वायत्त टूल्स तयार करतात.

वाचल्याबद्दल धन्यवाद.

हा लेख आवडला असेल तर तो तुमच्या नेटवर्कसोबत शेअर करा.

← ब्लॉगवर परत जा