अपडेट पर वापस जाएँ
New releaseJul 26, 2026

kuri v0.4.14

ब्राउज़र ऑटोमेशन, वेब क्रॉलिंग, और AI एजेंटों के लिए iOS + Android डिवाइस नियंत्रण। Zig-नेटिव, टोकन-कुशल CDP स्नैपशॉट, HAR रिकॉर्डिंग, नेटिव adb वायर-प्रोटोकॉल क्लाइंट, और एक स्टैंडअलोन फ़ेचर।

साझा करें

Kuri

Kuri 🌰

Stable release License Zig node_modules status

इंस्टॉल

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 के साथ पूर्ण समानता।
  • @eN ref फॉर्मेट और ज़ीरो-प्रीफिक्स रेंडरिंग की बदौलत असली पेजों पर 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,4992,124सभी नोड्स + इंटरैक्टिव refs
kuri snap (केवल इंटरैक्टिव)~3,000~750एजेंट लूप्स के लिए सर्वोत्तम
kuri /page/state19048हल्का ऑब्ज़र्वेशन (url, title, scroll%, counts)
agent-browser snap (अनुमानित)~9,183~2,295[ref=e0] फॉर्मेट ओवरहेड

टोकन दक्षता: kuri बनाम agent-browser

पेजkuri टोकनagent-browser टोकनबचत
example.com4035-13% (मामूली पेज, agent-browser रूट छोड़ देता है)
Hacker News386~44012% कम
Google Flights SIN→TPE2,124~2,2957% कम

बचत kuri के कॉम्पैक्ट फॉर्मेट से आती है:

  • @e0 refs (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)। ईमानदार विभाजन:

अक्षविजेताविवरण
प्रति कॉल लेटेंसीkuri4–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 के साथ बनाई गई थीं।

बाइनरीमौजूदा साइज़
kuri1,093,840 B (1.04 MiB)
kuri-agent629,904 B (615 KiB)
kuri-browse1,089,120 B (1.04 MiB)
kuri-fetch2,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)

📦 इंस्टॉलेशन

वन-लाइन इंस्टॉल (macOS / Linux)

श्रेणियाँ