InitOrigin

02 / टर्मिनल · Apache-2.0

io-cli

एक टर्मिनल एजेंट जो काम करते-करते दिखाता रहता है कि उसे किस बात की इजाज़त है, कितना ख़र्च हो रहा है, और उसने क्या मना किया। एजेंट लूप, providers, tools, sandbox और session store — सब io-harness के हैं, यहाँ दोबारा नहीं लिखे गए।

from sourcegit clone https://github.com/initorigin/io-cli cargo build --release

टर्मिनल आपसे नहीं छीनता

कोई alternate screen नहीं, कोई mouse capture नहीं — किसी भी mode में, किसी भी flag के पीछे। सर्च, सेलेक्शन और tmux copy-mode चलते रहते हैं, और यह बदले तो एक टेस्ट बिल्ड फ़ेल कर देता है।

मंज़ूरी वहीं, जहाँ पूछी गई

लिखने से पहले run रुकता है और प्रस्तावित diff दिखाता है। y, a या n चुनिए और Enter से पक्का कीजिए — इसलिए वाक्य के बीच का कोई अक्षर लिखने का फ़ैसला नहीं कर सकता। 'इस session के लिए' उसी act को उसी target पर याद रखता है।

आपकी key, स्क्रीन पर कभी नहीं

wizard key को लाइव endpoint पर जाँचता है, फ़ाइल 0600 पर लिखता है, और provider का env var पहले से सेट हो तो key कहीं लिखता ही नहीं।

ख़र्च, और नतीजा

/cost पैसा और टोकन — run, session, मॉडल और दिन के हिसाब से; /stats नतीजे, पहली कोशिश, gate फ़ेल और latency। कुछ भी अंदाज़े से नहीं।

छत्तीस कमांड, चार समूहों में

ioबिना subcommand, इसी रिपॉज़िटरी में एक session खुल जाता है
/modelअगली बारी किस मॉडल को जाए, यह बदलिए — सिर्फ़ इस session के लिए
/resumeपुराना session खोलिए और उसका run जिस पर रुका था, उसका जवाब दीजिए
/statusपूरी session स्थिति scrollback में: policy परतें, sandbox backend, caps, बजट, कनेक्शन

यह आपका टर्मिनल नहीं छीनता

io न alternate screen में जाता है, न माउस capture करता है — किसी भी mode में, किसी भी flag के पीछे। हर पूरा हुआ मैसेज, tool call और सिस्टम लाइन टर्मिनल के अपने scrollback में जाती है; नीचे की कुछ पंक्तियाँ ही दोबारा बनती हैं।

इसलिए session ख़त्म होने पर पूरी बातचीत वहीं रहती है: टर्मिनल की सर्च उसे ढूँढ लेती है, tmux copy-mode स्क्रॉल कर लेता है, माउस से सेलेक्ट हो जाता है — और इनमें से कुछ भी यहाँ लिखा नहीं गया है। tests/structure.rs हर बाइट पकड़ता है और alternate-screen या mouse-capture sequence दिखे तो बिल्ड फ़ेल कर देता है।

इंस्टॉल

macOS · Linuxcurl -fsSL https://raw.githubusercontent.com/initorigin/io-cli/main/install.sh | sh
Windowsirm https://raw.githubusercontent.com/initorigin/io-cli/main/install.ps1 | iex
Homebrewbrew tap initorigin/io-cli https://github.com/initorigin/io-cli brew install initorigin/io-cli/io
Scoopscoop bucket add io-cli https://github.com/initorigin/io-cli scoop install io
From sourcegit clone https://github.com/initorigin/io-cli cargo build --release · binary at target/release/io · Rust 1.95+
cargo installNot a path. There is no crates.io publish — the distribution channel is the GitHub Release
IO_VERSION · IO_INSTALL_DIRInstall a specific version, or somewhere other than ~/.local/bin — %LOCALAPPDATA%\io\bin on Windows. Neither script needs administrator rights, and neither edits your PATH: if the directory is not on it, the script prints the line to add

