
quill-router — Updated!
安全なLLMプロキシングのためのTrustedRouter.comリポジトリ
TrustedRouter
エンドツーエンド暗号化された LLM。1つの API。証明付きのプライバシー。
誰があなたのプロンプトを見られるかを心配するのはもう終わりにしましょう。コーディングエージェントにプロジェクトの移行を指示し、希望するプライバシーレベルを選び、モデルを選び、キーを設定する — それだけで完了です。同じ API、30以上のモデル、1つのキー。ゲートウェイはハードウェアエンクレーブ内で動作し、あなたの情報を一切ログに記録していないことを暗号学的に検証できます。
1つのプロンプトでプロジェクトを移行
これを Codex、Claude Code、または Cursor に貼り付けるだけで、移行を自動で行います:
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.
次に:
- プライバシーレベルまたはリージョンを選択 — 厳格なゼロ保持の下限には
{"provider": {"min_privacy": "zdr"}}を、より強力なハードな 機密コンピューティング + E2EE の下限には{"provider": {"min_privacy": "confidential"}}を使用します。便利なtrustedrouter/zdrおよびtrustedrouter/e2e(trustedrouter/confidential) エイリアスは、それらの プールを選択します。EU 中心のルーティングにはhttps://api-europe-west4.quillrouter.com/v1とともにtrustedrouter/euを使用します。 - モデルを選択 — 数百のモデルのいずれか、または最も厳格なプライバシー
フィルターよりもプロバイダーの幅広さが重要な場合の自動フォールバックには
trustedrouter/autoを使用します。 - サインアップし、カードを追加し、キーを取得 するには https://trustedrouter.com へアクセスします。
- 出荷 — あなたのプロンプトは、検証可能なパスを通って実行されるようになります。
手動で設定したいですか?
# 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-...")
- キーを取得する / 課金する: https://trustedrouter.com
- まず試す(サインアップ不要): https://trustedrouter.com/chat
- 技術的な詳細(マニア向け): https://trustedrouter.com/security
- 画像を生成する: docs/image-generation.md
- 動画を生成する: docs/video-generation.md
- 開発の背景: https://jperla.com/blog/attestation-is-all-you-need
マニア向け: プライバシーが証明可能である仕組み
TrustedRouterのゲートウェイはGCP Confidential Space内で動作します。プラットフォームは 実行中のコンテナの測定値を署名します。その署名済み証拠を検証し、 イメージダイジェストを公開されたリリース測定値と比較してください。ソースレビューと リリースビルドの来歴によって、その測定されたイメージが何を行うかが確立されますが、 ダイジェストの一致だけではバグやログ記録が存在しないことを証明するものではありません。
アカウント不要でGCP証拠を検査できます:
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.
JWT の保存やデコードは検証ではありません。発行者/署名、フレッシュな nonce、TLS 証明書/エクスポーターのバインディング、および期待されるリリース測定値を検証するには、レビュー済みの quill-cloud-proxy チェックアウトから
attestation verifier
を使用してください。
GCP エンドポイントの場合は、そのチェックアウトから以下を実行します:
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"
検証器は、検証する TLS 接続上で新しい証拠を取得します。このチェックは、後に行われる別個の curl や SDK 接続を証明するものではありません。これらの例では、公開されている US Central GCP ホスト名を使用して GCP 証拠フォーマットを選択します。グローバルエンドポイントでは別のクラウドを選択できます。その場合は、クラウド固有の検証ポリシーと the trust site の測定値を使用してください。
| 信頼モデル | |
|---|---|
| OpenRouter、ホスト型プロバイダー | 「ログは取りません。」検証できないポリシー。 |
| Portkey、Cloudflare AI Gateway | 可観測性のためにすべてをログに記録。 |
| LiteLLM | セルフホストだが、稼働中のプロキシは未検証。 |
| TrustedRouter | オープンソース + ハードウェアアテステーション。コードパスを検証可能。何もログに記録しない。 |
正直な範囲: アテステーションは、稼働中のバイナリが公開されたバイナリであり、ノンスでチャレンジ可能なハードウェア上で動作していることを証明します。物理的なホストアクセスを持つ国家主体を防ぐものではなく、オープンソースバイナリにバグがないことを証明するものでもありません。信頼の基点は、Google Confidential Computing のハードウェアに裏付けられたアテステーションチェーンです。上流プロバイダーは各社のポリシーに従ってプロンプトを処理します。各プロバイダーの姿勢はモデルページで公開されています。
リポジトリ構成
このリポジトリはコントロールプレーンの契約を実装しています: ルートカバレッジ、認証/キー管理、課金台帳のセマンティクス、使用状況メタデータ、プロンプト/出力ログ記録の禁止、Sentry スクラバー、プロバイダー抽象化。アテステーション付きゲートウェイの実装は quill-cloud-proxy にあります。
信頼境界: api.trustedrouter.com はアテステーション付きプロンプトパスであり、Confidential Space 内で TLS を終端しなければなりません。trustedrouter.com はコントロールプレーンであり、本番推論のフォールバックを提供してはなりません。
api.quillrouter.com は恒久的に機能するエイリアス(同じアテステーション付きゲートウェイと証明書)として残るため、既存の統合は移行なしで動作し続けます。
ローカル
uv sync
uv run pytest
uv run uvicorn trusted_router.main:app --reload
稼働中のインスタンスに対するエンドツーエンドのスモークテスト:
TR_SMOKE_BASE_URL=http://127.0.0.1:18080/v1 uv run python scripts/smoke_e2e.py
本番環境では、TR_SMOKE_BASE_URL=https://api.trustedrouter.com/v1 を設定し、内部ゲートウェイのルートがトークンで保護されている場合は TR_SMOKE_INTERNAL_TOKEN を設定してください。
ローカルのオペレーター/プロバイダーキーは次の場所に設定します:
/Users/jperla/claude/.quill_cloud_keys.private
そのファイルは決してコミットされません。dotenv形式であることが想定されています:
ANTHROPIC_API_KEY=...
OPENAI_API_KEY=...
GEMINI_API_KEY=...
CEREBRAS_API_KEY=...
DEEPSEEK_API_KEY=...
MISTRAL_API_KEY=...
STRIPE_SECRET_KEY=...
STRIPE_WEBHOOK_SECRET=...
SENTRY_DSN=...
デプロイスクリプトは、一部の運用者ファイルですでに使われているローカルエイリアスも受け付けます。Anthropic 用の CLAUDE_API_KEY、OpenAI 用の CHATGPT_API_KEY、そして STRIPE_SECRET_KEY 用の STRIPE_KEY です。
Vertex は他のプロバイダープラットフォームとは異なります。本番の GCP デプロイでは、Cloud Run または Confidential Space のサービスアカウントと、メタデータ/ADC から取得した短命の Google アクセストークンを使用します。ファーストパーティのプリペイド Vertex ルートでは、このファイルに長期間有効な Vertex キーを置かないでください。代わりに、ランタイムのサービスアカウントに Vertex の権限を付与してください。
ライセンス
Business Source License 1.1。ソースは公開されているため、誰でも TrustedRouter のプライバシーとアテステーションに関する主張の背後にある正確なコードを読み、ビルドし、検証できます(https://trust.trustedrouter.com)— そのためにここにあります。非本番利用(セキュリティレビュー、監査、ローカル評価)は無料です。本番利用には Lore Hex Corp からの商用ライセンスが必要です: [email protected]。各バージョンは公開から 4 年後に Apache License 2.0 に変換されます。2026 年 7 月 3 日より前に公開されたコードは Apache-2.0 のままです。