leonardoaguiar.com coder-leo
भाषा

coder-leo

टर्मिनल के लिए कोडिंग एजेंट जो लोकल मॉडल पर चलता है। यह कोड पढ़ता, लिखता और बदलता है, कमांड चलाता है, प्रोजेक्ट में खोजता है और टास्क लिस्ट रखता है, और इसे चलाने वाला मॉडल Ollama या OpenAI चैट API वाले किसी भी सर्वर (LM Studio, llama-server, vLLM, mlx) के ज़रिए आपकी अपनी मशीन पर चलता है। यह Claude Code की तरह काम करता है, और छोटी कॉन्टेक्स्ट विंडो के लिए बना है: यह विंडो को नापता है, हर टूल के नतीजे को बजट में रखता है, पुराने नतीजे साफ़ करता है, ज़रूरत पड़ने पर बातचीत का हिस्सों में सारांश बनाता है, और मॉडल को ऐसे टूल देता है जो सब कुछ पढ़े बिना चीज़ें ढूँढ लें।

इंस्टॉल

macOS, Homebrew के साथ, दो कमांड, एक बार:

brew tap leonardoaguiar/coder-leo https://leonardoaguiar.com/apps/coder-leo/tap.git
brew install leonardoaguiar/coder-leo/coder-leo

brew upgrade नए वर्शन लाता है, और coder-leo update भी।

Linux (कोई भी डिस्ट्रीब्यूशन, x86_64 या ARM), Termux के अंदर Android, और WSL के अंदर Windows:

curl -fsSL https://leonardoaguiar.com/apps/coder-leo/install.sh | sh

यह मशीन के लिए सही बिल्ड चुनता है, उसका प्रकाशित SHA-256 जाँचता है और बाइनरी, मैन पेज और शेल कम्प्लीशन को /usr/local (ज़रूरत पड़ने पर sudo माँगकर), ~/.local या Termux के अपने फ़ोल्डर में रख देता है। दोबारा चलाने से अपडेट होता है; sh -s -- --uninstall हटा देता है।

आपको एक मॉडल सर्वर भी चाहिए, जिसमें टूल सपोर्ट करने वाला मॉडल हो:

शुरू करें

किसी प्रोजेक्ट में टर्मिनल खोलें और coder-leo चलाएँ। पहली बार लिस्ट से एक मॉडल चुनें; वह याद रहता है। जो चाहिए वह लिखें; /help सारे कमांड दिखाता है।

coder-leo                         इस डायरेक्टरी में एक सेशन
coder-leo "add tests for parser"  पहले प्रॉम्प्ट के साथ एक सेशन
coder-leo -p "explain main.go"    एक जवाब, फिर बाहर (stdin भी पढ़ता है)
coder-leo -c                      यहाँ का सबसे नया सेशन जारी रखें
coder-leo --sessions              कोई पुराना सेशन चुनें
coder-leo --list                  इंस्टॉल किए गए मॉडल

स्वागत बॉक्स मॉडल, कॉन्टेक्स्ट विंडो, अनुमति मोड और डायरेक्टरी दिखाता है। प्रॉम्प्ट के नीचे की लाइन मोड, मॉडल, कॉन्टेक्स्ट कितना भरा है और git ब्रांच दिखाती है।

इसके साथ काम करना

टूल

मॉडल इन टूल के ज़रिए काम करता है, नाम Claude Code जैसे ही हैं (यह दूसरे एजेंटों के नाम भी समझता है, जैसे read_file या run_command):

टूलक्या करता है
Readएक फ़ाइल, लाइन नंबर के साथ, offset और limit के साथ; विज़न मॉडल के लिए इमेज; pdftotext के ज़रिए PDF; नोटबुक सेल के रूप में। पूरी पढ़ी गई बड़ी फ़ाइल अपनी रूपरेखा और शुरुआत लौटाती है
Write, Editफ़ाइल बनाना; एक सटीक टुकड़ा बदलना (कॉपी हुए लाइन नंबर और इंडेंटेशन के फ़र्क़ सह लेता है)
LS, Glob, Grepलिस्ट करना, पैटर्न से फ़ाइलें ढूँढना, रेगुलर एक्सप्रेशन से कंटेंट खोजना (कंटेंट, फ़ाइल नाम या गिनती, कॉन्टेक्स्ट के साथ)
Searchसादी भाषा के सवाल के लिए सबसे प्रासंगिक फ़ाइलें और लाइनें, आइडेंटिफ़ायर के शब्दों से रैंक की हुई
Outline, RepoMapकिसी फ़ाइल के फ़ंक्शन और टाइप; रिपॉज़िटरी का नक़्शा, इस हिसाब से रैंक किया हुआ कि कोड हर फ़ाइल का कितना ज़िक्र करता है
Bash, BashOutput, KillShellटाइमआउट के साथ कमांड चलाना; लंबे कमांड बैकग्राउंड में
WebFetch, WebSearchपेज को पढ़ने लायक टेक्स्ट में; वेब खोज
TodoWriteटास्क लिस्ट, बदलते ही दिखती है
Taskनई कॉन्टेक्स्ट विंडो वाला सब-एजेंट (explore, plan, general, review, या आपका अपना) जो सिर्फ़ अपनी रिपोर्ट लौटाता है
Recallपूरी बातचीत में खोज, उसमें भी जो सारांश में समेट दी गई
AskUserQuestion, ExitPlanMode, Skillआपसे कुछ पूछना; प्लान पेश करना; स्किल लोड करना
mcp__server__toolआपके MCP सर्वरों के टूल

