
quill-router — Updated!
Repositório TrustedRouter.com para proxy seguro de LLMs.
TrustedRouter
LLMs com criptografia de ponta a ponta. Uma API. Privacidade com prova.
Pare de se preocupar com quem pode ver seus prompts. Diga ao seu agente de programação para migrar seu projeto, escolha o nível de privacidade que deseja, escolha um modelo, insira uma chave — pronto. A mesma API, mais de 30 modelos, uma única chave. O gateway roda em enclaves de hardware e você pode verificar criptograficamente que ele nunca registra seus dados.
Migre seu projeto com um único prompt
Cole isto no Codex, Claude Code ou Cursor — ele faz a migração para você:
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.
Em seguida:
- Escolha seu nível de privacidade ou região — use
{"provider": {"min_privacy": "zdr"}}para um piso rígido de retenção zero, ou{"provider": {"min_privacy": "confidential"}}para o piso mais forte de computação confidencial + E2EE. Os aliases convenientestrustedrouter/zdretrustedrouter/e2e(trustedrouter/confidential) selecionam esses pools. Usetrustedrouter/eucomhttps://api-europe-west4.quillrouter.com/v1para roteamento focado na UE. - Escolha um modelo — qualquer um entre centenas, ou
trustedrouter/autopara fallback automático quando a amplitude de provedores importa mais do que o filtro de privacidade mais estrito. - Cadastre-se, adicione um cartão, obtenha sua chave em https://trustedrouter.com.
- Publique — seus prompts agora passam por um caminho que você pode verificar.
Prefere configurar 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-...")
- Obtenha uma chave / pague-me: https://trustedrouter.com
- Experimente primeiro (sem cadastro): https://trustedrouter.com/chat
- Os detalhes técnicos (para os nerds): https://trustedrouter.com/security
- Gerar imagens: docs/image-generation.md
- Gerar vídeo: docs/video-generation.md
- Por que o construímos: https://jperla.com/blog/attestation-is-all-you-need
Para os nerds: como a privacidade é comprovável
O gateway do TrustedRouter é executado dentro do GCP Confidential Space. A plataforma assina uma medição do contêiner em execução. Verifique essa evidência assinada e compare seu digest de imagem com a medição de lançamento publicada. A revisão do código-fonte e a proveniência da build de lançamento estabelecem o que essa imagem medida faz; um digest correspondente por si só não prova a ausência de bugs ou de registro de logs.
Inspecione a evidência do GCP, sem conta:
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.
Salvar ou decodificar um JWT não é verificação. Use o
verificador de atestação
a partir de um checkout revisado do quill-cloud-proxy para verificar o emissor/assinatura,
nonce recente, vinculação de certificado/exportador TLS e a medição de release esperada.
Para um endpoint GCP, execute a partir desse 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"
O verificador obtém evidências novas na conexão TLS que verifica. Essa
verificação não atesta uma conexão curl ou SDK posterior e separada. Estes exemplos
usam o hostname publicado do GCP US Central para selecionar o formato de evidência do GCP. O endpoint
global pode selecionar outra nuvem; use sua política de verificação específica da nuvem
e as medições de the trust site.
| modelo de confiança | |
|---|---|
| OpenRouter, provedores hospedados | "Não registramos logs." Uma política que você não pode verificar. |
| Portkey, Cloudflare AI Gateway | Registre tudo para observabilidade. |
| LiteLLM | Auto-hospedado, mas o proxy em execução não é verificado. |
| TrustedRouter | Código aberto + atestação de hardware. Verifique o caminho do código; ele não registra nada. |
Escopo honesto: a atestação prova que o binário em execução é o binário publicado em hardware que você pode desafiar com um nonce. Ela não derrota um estado-nação com acesso físico ao host, e não prova que o binário de código aberto está livre de bugs. A âncora de confiança é a cadeia de atestação com suporte de hardware do Google Confidential Computing. Os provedores upstream tratam os prompts de acordo com suas próprias políticas — a postura de cada provedor é publicada nas páginas dos modelos.
Estrutura do repositório
Este repositório implementa o contrato do plano de controle: cobertura de rotas, gerenciamento de autenticação/chaves,
semântica do livro-razão de cobrança, metadados de uso, proibições de registro de prompts/saídas,
scrubbers do Sentry e abstrações de provedores. A implementação do gateway atestado
fica em quill-cloud-proxy.
Limite de confiança: api.trustedrouter.com é o caminho de prompt atestado e deve
terminar o TLS dentro do Confidential Space. trustedrouter.com é o plano de
controle e nunca deve servir um fallback de inferência em produção.