
kuri v0.4.14
ब्राउज़र ऑटोमेशन, वेब क्रॉलिंग, और AI एजेंटों के लिए iOS + Android डिवाइस नियंत्रण। Zig-नेटिव, टोकन-कुशल CDP स्नैपशॉट, HAR रिकॉर्डिंग, नेटिव adb वायर-प्रोटोकॉल क्लाइंट, और एक स्टैंडअलोन फ़ेचर।
Kuri 🌰
इंस्टॉल
curl -fsSL https://kuri.trilok.ai/download | sh
macOS arm64/x86_64 और Linux x86_64/arm64। सिंगल बाइनरी, कोई रनटाइम डिपेंडेंसी नहीं।
डायरेक्ट डाउनलोड: macOS arm64 · macOS x86_64 · Linux x86_64 · Linux arm64
AI एजेंट्स के लिए ब्राउज़र ऑटोमेशन और वेब क्रॉलिंग। Zig में लिखा गया। ज़ीरो Node.js।
CDP ऑटोमेशन · A11y स्नैपशॉट · HAR रिकॉर्डिंग · स्टैंडअलोन फेचर · इंटरैक्टिव टर्मिनल ब्राउज़र · एजेंटिक CLI · सिक्योरिटी टेस्टिंग · iOS + Android डिवाइस कंट्रोल
क्विक स्टार्ट · बेंचमार्क · kuri-agent · सिक्योरिटी टेस्टिंग · API · स्किल्स · चेंजलॉग
टीमें Kuri पर क्यों स्विच करती हैं: मौजूदा Apple Silicon
ReleaseFastबिल्ड्स प्रति बाइनरी sub-2 MB रहते हैं, और 2026-04-23 को एक नए Google Flights रीरन में पूरेkuri-agentलूप (go→snap→click→snap→eval) के लिए 3,392 टोकन मापे गए। प्रतिशत बताने से पहले क्रॉस-टूल डेल्टा को उसी एनवायरनमेंट में दोबारा चलाना चाहिए।
एजेंट्स के लिए Kuri क्यों जीतता है
अधिकांश ब्राउज़र टूलिंग QA इंजीनियर्स के लिए बनाई गई थी। Kuri एजेंट लूप्स के लिए बनाया गया है: पेज पढ़ो, टोकन लागत कम रखो, स्थिर refs पर कार्य करो, और आगे बढ़ो।
- 135 HTTP एंडपॉइंट्स — React इंस्पेक्शन से Core Web Vitals तक, agent-browser और browser-use के साथ पूर्ण समानता।
@eNref फॉर्मेट और ज़ीरो-प्रीफिक्स रेंडरिंग की बदौलत असली पेजों पर agent-browser की तुलना में 7-12% कम टोकन।- उसी Google Flights पेज के लिए
/page/state(48 टोकन) बनाम पूर्ण स्नैपशॉट (2,124 टोकन) के साथ 44x हल्के ऑब्ज़र्वेशन। - बैच एक्ज़ीक्यूशन —
POST /batchएक HTTP कॉल में N कमांड भेजता है, जिससे N-1 राउंड-ट्रिप और N-1 LLM टर्न समाप्त हो जाते हैं। - React-संगत — भरोसेमंद CDP माउस इवेंट्स और प्रति-कैरेक्टर की इवेंट्स React 18/19
onClickऔरonChangeको ट्रिगर करते हैं।
स्नैपशॉट टोकन: Google Flights SIN → TPE
इस वर्कस्पेस में 2026-05-24 को नया रीरन, wc -c और chars/4 अनुमान से मापा गया।
| टूल / मोड | Chars | ~टोकन | नोट |
|---|---|---|---|
kuri snap (पूर्ण) | 8,499 | 2,124 | सभी नोड्स + इंटरैक्टिव refs |
kuri snap (केवल इंटरैक्टिव) | ~3,000 | ~750 | एजेंट लूप्स के लिए सर्वोत्तम |
kuri /page/state | 190 | 48 | हल्का ऑब्ज़र्वेशन (url, title, scroll%, counts) |
| agent-browser snap (अनुमानित) | ~9,183 | ~2,295 | [ref=e0] फॉर्मेट ओवरहेड |
टोकन दक्षता: kuri बनाम agent-browser
| पेज | kuri टोकन | agent-browser टोकन | बचत |
|---|---|---|---|
| example.com | 40 | 35 | -13% (मामूली पेज, agent-browser रूट छोड़ देता है) |
| Hacker News | 386 | ~440 | 12% कम |
| Google Flights SIN→TPE | 2,124 | ~2,295 | 7% कम |
बचत kuri के कॉम्पैक्ट फॉर्मेट से आती है:
@e0refs (3 chars) बनाम[ref=e0](9 chars)- प्रति लाइन कोई
-प्रीफिक्स नहीं (2 chars × लाइन काउंट बचता है) - समान इंडेंटेशन, समान नोड फ़िल्टरिंग
पूर्ण वर्कफ़्लो लागत: go → snap → click → snap → eval
| टूल | प्रति साइकल टोकन |
|---|---|
| kuri-agent | ~3,400 |
दूसरे snap की जगह /page/state के साथ | ~1,700 |
POST /batch के साथ (सब एक कॉल में) | ~1,700 (समान टोकन, 5 के बजाय 1 HTTP कॉल) |
kuri बनाम libretto
libretto (Playwright + Node) प्रति-स्टेप टोकन लागत पर सबसे नज़दीकी प्रतिस्पर्धी है। 2026-07-04 को आमने-सामने मापा गया — समान Chrome, समान टैब, असली tiktoken o200k_base काउंट्स (पूरी कार्यप्रणाली और पुनरुत्पादन: benchmarks/libretto_comparison.md)। ईमानदार विभाजन:
| अक्ष | विजेता | विवरण |
|---|---|---|
| प्रति कॉल लेटेंसी | kuri | 4–117 ms बनाम 1,344–1,500 ms (13–376× तेज़ — पर्सिस्टेंट सर्वर बनाम प्रति-कमांड Node) |
| स्नैपशॉट टोकन, सामान्य पेज | kuri | सरल 61 बनाम 151 (2.5×), आर्टिकल 265 बनाम 363 (1.37×) — अधिक सटीक ग्रामर |
| स्नैपशॉट टोकन, बड़ी सूची | विभाजित | kuri डिफ़ॉल्ट 4,424 बनाम 813 — kuri सभी 259 refs उत्सर्जित करता है, libretto डिफ़ॉल्ट रूप से ट्रंकेट करता है। limit=5 के साथ kuri 555 टोकन रेंडर करता है (libretto से 1.46× कम), 34 refs + … +45 more मार्कर |
| ट्रैजेक्टरी (फ़ीड, 9 क्लिक) | kuri, बमुश्किल | 898 बनाम 939 टोकन (limit=5 बेस + diff लूप बनाम exec लूप) — समानता-से-मामूली बढ़त; सुबह का 5.1× नुकसान अनट्रंकेटेड बेस था |
| रिपीट रन | libretto | ट्रैजेक्टरीज़ को Playwright स्क्रिप्ट में कंपाइल करता है → 0-टोकन रीप्ले; kuri हर रन में लूप का भुगतान दोबारा करता है |
libretto का अध्ययन करने से kuri को क्या मिला (इस रिलीज़ में सब शिप हुआ): एक diff-फर्स्ट लूप (take_snapshot_diff, ~38 टोकन/स्टेप); एक अडैप्टिव diff जो नेविगेशन पर ! page replaced हेडर के साथ पूर्ण स्नैपशॉट पर फ़ॉलबैक करता है; केवल-आइडेंटिटी रिमूवल लाइन्स; डिस्क पर लिखे गए स्क्रीनशॉट (पाथ लौटाया जाता है, बाइट्स कभी कॉन्टेक्स्ट में नहीं आते); MCP पर get_page_state; और — parseA11yNodes को असली DFS ट्री वॉक के रूप में फिर से लिखने के बाद — ऑप्ट-इन लिस्ट ट्रंकेशन (/snapshot?limit=N, प्रति कैप्ड रन एक … +K more लाइन), स्कोप्ड री-कैप्चर (scope=@ref), और हायरार्की इंडेंटेशन, जो MCP take_snapshot पर uid/limit के रूप में भी उपलब्ध है। 9-क्लिक फ़ीड ट्रैजेक्टरी जिसकी लागत नैव पूर्ण री-स्नैपशॉट्स के साथ 44,285 टोकन थी, अब ट्रंकेटेड बेस + diffs के साथ 898 है — 49× सस्ता, और libretto के 939 से आगे।
ऊपर की पुरानी टेबल्स
chars/4टोकन अनुमान का उपयोग करती हैं; libretto तुलना असलीtiktokenकाउंट्स का उपयोग करती है। प्रतिशत बताने से पहले अपने एनवायरनमेंट में क्रॉस-टूल नंबर दोबारा चलाएँ।
बाइनरी साइज़ और मेमोरी
Apple M4 Pro, macOS 26.4.1 पर मापा गया। मौजूदा बाइनरीज़ -Doptimize=ReleaseFast के साथ बनाई गई थीं।
| बाइनरी | मौजूदा साइज़ |
|---|---|
kuri | 1,093,840 B (1.04 MiB) |
kuri-agent | 629,904 B (615 KiB) |
kuri-browse | 1,089,120 B (1.04 MiB) |
kuri-fetch | 2,063,488 B (1.97 MiB) |
Zig 0.16 माइग्रेशन में RSS स्थिर रहा
मौजूदा v0.4.3 ReleaseFast बिल्ड के विरुद्ध /usr/bin/time -l से मापा गया।
| कमांड | v0.4.3 मीन मैक्स RSS |
|---|---|
kuri-fetch --version | ~2.45 MiB |
kuri-browse --version | ~2.45 MiB |
kuri-fetch --quiet --dump markdown http://example.com/ | ~9.17 MiB |
समस्या
हर ब्राउज़र ऑटोमेशन टूल Playwright (~300 MB), एक Node.js रनटाइम, और npm डिपेंडेंसीज़ का ढेर साथ लाता है। आपका AI एजेंट बस एक पेज पढ़ना, एक बटन क्लिक करना, और आगे बढ़ना चाहता है। Kuri एक सिंगल Zig बाइनरी है। चार मोड, ज़ीरो रनटाइम:
kuri → CDP server (Chrome automation, a11y snapshots, HAR)
kuri-fetch → standalone fetcher (no Chrome, QuickJS for JS, ~2 MB)
kuri-browse → interactive terminal browser (navigate, follow links, search)
kuri-agent → agentic CLI (scriptable Chrome automation + security testing)