कॉन्टेक्स्ट विंडो

लोकल मॉडलों की विंडो छोटी होती है (16 GB मशीन पर 8k से 32k टोकन आम है), और लंबा प्रॉम्प्ट दोबारा पढ़ने में हर मोड़ पर कई सेकंड लगते हैं। coder-leo विंडो को चालू रखता है:

अनुमतियाँ

चार मोड: default बदलाव करने और कमांड चलाने से पहले पूछता है; acceptEdits प्रोजेक्ट के अंदर के बदलाव जाने देता है और कमांड के लिए पूछता है; plan सिर्फ़ पढ़ता है, और मॉडल मंज़ूरी के लिए प्लान पेश करता है; yolo बिना पूछे सब चलाता है, जैसे शुरुआती वर्शन करते थे, और जब तक आपकी सेटिंग्ज़ कुछ और न कहें, यही डिफ़ॉल्ट है। नुक़सान पहुँचाने वाले कमांड (बड़ी डायरेक्टरी हटाना, git का काम फेंकना, फ़ोर्स पुश, sudo, टेबल गिराना) yolo मोड में भी पूछते हैं; सेटिंग्ज़ में "guard": false इसे बंद कर देता है।

सेटिंग्ज़ के नियम मोड से पहले तय करते हैं: "allow": ["Bash(git *)", "Read"], "deny": ["Bash(rm *)"], "ask": ["Write"]। अनुमति के सवाल पर a जवाब देने से वह टूल सेशन भर के लिए खुल जाता है; शब्दों में जवाब देने से वे निर्देश बनकर मॉडल को चले जाते हैं।

सेशन

हर सेशन उसी वक़्त ~/.config/coder-leo/sessions/<प्रोजेक्ट>/ में सेव होता है। coder-leo -c सबसे नया जारी रखता है, --resume <id> या /resume कोई एक चुनता है, /rename नाम देता है, /export उसे Markdown में लिखता है। हर बदलाव से पहले फ़ाइल का चेकपॉइंट बनता है: /rewind (या Esc Esc) किसी पुराने मोड़ पर लौटता है, तब से बदली फ़ाइलें वापस लाता है और बातचीत वहीं काट देता है।

निर्देश, कमांड, स्किल, एजेंट

सेटिंग्ज़

~/.config/coder-leo/settings.json, फिर प्रोजेक्ट में .coder-leo/settings.json और .coder-leo/settings.local.json, हर एक पिछले के ऊपर; फिर एनवायरनमेंट (CODER_MODEL, CODER_API, CODER_HOST या OLLAMA_HOST, CODER_API_KEY)।

{
  "model": "qwen2.5-coder:14b",
  "api": "ollama",
  "numCtx": 16384,
  "think": "low",
  "permissions": { "mode": "default", "allow": ["Bash(git *)"], "guard": true },
  "compact": { "micro": 0.7, "full": 0.85, "keepRecent": 6 },
  "repoMap": { "enabled": true, "budget": 3000 },
  "tools": { "minimal": false, "disabled": ["WebSearch"] },
  "hooks": { "PreToolUse": [{ "matcher": "Bash", "hooks": [{ "type": "command", "command": "./check.sh" }] }] },
  "mcpServers": { "fs": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "."] } },
  "statusLine": { "command": "~/.config/coder-leo/status.sh" },
  "notify": "bell"
}

/config दिखाता है कि क्या लागू है और कहाँ से आया; /doctor सर्वर, मॉडल, मेमोरी और सेटअप जाँचता है।

हेडलेस

coder-leo -p "प्रॉम्प्ट" एक बार जवाब देता है: जवाब stdout पर, बाक़ी सब stderr पर। --output-format json नतीजे, सेशन id और टोकन गिनती के साथ एक ऑब्जेक्ट छापता है; --output-format stream-json जैसे-जैसे चीज़ें होती हैं, हर लाइन पर एक JSON इवेंट छापता है। --max-turns, --allowedTools, --disallowedTools, --system-prompt, --append-system-prompt और --mode रन को आकार देते हैं; -c या --resume कोई सेशन जारी रखते हैं।

गोपनीयता

सब कुछ आपकी मशीन पर चलता है: मॉडल, फ़ाइलें, बातचीत। प्रोग्राम नेटवर्क तक सिर्फ़ तब जाता है जब मॉडल आपके काम के लिए WebFetch या WebSearch चलाता है (yolo मोड के बाहर अनुमति पूछकर), जब आप बाहर जुड़ने वाला MCP सर्वर सेट करते हैं, और जब आप coder-leo update चलाते हैं। न अकाउंट, न टेलीमेट्री, कहीं कुछ नहीं भेजा जाता।

अपडेट

coder-leo update साइट पर नया वर्शन देखता है और उसे इंस्टॉल करता है (Homebrew वाली कॉपी के लिए Homebrew के ज़रिए); coder-leo update --check सिर्फ़ बताता है। प्रोग्राम कभी अपने आप नहीं देखता।

मदद और बग रिपोर्ट

समस्याएँ और सुझाव: coder-leo पेज के अंत में दिया सपोर्ट पता। मॉडल, सर्वर, coder-leo version और /doctor का आउटपुट साथ भेजें।