एजेंट
मिलने वाले हर एजेंट में Unterm को MCP सर्वर के रूप में दर्ज करता है, उनके ग्लोबल कॉन्टेक्स्ट (CLAUDE.md, AGENTS.md, GEMINI.md) में एक छोटा नोट जोड़ता है, और उनकी स्थिति बताने वाले लाइफ़साइकल हुक लगाता है।
unterm-cli setup-ai --dry-run # what would change
unterm-cli setup-ai # register with every agent found
--client claude-code (दोहराया जा सकता है) से सीमित करें; --remove सब कुछ वापस कर देता है।
वही इनबॉक्स जो Ctrl Shift A खोलता है, कमांड लाइन पर। --json के साथ यह स्टेटस बार, नोटिफ़िकेशन या cron को डेटा देता है।
unterm-cli agent inbox
# just the ones waiting on you
unterm-cli --json agent inbox \
| jq -r '.items[] | select(.state=="waiting") | "\(.agent): \(.task_hint // .pane_title)"'
आउटपुट
PANE AGENT STATE FOR TAB TASK
3 ✋ codex waiting 23s 2 Partition the ledger tables
4 ✓ claude done 13s 3 Fix the flaky checkout e2e test
2 ⚡ claude working 27s 1 Add rate limiting to /v1/charge
codex: Partition the ledger tables
स्थितियाँ waiting, done, working और idle हैं; इंतज़ार वाले पहले।
Unterm एजेंट की स्थिति उसके टाइटल और स्क्रीन से पढ़ता है। एजेंट के अपने हुक (Claude Code hooks, Codex notify, Aider का नोटिफ़िकेशन कमांड) ज़्यादा सटीक हैं: सवाल पूछते ही “इंतज़ार” बता देते हैं।
unterm-cli agent enable-hooks --dry-run
unterm-cli agent enable-hooks
setup-ai यह पहले से करता है; यह सिर्फ़ हुक लगाने का तरीका है, और --remove उन्हें हटाता है।
हर सदस्य को अपना git worktree, ब्रांच और टैब मिलता है। diff की तुलना कीजिए, हर worktree में जाँच चलाइए, एक को मर्ज कीजिए और बाकी को छोड़ दीजिए।
cd ~/code/payments-api
unterm-cli fleet launch --cwd "$PWD" --agents claude,codex \
-- "add an idempotency key to POST /v1/charge"
unterm-cli review diff --fleet add-an-idempotency-key --member 1 --stat
unterm-cli review verify --fleet add-an-idempotency-key --member 1 --command "cargo test"
unterm-cli review merge --fleet add-an-idempotency-key --member 1
unterm-cli review discard --fleet add-an-idempotency-key --member 2
unterm-cli fleet clean add-an-idempotency-key
आउटपुट
fleet add-an-idempotency-key launched — 2 member(s)
claude fleet/add-an-idempotency-key-1 ~/code/payments-api.fleet/add-an-idempotency-key-1
codex fleet/add-an-idempotency-key-2 ~/code/payments-api.fleet/add-an-idempotency-key-2
+? -0 idempotency.rs (new)
verification verify-1790326294259-0 queued: cargo test
merged fleet/add-an-idempotency-key-1 — staged in ~/code/payments-api (commit it yourself)
member 2 of add-an-idempotency-key discarded
fleet add-an-idempotency-key cleaned
मर्ज एक squash है जो आपके रिपो में स्टेज रहता है — कमिट आपका। सदस्य के बिना कमिट किए बदलाव भी शामिल होते हैं। शेल से शुरू करते समय --cwd दीजिए; वरना फ़्लीट फ़ोकस वाले पेन का फ़ोल्डर लेता है।
कमांड पेन में धुंधले टेक्स्ट की तरह दिखता है। Tab दबाइए तो लिया, टाइप करते रहिए तो नज़रअंदाज़ — आपके बिना कुछ नहीं चलता।
unterm-cli session suggest post --rationale "tests passed" \
-- "git push origin feat/rate-limit"
unterm-cli session suggest list
आउटपुट
Suggestion: sg_1790324293038_1
Status: queued
SUGGESTION PANE AGENT TEXT
sg_1790324293038_1 5 anonymous git push origin feat/rate-limit
session suggest list लंबित सुझाव दिखाता है; cancel एक को वापस लेता है।
स्क्रिप्टिंग
ऐसी स्क्रिप्ट के लिए जिसे आपके एनवायरनमेंट वाला असली शेल चाहिए: सही फ़ोल्डर में टैब बनाइए, कमांड चलाकर उसके ख़त्म होने का इंतज़ार कीजिए, फिर स्क्रीन पढ़िए।
P=$(unterm-cli session create --cwd ~/code/infra | awk '/^Pane:/{print $2}')
unterm-cli exec wait --pane-id $P --timeout-ms 600000 -- "git log --oneline -3 && ls"
unterm-cli session text --pane-id $P | tail -20
आउटपुट
2f1cf7d (HEAD -> main) init
README.md
exec wait कमांड ख़त्म होने पर आउटपुट लौटाता है; exec run चलाकर तुरंत लौट आता है।
जिस पेन में आप काम कर रहे हैं उसके नीचे लॉग tail या टेस्ट वॉचर रखिए, बिना माउस के।
unterm-cli session split --direction down --size-percent 35 --cwd ~/code/web-dashboard
आउटपुट
Pane: 6
Title: /bin/zsh
Direction: down
दिशाएँ: right, left, down और up।
चल रहे हर Unterm का एक नाम होता है — alpha, bravo, … — और हर CLI कमांड किसी एक को निशाना बना सकता है।
unterm-cli instance set-title "payments on-call"
unterm-cli instance list
unterm-cli --instance bravo agent inbox
unterm-cli instance set-title --clear
आउटपुट
Title: payments on-call
ID PID MCP HTTP CWD TITLE
alpha 1383 49173 19877 payments on-call
--instance के बिना कमांड सक्रिय इंस्टेंस को जाते हैं।
127.0.0.1 पर TCP के ऊपर पंक्ति-दर-पंक्ति JSON-RPC। पोर्ट और टोकन इंस्टेंस फ़ाइल में हैं; पहले लॉग इन कीजिए, फिर 151 मेथड में से कोई भी बुलाइए।
J=~/.unterm/server.json # %USERPROFILE%\.unterm\server.json on Windows
PORT=$(jq .mcp_port $J); TOKEN=$(jq -r .auth_token $J)
{ printf '{"jsonrpc":"2.0","id":1,"method":"auth.login","params":{"token":"%s"}}\n' "$TOKEN"
printf '{"jsonrpc":"2.0","id":2,"method":"agent.status"}\n'
sleep 1; } | nc 127.0.0.1 "$PORT"
आउटपुट
{"id":1,"jsonrpc":"2.0","result":{"status":"ok"}}
{"id":2,"jsonrpc":"2.0","result":{"agents":[{"agent":"codex","pane_id":3,"state":"waiting",…},…],"enabled":true}}
unterm-cli reference सारे मेथड दिखाता है; MCP क्लाइंट इसके बजाय unterm-cli mcp-stdio ब्रिज इस्तेमाल कर सकते हैं।
सहेजें और साझा करें
सादा टेक्स्ट, बिना एस्केप कोड: आख़िरी N पंक्तियाँ, या पूरा सत्र Markdown में, ऊपर प्रोजेक्ट और शेल की जानकारी के साथ।
unterm-cli scrollback --pane-id 2 --tail 200 > last-run.txt
unterm-cli session export --pane-id 2 -o session.md
आउटपुट
---
unterm_session_id: e2320821-38dc-4148-b94f-9bd4eef56357
tab_id: 2
project_path: ~/code/payments-api
project_slug: payments-api
--escapes रंग रखता है; --start-line/--end-line हिस्सा चुनते हैं।
पेन ने जो कुछ भी छापा, सबका एक लंबा PNG, स्क्रीन के बाहर रेंडर — खिड़की ढकी हो तब भी काम करता है।
unterm-cli screenshot --scrollback --pane-id 2 -o pane.png
--max-rows सीमा तय करता है; macOS पर --scroll-app Safari दूसरे ऐप की खिड़की के साथ यही करता है।
कमांड और आउटपुट, संवेदनशील हिस्से छिपाकर, प्रोजेक्ट के पास .unterm/sessions में रखे जाते हैं — Unterm git को यह फ़ोल्डर नज़रअंदाज़ करने को कहता है।
unterm-cli session record start
# … work in the pane …
unterm-cli session record stop
unterm-cli sessions list
unterm-cli sessions read <session-id>
आउटपुट
Session id: next-core-5-1790324289544601
Block count: 4
Markdown: ~/code/infra/.unterm/sessions/1790324289544601/tab-5-1790324289544601.md
Exit reason: recording_stopped
sessions list --project <slug> एक प्रोजेक्ट तक सीमित करता है।
टैब और उनके फ़ोल्डरों का नाम वाला सेट। रीबूट के बाद या अगले दिन के काम के लिए वापस लाइए।
unterm-cli workspace save morning
unterm-cli workspace restore morning --dry-run
unterm-cli workspace restore morning
आउटपुट
Workspace: morning
Sessions: 6
Workspace: morning
Planned: 6
--dry-run दिखाता है कि क्या खुलेगा, खोलता नहीं।
अपने ढंग से सेट करें
प्रोफ़ाइल में टोकन, git पहचान और SSH कुंजियाँ होती हैं। सीक्रेट सिस्टम कीचेन में रहते हैं और सिर्फ़ उसी प्रोफ़ाइल के टैब में एनवायरनमेंट वेरिएबल बनकर दिखते हैं।
unterm-cli profile create "Work — Acme" --accent "#E8B34B"
unterm-cli profile set-secret "Work — Acme" GITHUB_TOKEN # asks for the value
unterm-cli session create --cwd ~/code/acme --profile work-acme
आउटपुट
Created profile "Work — Acme"
ID: work-acme
Stored GITHUB_TOKEN in keychain for profile work-acme
किसी प्रोफ़ाइल का सीक्रेट पहली बार पढ़ने पर macOS एक बार कीचेन की अनुमति पूछता है। पासवर्ड मैनेजर से --from-stdin के ज़रिए पाइप करें।
कमांड पैलेट खोलकर “New Administrator Window” चुनिए। Windows UAC से पूछता है, फिर एक अलग, एलिवेटेड Unterm खोलता है।
यह आपकी सामान्य विंडो से कुछ साझा नहीं करती — न Core, न MCP सर्वर, न सेटिंग्स पेज — इसलिए आपके खाते से चलने वाली कोई चीज़ एलिवेटेड शेल में टाइप नहीं कर सकती। इसका टाइटल “Administrator:” से शुरू होता है।
सेटिंग्स ~/.unterm/unterm.conf में हैं। कुछ जो जानने लायक हैं:
font_size = 14
[window]
padding_left = 16
padding_right = 16
backdrop = "mica" # Windows 11
[cockpit]
done_hold_secs = 30 # how long a finished agent stays marked
unterm-cli settings open इसके बजाय ब्राउज़र में सेटिंग्स पेज खोलता है।
आपके बदलावों समेत पूरी सूची unterm-cli show-keys में है।
| CtrlShiftP | कमांड पैलेट |
| CtrlShiftA | एजेंट इनबॉक्स |
| CtrlShiftAltA | फ़्लीट शुरू करें |
| CtrlShiftS | क्विक सिलेक्ट: लेबल से पाथ, हैश या URL कॉपी करें |
| CtrlShiftJ | कंपोज़र: लंबा प्रॉम्प्ट लिखें, पेन खाली होने पर भेजें |
| CtrlShiftG | Git पैनल |
| CtrlShiftD / E | दाएँ / नीचे बाँटें |
| CtrlShiftZ | फ़ोकस वाले पेन को बड़ा करें |