
quill-router — Updated!
Repo TrustedRouter.com per proxy sicuro di LLM
TrustedRouter
LLM con crittografia end-to-end. Una sola API. Privacy con prova.
Smetti di preoccuparti di chi può vedere i tuoi prompt. Dì al tuo agente di coding di migrare il tuo progetto, scegli quanto vuoi essere privato, scegli un modello, inserisci una chiave — fatto. Stessa API, oltre 30 modelli, una sola chiave. Il gateway gira in enclave hardware e puoi verificare crittograficamente che non registri mai i tuoi dati.
Migra il tuo progetto con un solo prompt
Incolla questo in Codex, Claude Code o Cursor — fa la migrazione per te:
Migrate this project to TrustedRouter, a privacy-first LLM router
(https://trustedrouter.com). Repoint my LLM client to base_url
"https://api.trustedrouter.com/v1" (or "https://api.trustedrouter.com" for the
Anthropic SDK), read the key from the TRUSTEDROUTER_API_KEY env var, and keep
all my existing calls working.
For a hard provider-side confidential-compute and end-to-end-encryption
requirement, add {"provider": {"min_privacy": "confidential"}}. TrustedRouter
fails closed when the selected model or provider cannot satisfy both controls.
Then tell me to sign up at trustedrouter.com, add a card, and paste my sk-tr
key into TRUSTEDROUTER_API_KEY.
Poi:
- Scegli il tuo livello di privacy o la tua regione — usa
{"provider": {"min_privacy": "zdr"}}per un limite minimo rigido di zero-retention, oppure{"provider": {"min_privacy": "confidential"}}per il limite più rigoroso di confidential-compute + E2EE. I comodi aliastrustedrouter/zdretrustedrouter/e2e(trustedrouter/confidential) selezionano quei pool. Usatrustedrouter/euconhttps://api-europe-west4.quillrouter.com/v1per un routing orientato all'UE. - Scegli un modello — uno qualsiasi tra centinaia, oppure
trustedrouter/autoper un fallback automatico quando l'ampiezza dei provider conta più del filtro di privacy più rigoroso. - Registrati, aggiungi una carta, ottieni la tua chiave su https://trustedrouter.com.
- Distribuisci — i tuoi prompt ora passano attraverso un percorso che puoi verificare.
Preferisci configurarlo manualmente?
# Codex
export OPENAI_BASE_URL="https://api.trustedrouter.com/v1"
export OPENAI_API_KEY="sk-tr-v1-..."
# Claude Code
export ANTHROPIC_BASE_URL="https://api.trustedrouter.com"
export ANTHROPIC_API_KEY="sk-tr-v1-..."
# Any OpenAI SDK
client = OpenAI(base_url="https://api.trustedrouter.com/v1", api_key="sk-tr-v1-...")
- Ottieni una chiave / sostienimi: https://trustedrouter.com
- Provalo prima (senza registrazione): https://trustedrouter.com/chat
- I dettagli tecnici (per gli appassionati): https://trustedrouter.com/security
- Genera immagini: docs/image-generation.md
- Genera video: docs/video-generation.md
- Perché l'abbiamo creato: https://jperla.com/blog/attestation-is-all-you-need
Per gli appassionati: come la privacy è dimostrabile
Il gateway di TrustedRouter viene eseguito all'interno di GCP Confidential Space. La piattaforma firma una misurazione del container in esecuzione. Verifica tale evidenza firmata e confronta il suo digest dell'immagine con la misurazione della release pubblicata. La revisione del codice sorgente e la provenienza della build di rilascio stabiliscono cosa fa quell'immagine misurata; un digest corrispondente da solo non dimostra l'assenza di bug o di logging.
Ispeziona l'evidenza GCP, senza account:
NONCE=$(openssl rand -hex 16)
curl --fail --silent --show-error \
"https://api-us-central1.quillrouter.com/attestation?nonce=$NONCE" \
--output attestation.jwt
# GCP returns a raw Google-signed JWT, not a JSON response.
# Decoded claims include eat_nonce and submods.container.image_digest.
# GCP evidence has no pcrs field; PCRs belong to AWS Nitro evidence.
Salvare o decodificare un JWT non è verifica. Usa il
verificatore di attestazione
da un checkout revisionato di quill-cloud-proxy per verificare issuer/firma,
nonce fresco, binding del certificato TLS/exporter e la misurazione di rilascio attesa.
Per un endpoint GCP, esegui da quel checkout:
DIGESTS=$(curl --fail --silent --show-error \
https://trust.trustedrouter.com/trust/accepted-image-digests-gcp.txt)
test -n "$DIGESTS" && uv run --script tools/verify-attestation.py \
--api-host api-us-central1.quillrouter.com --expect-digest "$DIGESTS"
Il verificatore recupera prove fresche sulla connessione TLS che verifica. Quel
controllo non attesta una successiva, separata connessione curl o SDK. Questi esempi
usano il nome host GCP US Central pubblicato per selezionare il formato delle prove GCP. L'endpoint
globale può selezionare un altro cloud; usa la sua politica di verifica specifica per il cloud
e le misurazioni da il sito di fiducia.
| modello di fiducia | |
|---|---|
| OpenRouter, provider ospitati | "Non registriamo log." Una politica che non puoi verificare. |
| Portkey, Cloudflare AI Gateway | Registra tutto per l'osservabilità. |
| LiteLLM | Self-host, ma il proxy in esecuzione non è verificato. |
| TrustedRouter | Open source + attestazione hardware. Verifica il percorso del codice; non registra nulla. |
Ambito onesto: l'attestazione dimostra che il binario in esecuzione è il binario pubblicato su hardware che puoi sfidare con un nonce. Non sconfigge uno stato-nazione con accesso fisico all'host, e non dimostra che il binario open-source sia privo di bug. L'ancora di fiducia è la catena di attestazione supportata dall'hardware di Google Confidential Computing. I provider upstream gestiscono i prompt secondo le proprie politiche — la postura di ciascun provider è pubblicata nelle pagine dei modelli.
Struttura del repository
Questo repo implementa il contratto del control-plane: copertura delle route, gestione di auth/key,
semantica del registro di fatturazione, metadati di utilizzo, divieti di logging di prompt/output,
scrubber Sentry e astrazioni dei provider. L'implementazione del gateway attestato
si trova in quill-cloud-proxy.
Confine di fiducia: api.trustedrouter.com è il percorso attestato dei prompt e deve
terminare TLS all'interno di Confidential Space. trustedrouter.com è il control
plane e non deve mai servire un fallback di inferenza di produzione.