Unterm

Unterm क्या-क्या करता है

पूरी सूची: हर इंटरफ़ेस, हर क्षमता, और वह ऐसा क्यों बना है।

उन्नत गाइड पढ़ें →

Unterm क्या है, 60 सेकंड में

सोर्स में जाँचे जा सकने वाले स्पेक · हर रिलीज़ पर अपडेट
नवीनतम संस्करण
v0.71.18 · 2026-10-04 · MIT
शामिल AI एजेंट
7 साइन किए गए मैनिफ़ेस्ट — Claude Code · Codex CLI · Gemini CLI · OpenCode · Aider · Kimi Code CLI · Trae Agent। unterm.app/api/agents/manifests से Ed25519-सत्यापित एनवेलप; हर एजेंट के लिए auth मोड चुनने का विकल्प।
कीमत
$0 हमेशा · कोई पेड टियर नहीं · कोई सब्सक्रिप्शन नहीं · कोई इन-ऐप खरीद नहीं
प्लेटफ़ॉर्म
macOS (यूनिवर्सल) · Linux x86_64 + arm64 (.deb + AppImage) · Windows 10/11 x64 + arm64 (.msi + पोर्टेबल .zip) — हर रिलीज़ में 9 पैकेज
इंस्टॉलर आकार
DMG 50 MB · .deb 27 MB · AppImage 43 MB · MSI 43 MB (x86_64 / x64)
आइडल पर मेमोरी
~110 MB रेज़िडेंट · खुले पैन के साथ रैखिक रूप से बढ़ती है
UI भाषाएँ
9 — en · 简体 · 繁體 · 日本語 · 한국어 · Deutsch · Français · Italiano · हिन्दी
कंट्रोल सरफ़ेस
MCP (TCP पर JSON-RPC) · HTTP वेब सेटिंग्स · unterm-cli · GUI — चारों के लिए वही JSON स्थिति
परखे गए एजेंट इंटीग्रेशन
Claude Code · Cursor · Codex CLI · कस्टम Python / Node MCP क्लाइंट — सब 1 सॉकेट से, ~30 लाइन कोड
डेटा संग्रह
शून्य टेलीमेट्री · कोई अकाउंट नहीं · कोई एनालिटिक्स नहीं · हर सर्वर 127.0.0.1 पर बँधा
टेक स्टैक
Rust · नेटिव next-core इंजन · wgpu · MCP (लाइन-डिलिमिटेड JSON-RPC) · वेब सेटिंग्स के लिए Tailwind + Alpine
v0.18 · AI एजेंट लॉन्चर

हर कोडिंग एजेंट इंस्टॉल करें। हर एक बस एक क्लिक में। कोई सेटअप झंझट नहीं।

अगर आपने कभी एक से ज़्यादा AI कोडिंग CLI साथ-साथ चलाने की कोशिश की है, तो आप यह झंझट जानते हैं: npm install, OAuth फ़्लो, API कुंजी, ~/.config/<vendor>/<different format each>, env वेरिएबल, प्रोफ़ाइल अलगाव। Unterm v0.18 यह सब एक सेटिंग्स टैब + एक CLI में समेट देता है। कोई और टर्मिनल ऐसा नहीं करता।

Claude Code
Anthropic
OAuth · BYO key · gateway
Codex CLI
OpenAI
ChatGPT OAuth · BYO key · gateway
Gemini CLI
Google
Google OAuth · BYO key · Vertex
OpenCode
SST
BYO key · local
Aider
Open-source
BYO key · local
01 · one click

GUI में या CLI से इंस्टॉल करें

किसी भी एजेंट कार्ड पर Install क्लिक करें, या unterm-cli agent install <id> चलाएँ। Unterm आपके प्लेटफ़ॉर्म के लिए सही कमांड चलाता है (npm / pipx आदि), जाँचता है कि बाइनरी PATH पर पहुँची, और अपने-आप दोबारा पहचान करता है।

02 · subscription-safe

पहले आधिकारिक सब्सक्रिप्शन। अपनी कुंजी सिर्फ़ चुनने पर।

ज़्यादातर एजेंट आधिकारिक अकाउंट या सब्सक्रिप्शन लॉगिन के साथ आते हैं (Claude Pro, ChatGPT Plus, Google AI Pro)। Unterm डिफ़ॉल्ट रूप से वही मोड चुनता है — कोई API कुंजी कभी चुपचाप नहीं डाली जाती। जब आपको सच में प्रति-टोकन बिलिंग या कॉर्पोरेट गेटवे चाहिए, तब Configure फ़ॉर्म में स्पष्ट रूप से अपनी कुंजी लाएँ या कस्टम एंडपॉइंट पर स्विच करें।

03 · signed catalog

Ed25519-साइन किया गया मैनिफ़ेस्ट कैटलॉग

एजेंटों की सूची + उनकी इंस्टॉल कमांड Unterm में हार्ड-कोड नहीं हैं — यह unterm.app/api/agents/manifests से परोसा गया एक साइन किया गया एनवेलप है। CDN से समझौता होने पर भी आपकी मशीन पर curl | sh नहीं धकेला जा सकता; सार्वजनिक कुंजी हर Unterm बाइनरी में शामिल है।

AI टर्मिनल को नियंत्रित करता है। MCP इसे संभव बनाता है।

ज़्यादातर टर्मिनल AI को बाइनरी के अंदर रखते हैं। Unterm उल्टा करता है: AI को बाहर रखता है और टर्मिनल को एक ऐसी सतह के रूप में खोलता है जिसे कोई भी बाहरी एजेंट MCP के ज़रिए थाम सके। टर्मिनल वह है जिसे नियंत्रित किया जाता है; एजेंट वह है जो काम करता है।

सामान्य उदाहरण

एक AI टर्मिनल के ज़रिए दूसरे AI को नियंत्रित करता है।

बाहरी एजेंट टर्मिनल सेशन का मालिक है। वह cwd बदलता है, एक पैन में अंदरूनी कोडिंग एजेंट शुरू करता है, लॉग पढ़ता है, और रिपॉज़िटरी के हरे होने तक दोहराता रहता है।

01
रिपो खोलें

बाहरी एजेंट सक्रिय पैन को प्रोजेक्ट रूट पर ले जाता है ताकि हर कमांड, लॉग और स्क्रीनशॉट उसी वर्किंग डायरेक्टरी से जुड़ा रहे।

02
अंदरूनी एजेंट शुरू करें

यह स्प्लिट पैन में एक कोडिंग एजेंट शुरू करता है, उसे काम देता है, और उस एजेंट को टर्मिनल के अंदर एडिट लूप चलाने देता है।

03
पढ़ें, दोबारा कोशिश करें, रिलीज़ करें

बाहरी एजेंट टेस्ट आउटपुट और पैन की स्थिति पढ़ता है, ज़रूरत पड़ने पर दोबारा कोशिश करता है, और कमिट या रिलीज़ की ओर तभी बढ़ता है जब टर्मिनल बताए कि काम पूरा हो गया।

outer agent → inner agent
demo
→ open /work/auth-service in a new tab and start a coding agent
unterm session.create { cwd: "/work/auth-service" }
→ { session_id: "7", pid: 41208 }
unterm exec.run { id: "7", command: "claude" }
→ inner agent ready
unterm exec.run { id: "7", command: "cargo test" }
running 142 tests
test result: ok. 142 passed; 0 failed
unterm screen.scrollback_text { id: "7" }
→ { text: "…build is green, commit the fix", row_count: 142 }
$
zsh · ~/work/auth-service · 80×24 · mcp:4

Unterm इस्तेमाल करने के तीन तरीके

हमने इसे किसी एक वर्कफ़्लो के लिए नहीं बनाया। MCP सतह की वजह से हर तरह के उपयोगकर्ता को अलग-अलग रास्तों से वही कंट्रोल प्लेन मिलता है।

🤖
AI इंजीनियर