दोनों स्क्रिप्ट आपकी मशीन के लिए सही बिल्ड चुनती हैं, unpack करने से पहले SHA256SUMS से जाँचती हैं, और आपकी ही डायरेक्टरी में इंस्टॉल करती हैं — न administrator अधिकार, न shell profile या PATH में कोई बदलाव। tap और bucket इसी रिपॉज़िटरी में रहते हैं, इसीलिए brew tap और scoop bucket add में URL देना पड़ता है। crates.io पर publish नहीं है: सोर्स से बनाने के लिए Rust 1.95 या ऊपर।

छत्तीस कमांड, चार समूह

the session

/clear · /resume · /fork · /profile · /contain · /setup · /exit

this turn

/model · /effort · /undo · /plan · /steer · /compact · /image · /copy · /copy diff · /commit

inspect

/help · /status · /context · /expand · /fleet · /skills · /cost · /stats · /store · /export

configure

/config · /theme · /remember · /memory · /mcp · /provider · /plugin · /gates · /import

समूह इस बात से बने हैं कि आप क्या कर रहे हैं, न कि harness का कौन हिस्सा जवाब देता है — और कोई समूह दस से ऊपर नहीं जाता। इनमें ग्यारह चलती turn के बीच चल जाती हैं, बाकी मना कर दी जाती हैं: नियम यह है कि कमांड करती क्या है, दिखती कितनी मासूम है यह नहीं।

कीज़

Shift+TabChange the permission posture, from the next turn.
Esc EscAt an empty prompt, rewinds the last turn — its files, its memory and the conversation head.
Ctrl+FThe tree of children this turn has spawned, and what it is costing.
Ctrl+TCommit the last step’s full detail into the scrollback. Nothing here opens a pane.
Ctrl+CRefused in both spellings, deliberately.

argv सतह

ioWith no subcommand, opens an interactive session. Global flags: -C, -m, --profile, --plain, on either side of a subcommand.
io setupThe first-run wizard: provider, credential verified against the live endpoint, model, posture, theme.
io exec "<goal>"One goal to completion with no terminal interaction. Takes --json, --sandbox, --policy, --provider.
io resumeCarries on a run that stopped for a question, a plan or an interrupted call; --list shows what is waiting.
io acpServes the Agent Client Protocol on stdio as newline-delimited JSON-RPC 2.0. stdout is the protocol. An image and an embedded resource are declared, so an editor can hand over the file you have open.
io mcp · plugin · config · skillManage MCP servers, capability bundles, configuration keys and skills from a shell — the same parse the slash commands use.
io upgradePrints the command that updates the binary you are running, for the way it was installed. It prints and does not run.

Exit codes

0 · OKThe run finished.
1 · FAILEDThe run failed, or the command line was not understood.
2 · REFUSEDDenied, refused, or the plan was rejected.
3 · CEILINGA step, time, cost or budget ceiling was reached, and nothing judged the work.
4 · PAUSEDWaiting on a question, a plan, an approval or an interrupted call — resumable with io resume, except an approval.
5 · UNFINISHEDThe run ended in a state the table does not name.
6 · UNVERIFIEDThe work was judged and did not hold up: a failed verification gate, or a run that never satisfied its output schema.

प्लैटफ़ॉर्म सपोर्ट

aarch64-apple-darwinmacOS, Apple silicon · io-harness’s own sandbox-exec
x86_64-apple-darwinmacOS, Intel · as above
x86_64-unknown-linux-muslLinux, statically linked · Landlock, bwrap, namespaces, floor
x86_64-pc-windows-msvcWindows · Job Object, with AppContainer opt-in

चारों artifacts और उनके SHA256SUMS हर GitHub Release के साथ हैं, और पूरा टेस्ट सूट CI में Ubuntu, macOS और Windows पर चलता है। कमांड को सीमित io-harness करता है, यह प्रोडक्ट नहीं — io footer पर दिखाता है कि इस होस्ट पर असल में कौन backend चला, क्योंकि जो mode माँगा गया और जो लागू हुआ, दोनों एक बात नहीं हैं।

स्किल्स, पाँच शामिल

हर एक एक markdown फ़ाइल है, जिसे एजेंट ज़रूरत पर पढ़ता है। अपनी स्किल /skills या io skill से जोड़िए-हटाइए; नाम frontmatter से आता है, और दो एक जैसे नामों में बाद वाला हार जाता है।

गाइड