4 पॉइंट द्वारा justn 26 일 전 | 3 टिप्पणियां | WhatsApp पर शेयर करें

पिछले कुछ दिनों में बनाया गया एक छोटा CLI side project साझा कर रहा हूँ.

shell alias अच्छे होते हैं. तेज़, सरल, और हाथ में जल्दी बैठ जाते हैं.

लेकिन मुझे लगा कि alias को लगातार .zshrc में ठूंसते जाने का तरीका ज़्यादा समय तक टिकाऊ नहीं है.

शुरुआत में सब ठीक लगता है.

alias gs='git status -sb'  
alias dc='docker compose'  

समस्या यह है कि यह लगातार बढ़ता ही जाता है.

git alias, docker alias, pnpm alias, ssh alias, और project-specific alias एक ही फ़ाइल में जमा होते जाते हैं, और बाद में मैं यह भी भूल जाता हूँ कि मैंने क्या-क्या बना रखा है.
alias साफ़ तौर पर productivity के लिए बनाए जाते हैं, लेकिन एक समय बाद वे memory test बन जाते हैं.

इससे भी ज़्यादा अफ़सोस की बात shell history थी.

जो commands और command sequences मैं बार-बार टाइप करता हूँ, वे पहले से ही history में जमा हैं. लेकिन ज़्यादातर shell उन्हें बस पुराने रिकॉर्ड की तरह ही छोड़ देते हैं.

इसीलिए मैंने ganbatte बनाया. इसका binary नाम gnb है.

ganbatte एक CLI है जो shell history का विश्लेषण करके बार-बार चलने वाले commands को alias candidates और दोहराए जाने वाले command sequences को workflow candidates के रूप में सुझाता है.

brew install bssm-oss/tap/ganbatte  
  
gnb suggest   # दोहराए जाने वाले commands और workflow candidates ढूंढें  
gnb migrate   # मौजूदा shell alias इम्पोर्ट करें  
gnb           # TUI में ब्राउज़ करें  

उदाहरण के लिए, यह कुछ ऐसा दिख सकता है.

=== Alias Suggestions ===  
  1. c = claude  
     Used 5 times · saves ~25 keystrokes  
  
=== Workflow Suggestions ===  
  1. git-add  
     Step 1: git add .  
     Step 2: git commit -m "update"  
     Step 3: git push  
  
Applying all suggestions would save ~89 keystrokes based on your history.  

अगर Atuin यह अच्छी तरह याद रखता है कि “मैंने क्या टाइप किया था”, तो ganbatte उससे ज़्यादा उस दिशा में है जहाँ “मैं जो बार-बार टाइप करता हूँ” उसे दोबारा इस्तेमाल किए जा सकने वाले commands में बदला जाए.

मौजूदा alias भी इम्पोर्ट किए जा सकते हैं.

gnb migrate  

बिना arguments के चलाने पर आप TUI में alias और workflow खोज सकते हैं और चला सकते हैं.

gnb  

आप global alias और project-specific .ganbatte.toml को अलग-अलग इस्तेमाल कर सकते हैं, और जोखिम भरे commands पर confirmation prompt भी लगाया जा सकता है.

[alias.nuke]  
cmd = "git reset --hard HEAD"  
confirm = true  

एक महत्वपूर्ण बात यह है कि सब कुछ local पर चलता है.

shell history या track log सर्वर पर नहीं भेजे जाते. telemetry, account, cloud sync, या AI command generation जैसी कोई चीज़ नहीं है.

यह अभी भी एक छोटा और थोड़ा rough side project है, लेकिन जो लोग रोज़ terminal में वही commands बार-बार टाइप करते हैं, उनके लिए इसका फ़ायदा तुरंत महसूस हो सकता है, इसलिए इसे साझा कर रहा हूँ.

GitHub: https://github.com/bssm-oss/ganbatte

3 टिप्पणियां

 
recast7838 19 일 전

धन्यवाद

 
runableapp 26 일 전

आइडिया अच्छा है।

 
justn 25 일 전

धन्यवाद