Claude Code, Cursor या अपने एजेंट से कई टर्मिनल पैन चलाइए। हर पैन एक काम है; कहाँ टाइप करना है, यह आपका एजेंट चुनता है। कई इंस्टेंस के NATO नाम (alpha, bravo, charlie…) विंडो के बीच रूटिंग को बेहद आसान बना देते हैं।

  • डायरेक्टर / वर्कर पैटर्न: बाहरी एजेंट पैन के अंदर चल रहे एजेंट की निगरानी करता है
  • लंबे समय की निगरानी: बिल्ड शुरू करें, idle होने तक पोल करें, फिर अगला कदम तय करें
  • मल्टी-पैन ऑर्केस्ट्रेशन: काम को कई प्रोजेक्ट में बाँटें, नतीजे एक जगह जोड़ें
  • समीक्षा और फ़ाइन-ट्यूनिंग के लिए टोकन छिपाकर रिकॉर्डिंग
⚙️
DevOps और SRE

GUI में जो कुछ भी कर सकते हैं, उसके लिए cron के अनुकूल CLI। unterm-cli हर रिलीज़ में आता है; जिस भी डाउनस्ट्रीम टूल को कच्चा JSON-RPC चाहिए, उसे --json पाइप कर दें। ऑप्स स्क्रिप्ट, डैशबोर्ड और रनबुक के लिए वही सतह।

  • प्रॉक्सी की अपने-आप पहचान: macOS scutil / Windows रजिस्ट्री / GNOME gsettings
  • इंसिडेंट दस्तावेज़ों के लिए हेडलेस स्क्रीनशॉट और पैन रीड
  • रनबुक बनाने के लिए रिकॉर्डिंग → markdown, निजी जानकारी डिफ़ॉल्ट रूप से छिपी
  • कोई टेलीमेट्री नहीं, कोई लॉगिन नहीं, हर सर्वर 127.0.0.1 से बँधा
🔧
पावर यूज़र और ओपन-सोर्स हैकर

MIT लाइसेंस, v0.61 से अपने ही next-core कर्नेल पर (~12k लाइनें, 10 सीधी निर्भरताएँ), एजेंट इंटीग्रेशन पहले दर्जे का। GitHub पर पैच स्वीकार किए जाते हैं। खुद बिल्ड करें; बाइनरी CLI हर रिलीज़ में आता है। वेब सेटिंग्स UI एक Tailwind + Alpine SPA है — पेज को fork करें, रंग बदलें।

  • macOS के लिए यूनिवर्सल arm64 + x86_64 बाइनरी, Developer ID से साइन
  • Linux .deb (apt) और AppImage (कोई भी डिस्ट्रो)
  • Windows MSI (WiX 6) + पोर्टेबल .zip
  • 9 भाषाएँ पहले से शामिल, सिस्टम लोकेल की अपने-आप पहचान

चार कंट्रोल सरफ़ेस, एक इंजन

हर Unterm विंडो एक लोकल MCP सर्वर और एक HTTP सेटिंग्स सर्वर शुरू करती है। इनमें से किसी से भी वही JSON स्थिति पढ़ें और लिखें।

🔌
MCP सर्वर

127.0.0.1:19876 पर लाइन-डिलिमिटेड JSON-RPC, auth-token से सुरक्षित। शेल शुरू करें, पैन की स्थिति पढ़ें, स्क्रीनशॉट लें, सेशन नियंत्रित करें।

⚡
unterm-cli

किसी भी शेल, cron जॉब या स्क्रिप्ट से वही सतह। लोकल MCP के ऊपर एक पतला JSON-RPC क्लाइंट — कोई दोहराया हुआ बिज़नेस लॉजिक नहीं।

🖥️
वेब सेटिंग्स

सेल ग्रिड में नहीं, ब्राउज़र में आधुनिक कॉन्फ़िग UI। 127.0.0.1:19877 पर Tailwind + Alpine SPA। थीम, प्रॉक्सी, रिकॉर्डिंग, भाषा।

🌍
9 भाषाएँ

en / 简体 / 繁體 / 日本語 / 한국어 / Deutsch / Français / Italiano / हिन्दी पहले से शामिल। सिस्टम लोकेल की अपने-आप पहचान।

🎬
सेशन रिकॉर्डिंग

OSC 133 ब्लॉकों में बँटा markdown, बिल्ट-इन रिडैक्शन के साथ। रिकॉर्डिंग <cwd>/.unterm/sessions/ में रहती हैं।

📸
क्षेत्र स्क्रीनशॉट

स्टेटस बार से एक क्लिक में क्षेत्र कैप्चर। PNG डिस्क पर, इमेज क्लिपबोर्ड पर, पाथ टेक्स्ट क्लिपबोर्ड पर।

🌐
प्रॉक्सी की अपने-आप पहचान

macOS / Windows / GNOME / env सेटिंग्स की अपने-आप पहचान, साथ में मैनुअल HTTP/SOCKS ओवरराइड, नामित नोड, रोटेशन और Clash/mihomo कंट्रोलर समर्थन।

⚙️
GPU रेंडरिंग

Unterm के नेटिव next-core टर्मिनल इंजन पर बना, क्रॉस-प्लेटफ़ॉर्म wgpu रेंडरिंग के साथ।

पूरी कंट्रोल सरफ़ेस

स्क्रीनशॉट टूर नहीं — वह असली सरफ़ेस जिसे हर एजेंट और स्क्रिप्ट कॉल कर सकती है। 30 नेमस्पेस में 152 MCP मेथड, साथ में 34 CLI कमांड, सब एक ही JSON लौटाते हैं।

152
MCP मेथड
30
नेमस्पेस
34
CLI कमांड
4
कंट्रोल सरफ़ेस
22ms
स्टार्टअप → लाइव MCP
~12k
कर्नेल सोर्स लाइनें
🛩️ एजेंट कॉकपिट
cockpit · fleet.* · review.* · 11

हर CLI एजेंट की लाइव स्थिति देखें (काम जारी / प्रतीक्षा में / निष्क्रिय), इनबॉक्स से सीधे उस एजेंट पर पहुँचें जिसे आपकी ज़रूरत है, अलग-थलग git worktrees में एक ही काम पर N एजेंटों की फ़्लीट लॉन्च करें, और उनके बनाए नतीजों की समीक्षा, merge या रोलबैक करें — GUI, MCP या CLI से।

agent.status · cockpit.inbox · fleet.launch · fleet.retry · review.verify · review.diff · review.merge · review.rollback
🪟 सेशन और पैन
session.* · 27

टर्मिनल के बाहर से पैन बनाएँ, स्प्लिट करें, फ़ोकस करें, आकार बदलें और बंद करें। किसी भी पैन में अक्षर-दर-अक्षर टाइप करें, उसका cwd पढ़ें, idle होने तक पोल करें — कोई कीस्ट्रोक सिमुलेशन नहीं।

create · split · focus · resize · input · destroy · history · idle · cwd
👁️ स्क्रीन पढ़ना
screen.* · 8

लाइव व्यूपोर्ट टेक्स्ट, पूरा स्क्रॉलबैक एक स्ट्रिंग के रूप में, कर्सर की स्थिति, या regex खोज प्राप्त करें। detect_errors विफल कमांड चिह्नित करता है ताकि एजेंट प्रतिक्रिया दे सके।

text · scrollback_text · search · cursor · detect_errors · scroll
▶️ कमांड निष्पादन
exec.* · 5

कमांड चलाएँ और आउटपुट स्ट्रीम करें, exit code तक चलाकर प्रतीक्षा करें, कच्चे बाइट भेजें, स्थिति पूछें, रद्द करें या POSIX सिग्नल भेजें — संरचित परिणाम, स्क्रीन-स्क्रैपिंग नहीं।

run · run_wait · send · status · cancel · signal.send
🤖 AI एजेंट लॉन्चर
agent · 7 CLIs

Claude Code / Codex / Gemini / OpenCode / Aider को इंस्टॉल, प्रमाणित, कॉन्फ़िगर और लॉन्च करें। mcp-stdio ब्रिज हर एजेंट को अपने-आप इसी टर्मिनल के MCP सर्वर से जोड़ देता है।

install · auth · launch · config · mcp-stdio bridge
🪪 पहचान प्रोफ़ाइल
profile · 7 sniffers

