Skip to content

HTTP エンドポイント

shunt が Claude Code LLM ゲートウェイとして提供するエンドポイント。

Updated View as Markdown
メソッド パス 目的
HEAD / Liveness プローブ
GET / 人間可読なランディング(バージョン + エンドポイント一覧)
GET /health ヘルスチェック — {"status":"ok","version":"x.y.z"}
GET /v1/models Model discovery — あなたの [[models]] エントリを返す
GET /routes shunt ネイティブのルート discovery — 設定された [[routes]] テーブルをそのまま返す(model → provider/upstream_model/effort のマッピング、claude プレフィックスの discovery エイリアスを含む)。/v1/models とは別物で、後者はより狭い Anthropic プロトコルの discovery レスポンス(id/display_name のみ)を提供する
POST /v1/messages 推論 — リクエストの model id に従ってルーティング
POST /v1/messages/count_tokens トークンカウント
GET /admin 管理ダッシュボード(HTML)。未サインイン時は /admin/login へリダイレクト
GET, POST /admin/login 管理トークンのログインフォームとブラウザーセッションの作成
POST /admin/logout ブラウザーセッションの破棄
GET /admin/accounts Claude アカウントストアのメタデータ: 名前、種類、有効期限、UUID。トークン本体は決して返さない
GET /admin/accounts/codex Codex アカウントストアのメタデータ: 名前、有効期限、ChatGPT アカウント ID。トークン本体は決して返さない
GET /admin/pool claude_oauth / chatgpt_oauth provider ごとのプール状態。Codex はクォータヘッダーを送らないため使用率フィールドは空
POST /admin/accounts/claude {name, mode} で Claude のブラウザープロビジョニングを開始。modeoauth または setup_token で、省略時は setup_token{authorize_url} を返す
POST /admin/accounts/claude/{name}/complete <code>#<state> を含む {code} で Claude プロビジョニングを完了。アカウントを保存し、有効(live)かどうかを報告
DELETE /admin/accounts/claude/{name} 指定した Claude アカウントのストアファイルを削除
POST /admin/accounts/codex {name} で ChatGPT OAuth を開始し、{authorize_url} を返す
POST /admin/accounts/codex/{name}/complete localhost の redirect URL 全体または <code>#<state> を含む {code} で Codex プロビジョニングを完了
DELETE /admin/accounts/codex/{name} 指定した Codex アカウントのストアファイルを削除
POST /backend-api/codex/responses Inbound Codex CLI パススルー — 実際の ChatGPT バックエンドパスをミラー
POST /responses Inbound Codex CLI パススルー — bare base_url 形式
POST /v1/responses Inbound Codex CLI パススルー — /v1 サフィックスの base_url 形式
POST /backend-api/codex/analytics-events/events Codex CLI analytics sink — 受理して破棄し、サニタイズ済みイベント名のカウンターのみ記録
POST /codex/analytics-events/events Codex CLI analytics sink — ルート形式の chatgpt_base_url

/admin* ルートは [server.admin] が設定されている場合にのみ存在します。そのテーブルがなければ、いずれも登録されません。

Inbound Codex Responses と analytics のルートは [server.codex_endpoint] が設定されている場合にのみ存在します。Responses ルートは OpenAI Responses のリクエストとレスポンスをそのまま中継します。2 つの analytics ルートは同じ inbound auth ポリシーを適用し、クライアント payload を転送または保持せず、認証後は不正な JSON やサイズ超過の body にも 200 {} を返します。サニタイズ済みイベント名だけを shunt.codex_client_events に記録し、metric sink がなければ純粋な破棄 sink として動作します。

GET /GET /health は、[server.auth] が有効なときも開いたままです(ヘルスチェックツールは通常トークンを付けられません)。機密情報は何も公開しません — ステータス、バージョン、およびすでに公開されているエンドポイント一覧のみです。

ゲートウェイプロトコル

shunt は公式の Claude Code LLM ゲートウェイプロトコルを実装します: 正しいヘッダーとボディフィールドの転送、機能のパススルー、システムプロンプトのアトリビューション処理。ゲートウェイ所有のエラーは Anthropic のエラー形で返され、上流のコンテキストオーバーフローエラーは Anthropic の prompt is too long の文言へ書き換えられて Claude Code のコンパクト&リトライが発火し、ストリーミングレスポンスはバッファリングなしで中継されます(オプションでキープアライブ ping 付き)。

Navigation

Type to search…

↑↓ navigate↵ selectEsc close