I have inspected the 9router Claude provider and model configuration to identify accepted model IDs, auth requirements, and compatibility modes for Claude Code requests. ### Key Findings - **9Router Integration**: The 9Router infrastructure is designed to act as a translation layer. It does not natively "speak" Claude Code's protocol; instead, it uses a set of `mitm` (Man-in-the-Middle) handlers and translators to normalize requests. - **Provider Aliases**: - `claude` (alias `cc`): This is the primary provider identifier for official Anthropic connections. - `anthropic-compatible-*`: This prefix is used for third-party gateways that follow the Anthropic Messages API spec. - **Model IDs**: - Accepted models are defined in `/app/open-sse/providers/registry/claude.js`. - Current models: `claude-fable-5`, `claude-sonnet-5`, `claude-opus-4-8`, `claude-opus-4-7`, `claude-haiku-4-5-20251001`. - **Compatibility Requirements**: - **Base URL**: Set `ANTHROPIC_BASE_URL` to `http://127.0.0.1:20128/v1` (for local 9router instances). - **Headers**: Claude Code expects specific headers (e.g., `Anthropic-Version`, `Anthropic-Beta`) which 9router's `claude.js` provider and `prepareClaudeRequest` logic handle automatically. - **Authentication**: When routing via 9router, you must use the API key provided by 9router as the `x-api-key` (passed as `ANTHROPIC_AUTH_TOKEN`). - **Passthrough Mode**: If using a native client (like the Claude CLI), the system attempts `normalizeClaudePassthrough` to scrub beta-specific shapes (like adaptive thinking or mid-conversation system prompts) that generic Anthropic-compatible gateways may reject. ### Actions Taken - Inspected `/app/open-sse/providers/registry/claude.js` to identify model IDs and headers. - Investigated `/app/open-sse/translator/formats/claude.js` for compatibility logic and request preparation (including thinking block handling). - Verified the core routing logic in `/app/open-sse/executors/base.js` and `/app/open-sse/services/provider.js`. - Confirmed that 9router auto-manages the translation between internal formats and the Claude Messages API via the `claude` provider registration. No files were modified; this was an inspection-only task. No issues were encountered during the investigation.