किसी विंडो को एक डेवलपर पहचान से बाँधें — GitHub PAT, AWS कुंजियाँ, npm टोकन, SSH कुंजी, git लेखक। क्रेडेंशियल OS वॉल्ट में रहते हैं; 7 स्निफ़र मौजूदा क्रेडेंशियल केवल-पढ़ने के मोड में खोजते हैं।

list · current · create · switch · delete
🛰️ मल्टी-इंस्टेंस
instance.* · 8

हर विंडो एक NATO-नाम वाला इंस्टेंस है (alpha, bravo, charlie…)। मशीन पर हर चालू Unterm सूचीबद्ध करें, किसी एक पर फ़ोकस करें या उसका शीर्षक बदलें — एजेंट cwd या शीर्षक के आधार पर काम विंडो में बाँटता है।

list · info · focus · set_title
🎬 सेशन रिकॉर्डिंग
recording · markdown

किसी भी पैन को OSC 133 कमांड ब्लॉकों में बँटे Markdown में रिकॉर्ड करें — हर ब्लॉक में उसकी कमांड, आउटपुट, exit code और अवधि होती है — टोकन रिडैक्ट करके। MCP या CLI से रिकॉर्डिंग सूचीबद्ध करें, पढ़ें या एक्सपोर्ट करें। प्लेबैक नहीं है: पुराने asciicast record / replay कमांड हटा दिए गए।

recording_start · stop · status · list · read · export_markdown
📸 कैप्चर और अपलोड
capture.* · 6 + upload

स्क्रीन, किसी विंडो या आयत का स्क्रीनशॉट लें (macOS और Windows; Linux पर ये फ़िलहाल “not implemented” लौटाते हैं); हर प्लेटफ़ॉर्म पर किसी पैन का पूरा स्क्रॉलबैक एक लंबे PNG में रेंडर करें; macOS पर किसी दूसरे ऐप की विंडो का लॉन्ग-शॉट लें; क्लिपबोर्ड पढ़ें; या कोई फ़ाइल अपने Aliyun OSS / Tencent COS / Qiniu बकेट में भेजकर सार्वजनिक URL पाएँ — सब MCP पर।

screen · window · select · clipboard · scrollback · window_scroll · upload.file
🌐 प्रॉक्सी प्रबंधन
proxy.* · 12

OS प्रॉक्सी स्थिति पढ़ें, कॉन्फ़िगर किए गए नोड के बीच स्विच करें, एंडपॉइंट की लेटेंसी जाँचें, या सिस्टम प्रॉक्सी ओवरराइड लागू / साफ़ करें (macOS scutil · Windows registry · Linux env) — कोई URL पेस्ट नहीं।

status · switch · nodes · speedtest · configure · disable · env
🛡️ गवर्नेंस और ऑडिट
governance · 9

हर एजेंट राइट उसकी पहचान के साथ लॉग होता है; राइट-पुष्टि नीति पहले संपर्क पर रोक लगाती है। नीति निर्णयों का परीक्षण करें, बिल्ट-इन सेल्फ़-टेस्ट सूट चलाएँ, और liveness/readiness फ़्लैग पढ़ें।

audit_log · policy.check/set · agent.identify · selftest.run · server.health
💾 वर्कस्पेस
workspace.* · 3

मौजूदा विंडो का पूरा पैन / टैब लेआउट सहेजें, सहेजे गए लेआउट सूचीबद्ध करें, और किसी एक को बहाल करें — एजेंट काम के सेट का स्नैपशॉट लेकर बाद में उसे वापस ला सकता है।

save · restore · list
📖 स्व-वर्णन करने वाली सरफ़ेस
meta.surface

meta.surface एक ही कॉल में हर MCP मेथड (param स्कीमा के साथ), हर CLI सबकमांड और हर लाइव कीबाइंडिंग लौटाता है — ताकि अभी-अभी जुड़ा एजेंट बिना दस्तावेज़ के पूरा API सीख ले।

reference · show-keys · settings · theme · lang

एजेंट और स्क्रिप्ट इस सरफ़ेस तक MCP (TCP पर JSON-RPC) और unterm-cli बाइनरी से पहुँचते हैं; लोग GUI और Web Settings पेज का उपयोग करते हैं, जिसके HTTP API को स्क्रिप्ट भी कॉल कर सकती हैं। ये चारों एक-दूसरे की नकल नहीं, बल्कि आंशिक रूप से ओवरलैप करते हैं — उदाहरण के लिए थीम, भाषा और unterm.conf MCP पर नहीं हैं। meta.surface (या unterm-cli reference) पर एक राउंड-ट्रिप हर MCP मेथड, CLI कमांड और की बाइंडिंग को लाइव लौटाता है।

Unterm कहाँ अलग दिखता है

तीन दावे जिन्हें आप ख़ुद grep, बिल्ड या रन कर सकते हैं। कोई मार्केटिंग धुंध नहीं।

🤖 v0.18
वह टर्मिनल जिससे आप हर AI कोडिंग CLI चलाते हैं

v0.18 Unterm को Claude Code, Codex CLI, Gemini CLI, OpenCode और Aider के लिए वन-क्लिक लॉन्चर बनाता है। हर एजेंट की इंस्टॉल कमांड, OAuth फ़्लो, API कुंजी और नेटिव कॉन्फ़िग फ़ाइल एक साइन किए गए मैनिफ़ेस्ट में दर्ज है, जो unterm.app से लाया जाता है; रनटाइम कुंजी को आपके OS कीचेन में रखता है, एजेंट की अपनी JSON/TOML/YAML कॉन्फ़िग लिखता है (अज्ञात फ़ील्ड सुरक्षित रखते हुए), Unterm को ही एजेंट के लिए MCP सर्वर के रूप में उपलब्ध कराता है, और सेशन को ऑडिट में दर्ज करता है — सब CLI और नए AI Agents वेब सेटिंग्स टैब से उपलब्ध।

🪟 v0.17
AI टर्मिनल के बाहर से पैन स्प्लिट करता है

MCP पर session.split + session.focus किसी बाहरी एजेंट (Claude Code, Cursor, आपकी स्क्रिप्ट) को सक्रिय विंडो को बाएँ / दाएँ / ऊपर / नीचे बाँटने और नए पैन को फ़ोकस सौंपने देते हैं — बिना कोई कीस्ट्रोक सिमुलेट किए। हीरो पर दिए Python स्निपेट में शामिल। कोई और टर्मिनल पैन की ज्यामिति बाहरी प्रोसेस को इस तरह उजागर नहीं करता।

👁️ v0.16
हर एजेंट राइट ऑडिट योग्य, रद्द करने योग्य, समीक्षा योग्य

हर session.input / exec.send कॉल करने वाले एजेंट की पहचान के साथ लॉग होता है। किसी नए एजेंट का पहला राइट Allow / Block / Always-allow बैनर दिखाता है। भरोसा ~/.unterm/trusted_agents.json में सहेजा जाता है और वेब सेटिंग्स के MCP टैब से एक क्लिक में रद्द किया जा सकता है। स्टेटस बार लाइव MCP राइट गिनती दिखाता है।

सुविधा

छोटी बातें जो मिलकर बड़ी बनती हैं

रोज़मर्रा के उपयोग की बारीकियाँ — कोई भी मुख्य फ़ीचर नहीं, पर साथ मिलकर ये रुकावटें हटाती हैं।

👻
क्रॉस-पैन घोस्ट टेक्स्ट

Fish-शैली का धूसर अनुमान किसी भी पैन की शेल हिस्ट्री से आपका इनपुट आगे बढ़ाता है; → या End से स्वीकार करें।

✨
session.suggest बार

एजेंट PTY को छुए बिना कमांड सुझाते हैं — स्टेटस बार के ऊपर दिखते हैं; Tab स्वीकार करता है, Alt+Enter स्वीकार करके चलाता है।

📋
क्षेत्र स्क्रीनशॉट → क्लिपबोर्ड

स्टेटस बार से कोई भी आयत ड्रैग करके चुनें; PNG डिस्क पर, इमेज क्लिपबोर्ड पर, फ़ाइल पाथ टेक्स्ट के रूप में — सब एक साथ।

🎨
थीम + हर टैब का CWD

