
Repositorio de TrustedRouter.com para proxy seguro de LLM.
Deja de preocuparte por quién puede ver tus prompts. Dile a tu agente de programación que migre tu proyecto, elige cuán privado quieres ser, elige un modelo, introduce una clave — listo. La misma API, más de 30 modelos, una sola clave. La puerta de enlace se ejecuta en enclaves de hardware y puedes verificar criptográficamente que nunca registra tus datos.
Pega esto en Codex, Claude Code o Cursor — hace la migración por ti:```text 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.
Luego:
1. **Elige tu nivel de privacidad o región** — usa
`{"provider": {"min_privacy": "zdr"}}` para un límite estricto de retención cero, o
`{"provider": {"min_privacy": "confidential"}}` para el límite más fuerte de
computación confidencial + E2EE. Los prácticos alias `trustedrouter/zdr` y
`trustedrouter/e2e` (`trustedrouter/confidential`) seleccionan esos
grupos. Usa `trustedrouter/eu` con
`https://api-europe-west4.quillrouter.com/v1` para enrutamiento centrado en la UE.
2. **Elige un modelo** — cualquiera de los cientos disponibles, o `trustedrouter/auto` para
respaldo automático cuando la amplitud de proveedores importa más que el filtro
de privacidad más estricto.
3. **Regístrate, añade una tarjeta, obtén tu clave** en https://trustedrouter.com.
4. **Despliega** — tus prompts ahora se ejecutan a través de una ruta que puedes verificar.
<details>
<summary>¿Prefieres configurarlo manualmente?</summary>```bash
# 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-...")
La puerta de enlace de TrustedRouter se ejecuta dentro de GCP Confidential Space. La plataforma firma una medición del binario en ejecución; tú comparas ese hash con este repositorio. Si coinciden, sabes — no asumes — que el código que maneja tus prompts es el código que puedes leer aquí, y que nunca escribe tus prompts en disco.
Verifícalo tú mismo en 60 segundos, sin cuenta:```bash NONCE=$(openssl rand -hex 16) curl -s "https://api.trustedrouter.com/attestation?nonce=$NONCE" | jq .
| | modelo de confianza |
|---|---|
| OpenRouter, proveedores alojados | "No registramos." Una política que no puedes verificar. |
| Portkey, Cloudflare AI Gateway | Registran todo para observabilidad. |
| LiteLLM | Autoalojado, pero el proxy en ejecución no está verificado. |
| **TrustedRouter** | **Código abierto + atestación de hardware. Verifica la ruta del código; no registra nada.** |
Alcance honesto: la atestación demuestra que el binario en ejecución es el binario publicado en
hardware que puedes desafiar con un nonce. No derrota a un estado-nación con
acceso físico al host, y no demuestra que el binario de código abierto esté libre de errores.
El ancla de confianza es la cadena de atestación respaldada por hardware de Google Confidential Computing. Los proveedores upstream gestionan los prompts según
sus propias políticas — la postura de cada proveedor se publica en las páginas de los modelos.
</details>
---
## Estructura del repositorio
Este repositorio implementa el contrato del plano de control: cobertura de rutas, gestión de autenticación/claves,
semántica del libro mayor de facturación, metadatos de uso, prohibiciones de registro de prompts/salidas, depuradores de Sentry y abstracciones de proveedores. La implementación atestada de la pasarela
vive en `quill-cloud-proxy`.
Límite de confianza: `api.trustedrouter.com` es la ruta atestada de prompts y debe
terminar TLS dentro de Confidential Space. `trustedrouter.com` es el plano de
control y nunca debe servir un fallback de inferencia en producción.
`api.quillrouter.com` sigue siendo un alias permanente funcional (misma pasarela
atestada y certificado), por lo que las integraciones existentes siguen funcionando sin migración.
## Local```bash
uv sync
uv run pytest
uv run uvicorn trusted_router.main:app --reload
Prueba de humo de extremo a extremo contra una instancia en ejecución:```bash TR_SMOKE_BASE_URL=http://127.0.0.1:18080/v1 uv run python scripts/smoke_e2e.py
Para producción, configure `TR_SMOKE_BASE_URL=https://api.trustedrouter.com/v1` y
`TR_SMOKE_INTERNAL_TOKEN` si las rutas internas del gateway están protegidas por token.