AI एजेंट कोडिंग के लिए मेरा टर्मिनल सेटअप
Ghostty, Yazi, Fish और LazyGit से कई AI एजेंट्स को पैरेलल में चलाना - एजेंटिक वर्कफ़्लो के लिए एक हल्का टर्मिनल स्टैक।
AI-असिस्टेड कोडिंग में bottleneck अब एजेंट नहीं रहा। Claude Code, Aider, और Codex CLI जैसे टूल्स काफ़ी capable हैं। असली constraint इंसान की ability है - कई एजेंट्स को parallel में orchestrate करना, उनके output को monitor करना, जब वे भटकें तो correct करना, और उनके काम को merge करना।
मैंने इसके लिए एक terminal-first सेटअप अपनाया है। चार टूल्स, सभी lightweight, सभी composable: टर्मिनल के लिए Ghostty, फ़ाइल navigation के लिए Yazi, shell के लिए Fish, और Git operations के लिए LazyGit। यहाँ बताता हूँ कि हर एक अपनी जगह क्यों deserve करता है।
एजेंटिक कोडिंग के लिए टर्मिनल क्यों
AI कोडिंग एजेंट्स CLI-native हैं। वे फ़ाइलें पढ़ते हैं, commands execute करते हैं, और terminal में output produce करते हैं। जब आप तीन एजेंट्स simultaneously चलाना चाहते हैं - एक feature develop कर रहा है, एक bug fix कर रहा है, एक tests लिख रहा है - तो आपको तीन shell sessions side by side चाहिए।
IDE भी यह कर सकता है, लेकिन cost के साथ। VS Code के साथ कई integrated terminals, extensions, language servers, और editor ख़ुद आसानी से 2-4 GB RAM consume कर सकता है। वह memory आपके AI एजेंट्स use कर सकते थे। हर context token, हर API call, हर file read same system resources के लिए compete करती है।
एक lightweight terminal सेटअप इस equation को reverse करता है। मैं जो टूल्स use करता हूँ, वे सब मिलकर एक Electron-based editor से बहुत कम resources लेते हैं, machine के resources उसके लिए available रखते हैं जो ज़रूरी है: एजेंट्स जो असली काम कर रहे हैं।
Ghostty - नींव
Ghostty एक GPU-accelerated terminal emulator है जो macOS पर Metal और Linux पर OpenGL use करता है। यह Zig में लिखा गया है, और तेज़ है - benchmarks दिखाते हैं कि plain text rendering iTerm2 और Kitty से लगभग 4 गुना तेज़ है, heavy load में भी लगभग 60fps maintain करता है।
Agentic workflows के लिए, key feature native splits और tabs है। tmux की ज़रूरत नहीं। Ghostty application level पर pane splitting handle करता है, जिसका मतलब है smooth rendering, सही font scaling, और zero configuration ceremony। नया split खोलें, एजेंट start करें, और शुरू हो जाएँ।
मेरा typical layout चार panes का है:
- ऊपर बाएँ: Feature branch पर काम करता Claude Code
- ऊपर दाएँ: दूसरा एजेंट अलग task पर
- नीचे बाएँ: File changes monitor करता Yazi
- नीचे दाएँ: Review और commits के लिए LazyGit
जब LLM एक लंबा response stream करता है, कुछ terminals तेज़ output पर अटक जाते हैं। Ghostty का GPU rendering बिना frame drop या lag के इसे handle करता है, जो कई streams को एक साथ देखते समय ज़रूरी है।
Yazi - एजेंट्स काम करें, आप navigate करें
जब तीन एजेंट्स आपके codebase में files modify कर रहे हों, आपको जल्दी से देखने का तरीका चाहिए कि क्या बदल रहा है। Yazi Rust में लिखा एक terminal file manager है जिसमें पूरी तरह asynchronous I/O है। हर operation non-blocking है, तो बड़ी directory navigate करते समय background में file preview load होने पर कभी freeze नहीं होता।
मैं एक pane में Yazi खुला रखता हूँ और इसे इन कामों के लिए use करता हूँ:
- Changes monitor करना - real-time में देखना कि एजेंट्स files create और modify कर रहे हैं
- Files preview करना - editor खोले बिना syntax-highlighted code, images, और PDFs भी terminal में ही देखना
- Bulk rename - जब एजेंट ने ऐसी naming conventions वाली files generate की हों जिन्हें adjust करना हो
- Directories के बीच तेज़ी से jump करना - bookmarks और search feature use करके
Plugin system (Lua-based) से Yazi को अपने workflow के हिसाब से customize किया जा सकता है। मैं कुछ plugins use करता हूँ Git status indicators और quick directory jumping के लिए, लेकिन defaults भी काफ़ी अच्छे हैं।
Fish Shell - Cognitive load कम करना
जब आप चार terminal panes के बीच switch कर रहे हों, हर एक अलग task चला रहा हो, cognitive load तेज़ी से बढ़ता है। आप एक pane पर नज़र डालते हैं और याद करना पड़ता है कि वह क्या कर रहा था, re-orient होना पड़ता है, command type करनी पड़ती है, और अगले पर move करना पड़ता है।
Fish ऐसे features से यह friction कम करता है जो out of the box काम करते हैं:
- Autosuggestions: Fish history के आधार पर आपके command का बाकी हिस्सा gray text में suggest करता है। Right arrow press करें accept करने के लिए। कोई plugin नहीं चाहिए।
- Syntax highlighting: Valid commands एक color में दिखते हैं, invalid दूसरे में। Enter press करने से पहले typos पकड़ सकते हैं।
- Tab completion: Fish man pages parse करके automatically completions generate करता है। Command type करें, Tab press करें, contextual options मिलें।
zsh से fundamental difference है zero configuration। कोई oh-my-zsh install नहीं करना, कोई .zshrc maintain नहीं करना, कोई plugin manager update नहीं करना। Fish installation के तुरंत बाद काम करता है। जब आप एजेंट्स orchestrate करने पर focused हों, shell configuration debug करना आख़िरी चीज़ है जो आप करना चाहेंगे।
LazyGit - Worktree-based parallel development
यहाँ यह सेटअप parallel agentic work के लिए सच में चमकता है। LazyGit Git के लिए एक terminal UI है, और इसका worktree support multi-agent development को practical बनाता है।
Pattern straightforward है: हर एजेंट अलग Git worktree में काम करता है। Worktree आपकी repository की एक linked copy है जो अलग directory में अलग branch checkout करती है। Agent A ./feature-auth/ में feat/auth branch पर काम करता है। Agent B ./fix-perf/ में fix/performance branch पर काम करता है। वे कभी एक-दूसरे की files नहीं छूते, इसलिए parallel काम के दौरान merge conflicts नहीं होते।
LazyGit इस workflow को manage करना visual और fast बनाता है:
- Worktrees create करना - एक key (
w) से - Worktrees के बीच switch करना - हर एजेंट ने क्या किया review करने के लिए
- Interactive rebase - merge से पहले एजेंट की commit history clean करने के लिए
- Visual diffs - branches के बीच changes side by side inspect करने के लिए
- Undo/redo - reflog integration के through, अगर एजेंट unexpected result produce करे तो
zpress करके rollback
Visual Git tool के बिना, कई worktrees manage करने का मतलब है directories के बीच cd commands और git log outputs juggle करना। LazyGit यह सब एक navigable interface में compress कर देता है।
सब कुछ एक साथ
एक typical session ऐसा दिखता है: मैं Ghostty खोलता हूँ और चार panes में split करता हूँ। LazyGit से दो worktrees बनाता हूँ - एक feature के लिए, एक bug fix के लिए। ऊपर बाएँ pane में feature worktree की तरफ़ point करता Claude Code start करता हूँ, और ऊपर दाएँ pane में bug fix worktree की तरफ़ point करता दूसरा एजेंट start करता हूँ। नीचे बाएँ Yazi है, जहाँ दोनों worktree directories browse कर सकता हूँ और changes real-time में preview कर सकता हूँ। नीचे दाएँ LazyGit है, जहाँ diffs review करता हूँ, changes stage करता हूँ, और finally दोनों branches merge करता हूँ।
Key insight यह है कि इनमें से कोई भी tool resources के लिए fight नहीं करता। Ghostty, Yazi, Fish, और LazyGit सभी compiled, native programs हैं। कोई Electron runtime नहीं, कोई JVM नहीं, कोई Python interpreter background में memory खा रहा नहीं। Machine के resources AI एजेंट्स के लिए available रहते हैं, जहाँ असली compute होता है।
अंत में
Best agentic coding सेटअप इस बारे में नहीं है कि आप कौन सा AI model use करते हैं - यह human layer के बारे में है। कई एजेंट्स चलाना, उनके output monitor करना, भटकने पर correct करना, और उनके काम को cleanly merge करना - ये abilities तय करती हैं कि आप actually कितना accomplish करते हैं।
यह stack opinionated है लेकिन minimal है। Rendering के लिए Ghostty, files के लिए Yazi, shell के लिए Fish, Git के लिए LazyGit। हर tool fast, lightweight, और composable है। अगर आप AI coding एजेंट्स use कर रहे हैं और अभी तक parallel terminal workflow try नहीं किया है, तो इनमें से एक tool चुनें और देखें कि यह आपका process कैसे बदलता है।
न्यूज़लेटर से जुड़ें
मेरे नवीनतम प्रोजेक्ट्स, लेखों और AI तथा वेब डेवलपमेंट प्रयोगों के बारे में अपडेट प्राप्त करें।