7 बिल्ट-इन थीम; unterm-cli theme set midnight सबको लाइव बदल देता है। स्टेटस बार सक्रिय पैन का $HOME-सापेक्ष cwd दिखाता है।

📁
macOS पर नेटिव राइट-क्लिक

Finder में राइट-क्लिक → Open in Unterm। AppleScript Services एक्सटेंशन का उपयोग — ऐप के अंदर कोई कॉन्टेक्स्ट मेन्यू नहीं।

🪪
स्टेटस बार में पहचान चिप

सक्रिय पहचान प्रोफ़ाइल (इस विंडो से बँधे GitHub PAT / AWS कुंजियाँ / npm टोकन) स्टेटस बार में दिखती है; अगली प्रोफ़ाइल शुरू करने के लिए क्लिक करें।

🚦
ज़ीरो-कॉन्फ़िग प्रॉक्सी

macOS scutil / Windows registry / GNOME gsettings / env पढ़ता है। एक टॉगल से चालू/बंद। कोई URL पेस्ट नहीं।

🌐
OSC 133 ब्लॉक विभाजन

रिकॉर्डिंग शेल प्रॉम्प्ट की सीमाओं पर अपने-आप बँट जाती हैं। हर ब्लॉक में उसकी कमांड, आउटपुट, exit code, अवधि — खोजने योग्य।

v0.71.6 माउस फ़्लो

राइट-प्रेस पेस्ट करता है। चुनना ही कॉपी करता है।

पूरा कॉपी-पेस्ट चक्र माउस पर है, पर दोनों हिस्से दो अलग गतियों पर हैं। चयन छोड़ते ही वह क्लिपबोर्ड पर पहुँच चुका होता है; राइट बटन दबाएँ और कर्सर पर पेस्ट हो जाता है — हर बार, चयन हो या न हो। कोई कॉन्टेक्स्ट मेन्यू कभी नहीं खुलता, बंद करने को कुछ नहीं।

🖱️
चुनें — कॉपी हो चुका

आउटपुट पर ड्रैग करें, या बस किसी शब्द पर डबल-क्लिक करें। बटन छूटते ही टेक्स्ट क्लिपबोर्ड पर होता है। याद रखने को कोई दूसरा इशारा नहीं, पुष्टि के लिए कुछ दबाना नहीं।

📥
राइट-प्रेस — पेस्ट हो गया

एक बटन, एक काम। कुछ चुना हो या नहीं, यह प्रॉम्प्ट पर पेस्ट करता है। एक पैन से कॉपी करें, दूसरे में क्लिक करें, राइट दबाएँ — कमांड पहुँच गई, शून्य कीस्ट्रोक। खाली क्लिपबोर्ड पर कुछ नहीं होता, कभी कोई त्रुटि नहीं।

⌃
Ctrl+क्लिक, macOS के तरीक़े से

macOS Ctrl+क्लिक को सेकेंडरी क्लिक मानता है, और Unterm भी — ट्रैकपैड, Magic Mouse या कोई भी थर्ड-पार्टी ड्राइवर। सिर्फ़ अकेला Ctrl मान्य है, इसलिए आपकी अपनी Ctrl-कॉम्बो माउस बाइंडिंग और Ctrl+Shift विंडो ड्रैग अछूते रहते हैं। macOS उस एक गति को दो इवेंट के रूप में भेजता है; Unterm उस पर एक ही बार कार्य करता है। vim या Claude Code जैसे माउस-सजग TUI भी ऐसे ही व्यवहार करते हैं।

v0.71.6 में बदला गया। पहले कुछ चुना होने पर प्रेस कॉपी करता था — वही काम दोहराते हुए जो चयन पहले ही कर चुका था, और उस पेस्ट की क़ीमत पर जिसके लिए दबाया गया था।

since v0.55 एजेंट कॉकपिट

अब आपका टर्मिनल अपने अंदर चल रहे एजेंटों को देखता है

Claude Code, Codex, Gemini, Aider — हर पैन बताता है कि कौन काम कर रहा है, कौन आपके जवाब पर अटका है, और क्या बदला गया। शुरू करने के लिए कोई कॉन्फ़िगरेशन नहीं; hook-स्तर की सटीक रिपोर्टिंग के लिए बस एक कमांड।

एजेंट इनबॉक्स: Codex मंज़ूरी का इंतज़ार कर रहा है, Claude पूरा, Claude काम में
🛰️ हर टैब पर लाइव स्थिति

चार सिग्नल परतें — आधिकारिक hooks, टाइटल/OSC पार्सिंग, प्रोसेस डिटेक्शन, स्क्रीन ह्यूरिस्टिक्स — मिलकर हर पैन की एक स्थिति बनती हैं: काम जारी (धड़कता नीला), आपकी ज़रूरत (एम्बर), पूरा, निष्क्रिय। शीर्ष पट्टी हर विंडो का हिसाब रखती है और जैसे ही कुछ आपका इंतज़ार करने लगता है, एम्बर हो जाती है।

📥 एजेंट इनबॉक्स

Ctrl+Shift+A: सभी विंडो के सभी एजेंट, इंतज़ार करने वाले सबसे ऊपर, साथ में यह भी कि वे कितनी देर से और किस बात पर अटके हैं। Enter सीधे उस पैन पर ले जाता है। “जाकर कहीं y दबा आओ” अब सिर्फ़ दो कीस्ट्रोक है।

🚀 Fleet: एक काम, N एजेंट

एक ही काम पर claude × 2 + codex की दौड़ लगवाइए — हर सदस्य आपके रिपॉज़िटरी के बगल में अपने git worktree और ब्रांच में, अपने टैब और अपने स्थिति बैज के साथ। आपकी वर्किंग कॉपी को कोई हाथ नहीं लगाता।

🔍 Review: कोई बदलाव नज़र से नहीं छूटता

जैसे ही कोई एजेंट काम शुरू करता है, Unterm रिपॉज़िटरी का चेकपॉइंट बना लेता है (एक dangling कमिट — HEAD, index और फ़ाइलें ज्यों की त्यों)। एजेंट की बनाई नई फ़ाइलों समेत पंक्ति-स्तर के diff, staged के रूप में squash-merge (कमिट आपका ही रहता है), किसी भी चेकपॉइंट पर रोलबैक, और सदस्यों की आमने-सामने तुलना।

🔌 बाक़ी सबकी तरह, पूरी तरह स्क्रिप्ट-योग्य

कॉकपिट खुद MCP + CLI है: agent.status, cockpit.inbox, fleet.launch, review.merge… एक ऑर्केस्ट्रेटिंग एजेंट बिना किसी इंसान के फ़्लीट लॉन्च कर सकता है और diff की समीक्षा कर सकता है। लोकल-फ़र्स्ट — इनमें से कुछ भी क्लाउड तक नहीं जाता।

एजेंट कॉकपिट की डॉक्स पढ़ें →

v0.71 में नया क्या है

ऐसा टर्मिनल जो बिना ग्राफ़िक्स ड्राइवर वाली मशीन पर भी खुले, दूसरी विंडो 587 की जगह 31 ms में, ऐसे शेल जो उस विंडो के बाद भी चलते रहें जिसमें खोले गए थे, और CJK जो आख़िरकार टेक्स्ट के रूप में कॉपी होता है — पिछली आठ रिलीज़, सात कार्डों में।

v0.71.18 टर्मिनल में तस्वीरें

Unterm अब इनलाइन इमेज दिखाता है — kitty ग्राफ़िक्स प्रोटोकॉल, iTerm2 की इनलाइन इमेज और sixel — इसलिए chafa, img2sixel, viu, timg और unterm-cli imgcat तस्वीर ही दिखाते हैं। तस्वीरें बगल के टेक्स्ट के साथ स्क्रॉल होती हैं, स्क्रॉलबैक में रहती हैं, पेन के किनारों पर साफ़ कटती हैं और उसी स्क्रीन (वैकल्पिक स्क्रीन सहित) की रहती हैं जिस पर बनी थीं। सेल का आकार पिक्सेल में पूछने वाले प्रोग्राम को असली मान मिलता है। एजेंट screen.images से उनकी सूची लेते हैं। साथ ही: कॉन्फ़िग के [platform.*] सेक्शन अब लागू होते हैं, close_confirmation काम करता है, और बेअसर सेटिंग्स इसकी वजह बताती हैं।

