টার্মিনাল ভেলোসিটি: 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 ইঞ্জিনিয়ার, যিনি ল্যাব থেকে লোকাল-ফার্স্ট সিস্টেম, সেলফ-হোস্টেড অবকাঠামো এবং স্বয়ংক্রিয় টুল তৈরি করেন।