v0.71.17 खुद अपडेट होता है, और जानता है कि आपके कमांड कैसे खत्म हुए

एक-क्लिक अपडेट: unterm-cli update, कमांड पैलेट में “अपडेट इंस्टॉल करें” या Web सेटिंग्स का बटन नई रिलीज़ डाउनलोड करता है, उसका SHA-256 (macOS पर सिग्नेचर भी) जाँचता है और नए संस्करण में फिर से शुरू होता है। शेल इंटीग्रेशन अपने-आप लोड होता है zsh, bash, fish और PowerShell में: विफल कमांड अपने टैब पर ▲ लगाता है — जिस आउटपुट में बस “error” शब्द हो, वह नहीं। एजेंट्स को वह मिलता है जो वे टर्मिनल से माँगते हैं: Shift+Enter अब Enter नहीं (kitty कीबोर्ड प्रोटोकॉल), आपकी थीम के अनुसार रंग-प्रश्नों के उत्तर, टैब के नीचे प्रगति पट्टी (OSC 9;4), और बिना फटे फुल-स्क्रीन रीड्रॉ (mode 2026)। साथ ही: Windows शेल मेनू में Git Bash और हर WSL वितरण, पहले से भरा GitHub issue खोलने वाला क्रैश डायलॉग, और Homebrew व Scoop से इंस्टॉल।

v0.71 बिना ग्राफ़िक्स ड्राइवर वाली मशीन भी टर्मिनल खोल सकती है

स्टार्टअप हार्डवेयर पाथ आज़माकर वहीं रुक जाता था। ऐसे Windows सिस्टम पर जिसमें कोई उपयोगी डिस्प्ले ड्राइवर न हो — VM, साफ़ इमेज, रिमोट सेशन — DX12 को एडेप्टर तो मिल जाता था पर सरफ़ेस कॉन्फ़िगर नहीं होती थी, OpenGL को कोई ड्राइवर ही नहीं मिलता था, और टर्मिनल “no working GPU path” कहकर शुरू होने से मना कर देता था, WARP माँगे बिना ही, जो D3D12 के साथ आता है और जिसे किसी ड्राइवर की ज़रूरत नहीं। अब यह क्रम एक सॉफ़्टवेयर पास पर ख़त्म होता है। इसी रिलीज़ में: `unterm-cli start` अब बताता है जब वह पहले से चल रहे प्रोसेस को विंडो सौंपने के बजाय दूसरे प्रोसेस पर फ़ॉलबैक करता है, क्योंकि उस फ़ॉलबैक की क़ीमत एक दूसरा GPU एडेप्टर और एक साझा Core है; और प्रोवाइडर मैनिफ़ेस्ट अब उस कॉन्ट्रैक्ट के विरुद्ध सत्यापित होता है जो उसे पढ़ता है।

v0.68 एक प्रोसेस, N विंडो — दूसरी 31 ms में खुलती है

दूसरी विंडो पहले एक दूसरा Unterm होती थी: एक और GPU एडेप्टर, एक और Core कनेक्शन, 587 ms का इंतज़ार। अब वह पहले से चल रहे प्रोसेस के अंदर 31 ms में खुलती है। विंडो के पास id होते हैं, इसलिए `instance.new_window` अभी बनाई गई विंडो लौटाता है और `instance.focus` उसे स्वीकार करता है; हर सेशन ठीक एक विंडो का होता है, और विंडो बंद करने से सिर्फ़ व्यू बंद होता है जबकि शेल बची हुई विंडो के लिए Core में बने रहते हैं। सिर्फ़ आख़िरी विंडो पूछती है कि क्या आप सच में बंद करना चाहते थे।

v0.68 ऐसा टर्मिनल जिसमें एजेंट होस्ट हो सके, न कि जिस पर बस चिल्लाया जाए

क्षमताएँ अब लीज़ के पीछे हैं: एजेंट एक लीज़ लेता है, उसे ऐसी कुंजी के तहत इस्तेमाल करता है जिसे आप देख सकते हैं, और आपके रद्द करते ही उसे खो देता है — बजाय इसके कि हर कॉलर एक ही असीमित सॉकेट थामे रहे। अनुमोदन अब जवाब देने योग्य हैं, और सवाल यह बताता है कि क्या होने वाला है, न कि वह मेथड जो संयोग से उसे लागू करता है। फ़्लीट अब JSON फ़ाइल के बजाय टिकाऊ रूप से संग्रहीत होती हैं, इसलिए रन के बीच क्रैश होने पर यह जानकारी नहीं खोती कि कौन-सा सदस्य क्या कर रहा था।

v0.66 विंडो बंद करें, शेल चालू रखें

“बैकग्राउंड में चलते रहें” अब स्क्रीन पर कुछ छोड़ता है — तीनों प्लेटफ़ॉर्म पर एक ट्रे संकेतक, जो बताता है कि कितने सेशन अब भी चालू हैं और एक क्लिक में पार्क की गई विंडो वापस लाता है। एजेंट MCP पर यही कर सकता है: `instance.focus` पार्क की गई विंडो पर विफल होने के बजाय उसे जगा देता है। दोनों क्लोज़ बटन अब आपके शेल को लेकर असहमत नहीं हैं — इसी वजह से “बंद करें” का मतलब इस पर निर्भर करता था कि आपने कौन-सा बटन दबाया।

v0.64 CJK जो एक ही अक्षर के रूप में कॉपी, चयन और टाइप होता है

CJK टाइप करना पहले `<009d>` जैसे बाइट-कचरे में बिखर जाता था, जब GUI शेल को ऐसा लोकेल थमा देता था जो उसने कभी सेट ही नहीं किया था। कॉपी किए गए टेक्स्ट में टेक्स्ट की जगह ग्रिड का स्पेसर सेल आ जाता था, इसलिए पेस्ट में छेद रह जाते थे। डबल-क्लिक आधा शब्द चुनता था और बाक़ी आधा खो देता था। अब चौड़े अक्षर एक ही अक्षर हैं — चयन में, क्लिपबोर्ड पर, और इनपुट में। साथ ही रीड्रॉ के तूफ़ान का अंत: फ़्रेम की ग़लत तरीक़े से तुलना का मतलब था कि कुछ हिला हो या नहीं, दोबारा पेंट करना।

v0.63 आपके सेशन एक प्रोसेस के पास — और इंस्टॉल में आख़िरकार सब कुछ है

unterm-core अब आपके सेशन का मालिक है: प्रति-उपयोगकर्ता एक प्रोसेस जो shell, स्क्रॉलबैक और स्प्लिट लेआउट रखती है, पूरा MCP सरफ़ेस सर्व करती है, और उन्हें एक विंडो से दूसरी विंडो तक ले जाती है (v0.62)। आख़िरी विंडो बंद करने पर यह भी रुक जाती है — जब तक वह विंडो ट्रे में पार्क न हो या Core --headless से शुरू न हुआ हो। v0.63 वह रिलीज़ है जो इंस्टॉल को मिलनी चाहिए थी: core डेमन वाक़ई सभी नौ पैकेजों में है, सेटिंग्स पेज Core मोड में काम करता है, इमोजी पहली बार रेंडर होते हैं — बंडल फ़ॉन्ट COLRv1 था जिसे FreeType नहीं बना सकता — रुकने के बाद टाइपिंग विलंब 96ms से 8ms हो गया, macOS नया चिह्न पहनता है, और Explorer के राइट-क्लिक में “Open in Unterm tab” जुड़ गया।

v0.61 हमारा अपना कर्नेल: लाइव कंट्रोल सरफ़ेस तक 22ms

Unterm अब WezTerm फ़ोर्क पर नहीं चलता। next-core इसी उत्पाद के लिए लिखा गया टर्मिनल कर्नेल है — पार्सर, स्क्रीन मॉडल, PTY रनटाइम, फ़ॉन्ट स्टैक और एक wgpu रेंडरर — लगभग 12k सोर्स लाइनों और 10 सीधी डिपेंडेंसियों के बजट में। लॉन्च से लाइव MCP सरफ़ेस तक 22ms (पहले 7.1s), आइडल पर एक कोर का 6.6% (पहले 80%), 200k-लाइन थ्रूपुट बराबर। पुराने कर्नेल के साथ फ़ीचर समानता 159-आवश्यकता वाले लेजर के विरुद्ध एक-एक करके बंद की गई, प्लेटफ़ॉर्म-नेटिव टाइपोग्राफ़ी के साथ: macOS पर असली ट्रैफ़िक लाइट, pt-सटीक आकार, और CJK आख़िरकार सही रेंडर। पूरी कहानी ब्लॉग पर पढ़ें।

View all releases on GitHub →

छह सिद्धांत, कोई अपवाद नहीं

01
लोकल-फ़र्स्ट, कोई क्लाउड नहीं

हर सर्वर, हर API एंडपॉइंट, हर रिकॉर्डिंग 127.0.0.1 पर रहती है। कोई लॉगिन नहीं, कोई टेलीमेट्री नहीं, कोई सब्सक्रिप्शन नहीं। आपकी शेल हिस्ट्री आपकी है।

02
AI टर्मिनल के बाहर रहता है

कोई चैट ओवरले नहीं, कोई इनलाइन AI पैनल नहीं, टर्मिनल के अंदर कोई मॉडल नहीं। टर्मिनल ही सतह है — Claude Code, Cursor और आपकी स्क्रिप्ट उसे MCP से थामते हैं। यह जो एकमात्र अनुमान लगाता है, वह शेल प्रॉम्प्ट पर आपकी अपनी हिस्ट्री से बना धूसर घोस्ट टेक्स्ट है, और जिस pane में Claude Code जैसा एजेंट चल रहा हो वहाँ यह नहीं दिखता।

03
MCP पहले दर्जे की सतह है

एजेंटों के लिए बनी सुविधाएँ एक MCP मेथड और एक CLI कमांड के साथ आती हैं। अपवाद जान-बूझकर हैं: थीम, भाषा और कॉन्फ़िग फ़ाइल आपके हाथ में रहती हैं — वेब सेटिंग्स, <code class="font-mono text-xs">unterm-cli</code> और <code class="font-mono text-xs">unterm.conf</code> — ताकि कोई एजेंट सत्र के बीच आपके टर्मिनल का रूप न बदले।

04
क्रॉस-प्लेटफ़ॉर्म समानता ही सही होना है

जो सुविधा Windows पर चले लेकिन macOS या Linux पर अटक जाए, वह बग है, “अभी समर्थित नहीं” नहीं। Mac, Linux, Windows एक साथ रिलीज़ होते हैं।

05
सजावट नहीं, घटाव

जो सुविधा OS की है, उसके लिए OS का उपयोग करें। AI जनरेशन को टर्मिनल के बाहर रखें, मुख्य संचालन लोकल रखें, और macOS पर नेटिव Finder इंटीग्रेशन का उपयोग करें।

06
सब्सक्रिप्शन का सम्मान। डिफ़ॉल्ट OAuth।

जब आप Unterm से कोई AI एजेंट इंस्टॉल करते हैं, तो डिफ़ॉल्ट प्रमाणीकरण मोड वेंडर का आधिकारिक सब्सक्रिप्शन (OAuth) होता है — आपका Pro / Plus / Team प्लान। हम किसी सेशन में कभी चुपचाप API कुंजी नहीं डालते; प्रति-टोकन बिलिंग तभी होती है जब आप Configure फ़ॉर्म में auth मोड को स्पष्ट रूप से 'अपनी API कुंजी लाएँ' या 'कस्टम एंडपॉइंट' पर स्विच करें। यह आपकी पसंद है, कोई छिपा जाल नहीं।

टर्मिनल में AI बना होना ज़रूरी नहीं।
उसे AI से चलाया जा सकना चाहिए।

यही Unterm और Warp के बीच का दोराहा है — फ़ीचर का अंतर नहीं, दिशा का।

उम्र का बेमेल

टर्मिनल तीस साल का औज़ार है; AI मॉडल छह महीने का पुर्ज़ा। AI को टर्मिनल में जोड़ दें तो आपका सबसे लंबा चलने वाला औज़ार उसके सबसे कम उम्र वाले हिस्से से तय होने लगता है — मॉडल पुराना होता है, तो पूरा टर्मिनल उसके साथ पुराना हो जाता है।

आपके पास एजेंट पहले से हैं

Claude Code, Codex, Gemini CLI, Aider — आप पहले से सबसे मज़बूत कोडिंग एजेंट चलाते हैं, और वे हर महीने बेहतर होते जाते हैं। टर्मिनल के अंदर एक चैट बॉक्स बस साइन-इन करने को एक और copilot है, और यह कभी वह नहीं होगा जिसे आप सच में पसंद करते हैं।

कमी पकड़ की है, दिमाग़ की नहीं

एजेंटों में बुद्धि की कमी नहीं — टर्मिनल पर उनके हाथ नहीं हैं। Unterm टर्मिनल को MCP से चलने वाली सरफ़ेस बनाता है: पैन बनाएँ, कमांड चलाएँ, स्क्रीन पढ़ें, स्क्रॉलिंग स्क्रीनशॉट लें, सेटिंग्स बदलें, सेशन रिकॉर्ड करें। एजेंट टर्मिनल को वैसे ही इस्तेमाल करता है जैसे आप, शीशे के पार से देखने के बजाय।

Warp का जवाब: AI को टर्मिनल के अंदर रखो
  • टर्मिनल UI में जड़ा AI, उनके क्लाउड से बँधा — लॉगिन, सब्सक्रिप्शन, कोटा
  • उनके चुने मॉडल, उनके शेड्यूल पर अपग्रेड
  • AI कोर बंद है; आपकी कमांड का संदर्भ उनके सर्वरों से होकर गुज़रता है
Unterm का जवाब: टर्मिनल AI को सौंप दो
  • टर्मिनल एक MCP सरफ़ेस है — कोई भी एजेंट जुड़कर चला सकता है, आज का या अगले साल का
  • एजेंट और मॉडल आप चुनते हैं; Unterm आपको कभी बाँधता नहीं
  • MIT, पूरी तरह ओपन सोर्स; सब कुछ 127.0.0.1 पर रहता है — कोई लॉगिन नहीं, कोई सब्सक्रिप्शन नहीं, कोई टेलीमेट्री नहीं

तीस साल बाद भी आप टर्मिनल इस्तेमाल कर रहे होंगे। कोई नहीं जानता तब कौन-सा AI उसे चला रहा होगा — इसीलिए भविष्य के लिए तैयार टर्मिनल सिर्फ़ वही है जो चलाए जाने के लिए बना हो।

Unterm बनाम नेटिव टर्मिनल बनाम पेड AI टर्मिनल

नेटिव टर्मिनल (Terminal.app) वह आधार है जो आपके पास पहले से है। Warp पेड AI टर्मिनल है। iTerm2 और Ghostty मुफ़्त पावर टर्मिनल हैं। Unterm की अपनी अलग राह है: वह सब कुछ जिसे कोई बाहरी एजेंट बाहर से थाम सके।

क्षमता Unterm Terminal.app Warp iTerm2 Ghostty
एजेंट-फ़र्स्ट नेटिव पेड मुफ़्त मुफ़्त
MCP के ज़रिए बाहर से नियंत्रित ✓ ✗ ✗ ✗ ✗
हर क्रिया के लिए स्क्रिप्ट करने योग्य CLI ✓ ✗ ✗ Python API ✗
बिल्ट-इन AI कोडिंग एजेंट लॉन्चर ✓ ×7 ✗ ✗ ✗ ✗
एजेंट अपने-आप टर्मिनल के MCP से जुड़ते हैं ✓ ✗ ✗ ✗ ✗
एजेंट कॉकपिट (इनबॉक्स · फ़्लीट · रिव्यू) ✓ ✗ ~ cloud ✗ ✗
पहचान प्रोफ़ाइल (हर विंडो के क्रेडेंशियल) ✓ ✗ ✗ ✗ ✗
मल्टी-इंस्टेंस ऑर्केस्ट्रेशन ✓ ✗ ✗ ✗ ✗
सेशन रिकॉर्डिंग → markdown ✓ md ✗ ~ ✓ ✗
MCP से स्क्रीनशॉट + फ़ाइल अपलोड ✓ (Linux ~) ✗ ✗ ~ ✗
चुनना कॉपी करता है, राइट-क्लिक पेस्ट करता है — कोई मेन्यू नहीं ✓ gesture menu menu menu menu
बिल्ट-इन प्रॉक्सी प्रबंधन ✓ ✗ ✗ ✗ ✗
लोकल-फ़र्स्ट, कोई क्लाउड / लॉगिन नहीं ✓ ✓ ✗ ✓ ✓
टर्मिनल के अंदर बना AI ✗ जान-बूझकर ✗ ✓ (cloud) plugin ✗
GPU रेंडरिंग ✓ ✗ ✓ ✓ ✓
macOS + Linux + Windows ✓ ✗ ✓ macOS mac+Linux
ओपन-सोर्स क्लाइंट ✓ MIT ✗ ✗ ✓ GPL ✓ MIT
नेटिव UI भाषाएँ ✓ ×9 OS en en en
कीमत $0 $0 फ्रीमियम $ $0 $0

✓ हाँ · ✗ नहीं · ~ आंशिक · ×N संख्या। "AI अंदर" पर ✗ जान-बूझकर ही पूरा सिद्धांत है: Unterm AI को बाहर रखता है और टर्मिनल को वह सरफ़ेस बनाता है जिसे AI थामता है।

2026-05 तक सार्वजनिक रूप से प्रलेखित सुविधाओं पर आधारित। Warp क्लोज़्ड-सोर्स है, क्लाउड-आधारित मुफ़्त टियर + पेड Team/Pro प्लान के साथ; iTerm2 में Python स्क्रिप्टिंग API और एक वैकल्पिक AI कमांड प्लगइन है; Ghostty का अभी Windows बिल्ड नहीं है। सुधार GitHub पर आमंत्रित हैं।

अक्सर पूछे जाने वाले सवाल

Unterm क्या है?

एक क्रॉस-प्लेटफ़ॉर्म टर्मिनल एम्युलेटर, जिसमें MCP, HTTP और CLI कंट्रोल सरफ़ेस बिल्ट-इन हैं। प्रोडक्ट की सोच: MCP से नियंत्रित की जा सकने वाली सतह के रूप में टर्मिनल, ताकि टर्मिनल के अंदर AI ठूँसने के बजाय कोई भी बाहरी AI एजेंट उसे बाहर से चला सके।

मुझे कैसे पता चलेगा कि Claude Code मेरी मंज़ूरी का इंतज़ार कर रहा है?

Unterm हर पैन की एजेंट स्थिति पर नज़र रखता है। जब Claude Code (या Codex, Gemini, Aider) किसी पुष्टि पर अटकता है, तो उसके टैब का बिंदु एम्बर हो जाता है, शीर्ष पट्टी की चिप गिनती के साथ एम्बर हो जाती है, और वह एजेंट एजेंट इनबॉक्स (Ctrl+Shift+A) में सबसे ऊपर आ जाता है — Enter सीधे उसी पैन पर ले जाता है। Claude Code और Gemini के लिए डिटेक्शन बिना किसी कॉन्फ़िगरेशन के काम करता है; “unterm-cli agent enable-hooks” से hook-स्तर की सटीक रिपोर्टिंग जुड़ जाती है।

क्या मैं कई Claude Code इंस्टेंस बिना टकराव के समानांतर चला सकता हूँ?

हाँ — फ़्लीट इसी के लिए हैं। “unterm-cli fleet launch --agents claude,claude,codex -- काम” हर सदस्य को आपके रिपॉज़िटरी के बगल में अपना git worktree और ब्रांच देता है, इसलिए वे न एक-दूसरे का काम बिगाड़ सकते हैं, न आपकी वर्किंग कॉपी। हर सदस्य को लाइव स्थिति बैज वाला अपना टैब मिलता है, और Review पेज उनके नतीजों की आमने-सामने तुलना करता है।

AI कोडिंग एजेंट के बदलावों की समीक्षा या वापसी कैसे करूँ?

जैसे ही कोई एजेंट किसी रिपॉज़िटरी में काम शुरू करता है, Unterm उसका चेकपॉइंट बना लेता है — एक dangling git कमिट जो HEAD, आपके index या आपकी फ़ाइलों को कभी नहीं छूता। Review पेज (Web सेटिंग्स में) एजेंट की बनाई फ़ाइलों समेत पंक्ति-स्तर के diff दिखाता है, और आप किसी नतीजे को staged बदलावों के रूप में अपने रिपॉज़िटरी में squash-merge कर सकते हैं (कमिट आप करते हैं), उसे हटा सकते हैं, या worktree को किसी भी चेकपॉइंट पर रोलबैक कर सकते हैं।

Unterm किन AI कोडिंग एजेंटों को सपोर्ट करता है?

लॉन्चर एक-एक क्लिक में Claude Code, Codex CLI, Gemini CLI, OpenCode और Aider इंस्टॉल और कनेक्ट कर देता है। कॉकपिट का स्थिति डिटेक्शन kimi, trae और cursor-agent को भी पहले से पहचानता है, और मानक टर्मिनल सिग्नल (टाइटल, OSC 9/777, BEL) भेजने वाले किसी भी एजेंट को बुनियादी ट्रैकिंग मुफ़्त मिलती है। कोई भी टूल “unterm-cli agent signal” से जुड़ सकता है।

सिर्फ़ माउस से कॉपी और पेस्ट कैसे करें?

कॉपी के लिए चुनें, पेस्ट के लिए राइट-क्लिक करें। ड्रैग या डबल-क्लिक छोड़ते ही टेक्स्ट क्लिपबोर्ड पर होता है। राइट-क्लिक हमेशा कर्सर पर पेस्ट करता है — चयन हो या न हो, और हर पैन में, उन प्रोग्रामों में भी जो माउस अपने हाथ में ले लेते हैं (vim, htop, Claude Code): Unterm राइट-क्लिक उन्हें देने के बजाय अपने पास रखता है। उन प्रोग्रामों में चुनने के लिए ड्रैग करते समय Shift दबाए रखें। macOS पर सादा Ctrl+क्लिक राइट-क्लिक माना जाता है, और मिडिल बटन भी पेस्ट करता है। बंद करने को कोई कॉन्टेक्स्ट मेन्यू नहीं, और खाली क्लिपबोर्ड पर कुछ नहीं होता।

यह Claude Code, Cursor या दूसरे एजेंटों के साथ कैसे काम करता है?

हर Unterm विंडो एक लोकल MCP सर्वर (TCP, JSON-RPC, auth-token से सुरक्षित) शुरू करती है। अपने MCP क्लाइंट को 127.0.0.1:<port> पर पॉइंट करें — पोर्ट और टोकन लॉन्च पर ~/.unterm/server.json में लिखे जाते हैं। एजेंट शेल खोल सकता है, कमांड चला सकता है, pane की स्थिति पढ़ सकता है, स्क्रीनशॉट ले सकता है, रिकॉर्डिंग चालू-बंद कर सकता है और Agent Cockpit (स्थिति, इनबॉक्स, फ़्लीट, रिव्यू) चला सकता है। थीम, भाषा और कॉन्फ़िग जान-बूझकर MCP पर नहीं हैं; इन्हें वेब सेटिंग्स में, unterm-cli से, या unterm.conf में बदलें।

एक एजेंट से कई Unterm विंडो कैसे चलाऊँ?

हर Unterm प्रोसेस एक इंस्टेंस है, जिसका NATO-फ़ोनेटिक नाम (alpha, bravo, …) ~/.unterm/instances/<name>.json में दर्ज होता है। सबकी सूची के लिए किसी भी एक पर instance.list कॉल करें; cwd / शीर्षक / शुरू होने के क्रम से चुनें; फिर उस इंस्टेंस के पोर्ट से उसके auth token के साथ जुड़ें। ~/.unterm/active.json सबसे हाल के चालू इंस्टेंस की ओर इशारा करता है, ताकि सिंगल-इंस्टेंस वाले मामलों में फ़ॉलबैक रहे।

यह Warp से कैसे अलग है?

Warp AI को एक बंद क्लाउड ऑर्केस्ट्रेटर (Oz) के अंदर रखता है — Claude Code जैसे बाहरी टूल Warp को बाहर से नहीं चला सकते। Unterm तीसरा रास्ता चुनता है: AI को टर्मिनल से बाहर रखो, टर्मिनल को ही MCP से नियंत्रित की जा सकने वाली सतह के रूप में खोलो, और किसी भी एजेंट को उसे थामने दो। कोई क्लाउड नहीं, कोई लॉगिन नहीं।

मेरा डेटा कहाँ जाता है?

बाहर कहीं नहीं। MCP और वेब सेटिंग्स सर्वर सिर्फ़ 127.0.0.1 से बँधते हैं। सेशन रिकॉर्डिंग <project>/.unterm/sessions/ में सेव होती हैं, टोकन छिपाने की सुविधा के साथ। कोई टेलीमेट्री नहीं, कोई एनालिटिक्स नहीं, कोई लॉगिन नहीं, क्लाउड तक कोई आना-जाना नहीं। आपकी शेल हिस्ट्री आपकी है।

क्या Unterm कभी भी, एक बार भी, घर फ़ोन करता है?

कोई टेलीमेट्री नहीं, कोई एनालिटिक्स नहीं, कोई क्रैश या इंस्टॉल पिंग नहीं, कोई अकाउंट नहीं। Unterm ख़ुद दो अनुरोध करता है, और किसी में भी आपके बारे में कुछ नहीं जाता: (1) अपडेट जाँच — लॉन्च के लगभग 20 सेकंड बाद और फिर हर 6 घंटे पर api.github.com/repos/zhitongblog/unterm/releases/latest पर एक सादा GET, निश्चित User-Agent (unterm-update-check) के साथ और बिना किसी पहचानकर्ता के; जवाब ~/.unterm/update_check.json में कैश होता है। (2) AI एजेंट कैटलॉग — unterm.app/api/agents/manifests पर एक GET, जब आप वेब सेटिंग्स में AI Agents खोलते हैं या कोई unterm-cli agent कमांड चलाते हैं; इसमें User-Agent में केवल Unterm संस्करण और एक कैश ETag जाता है; विफल होने पर ऐप में बनी साइन की गई प्रति इस्तेमाल होती है। इनमें से कोई भी अभी सेटिंग्स में बंद नहीं किया जा सकता — अगर आपको Unterm पूरी तरह ऑफ़लाइन चाहिए, तो अपने फ़ायरवॉल में ये दो होस्ट ब्लॉक करें। बाक़ी सारा ट्रैफ़िक आप ख़ुद शुरू करते हैं: डाउनलोड, अपने बकेट में अपलोड, अपने प्रॉक्सी नोड पर हेल्थ चेक, और जो कुछ आपका शेल करता है।

क्या कोई पेड वर्ज़न या प्रीमियम सुविधा है?

नहीं। Unterm MIT लाइसेंस के तहत है; एक ही बाइनरी में हर सुविधा है। न सदस्यता, न Pro वर्ज़न, न प्लगइन मार्केट, न “स्प्लिट पेन के लिए भुगतान करें”। प्रोजेक्ट का समर्थन करना चाहें तो फ़ुटर का “समर्थन करें” लिंक ही एकमात्र अनुरोध है।

इंस्टॉल और रनटाइम कितना बड़ा है?

macOS DMG ~50 MB · Linux .deb 27 MB · AppImage 43 MB · Windows MSI 43 MB। एक विंडो खुली होने पर आइडल में रेज़िडेंट मेमोरी ~110 MB है; हर पैन के साथ रैखिक रूप से बढ़ती है। नेटिव next-core इंजन wgpu से रेंडर करता है; रनटाइम लागत आम तौर पर हर पैन के शेल और ऐप्लिकेशन से तय होती है।

क्या Unterm मेरी सिस्टम भाषा पहचानता है?

हाँ। पहले लॉन्च पर Unterm OS लोकेल पढ़ता है (macOS पर defaults, Linux पर $LANG, Windows पर registry) और 9 बिल्ट-इन UI भाषाओं में से सबसे निकट वाली चुनता है। आप वेब सेटिंग्स → भाषा में हर विंडो के लिए इसे बदल सकते हैं। अनुवाद unterm-services/src/i18n/locales/*.json में हैं — पैच का स्वागत है।

किसी बेक़ाबू एजेंट को मेरे रिपो पर rm -rf चलाने से क्या रोकता है?

कई गेट। (1) MCP सर्वर केवल 127.0.0.1 पर सुनता है — कोई नेटवर्क एक्सेस नहीं। (2) यह auth-token से सुरक्षित है; टोकन ~/.unterm/instances/<name>.json में है, और जिस एजेंट के पास उस फ़ाइल को पढ़ने का अधिकार नहीं, वह कनेक्ट भी नहीं कर सकता। (3) हर अनुरोध सात जोखिम श्रेणियों में से एक में रखा जाता है — read, local_mutation, exec, external_side_effect, credential_access, financial, destructive। Read पास हो जाते हैं। लोकल बदलाव और कमांड चलाना बिना प्रॉम्प्ट के पास होते हैं, आपकी नीति के blocked और allowed कमांड पैटर्न के अधीन। external_side_effect और उससे ऊपर की हर चीज़ आपकी हाँ का इंतज़ार करती है, और क्रेडेंशियल, पैसे और विनाश के मामले में वह हाँ सिर्फ़ एक कॉल के लिए होती है। (4) शेल में टाइप करना exec गिना जाता है, इसलिए एजेंट और rm -rf के बीच पहला-राइट बैनर खड़ा है: कोई नया एजेंट पहली बार किसी पैन में लिखता है तो आपको Allow / Block / Always-allow मिलता है, और ऑडिट लॉग हर राइट प्रयास को कॉल करने वाले की पहचान के साथ दर्ज करता है। वेब सेटिंग्स के MCP टैब से कभी भी भरोसा रद्द करें।

इसे स्क्रिप्ट से कैसे चलाऊँ?

unterm-cli इस्तेमाल करें: session list, proxy status, theme set midnight, session record start, screenshot। किसी भी सबकमांड में --json जोड़ें और कच्चा JSON-RPC आउटपुट पाएँ, जो शेल पाइपलाइन और cron जॉब के लिए उपयुक्त है।

कौन-से प्लेटफ़ॉर्म साइन और नोटराइज़ होकर आते हैं?

macOS: यूनिवर्सल arm64 + x86_64 DMG, Developer ID से साइन, Apple से नोटराइज़ और स्टेपल किया हुआ (कोई Gatekeeper चेतावनी नहीं)। Linux: Debian/Ubuntu के लिए .deb और किसी भी डिस्ट्रो के लिए AppImage। Windows: WiX से बना MSI इंस्टॉलर और पोर्टेबल .zip। हर माइनर टैग पर सब कुछ GitHub Releases पर प्रकाशित होता है।

क्या यह ओपन-सोर्स है?

हाँ — MIT लाइसेंस। मौजूदा GUI और टर्मिनल रनटाइम Unterm के नेटिव next-core इंजन का उपयोग करते हैं, और MCP, वेब सेटिंग्स, रिकॉर्डिंग, i18n तथा रिलीज़ टूलिंग उसी रिपॉज़िटरी में हैं। सोर्स: github.com/zhitongblog/unterm।

मैं योगदान कैसे करूँ?

GitHub पर issue या PR खोलें। बग, फ़ीचर अनुरोध और चर्चा, सब एक ही कतार में ट्रैक होते हैं। जमा हुए सुधार हम माइनर रिलीज़ में बंडल करते हैं — पैच-स्तर के संस्करण CI बिल्ड ट्रिगर नहीं करते। दस्तावेज़ रिपॉज़िटरी में /docs पर हैं।