You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Persistent request/response logging with daily rotation
Data Flow
Request Flow (example: Claude Code → ChatGPT)
Claude Code sends Anthropic-format request to POST /v1/messages
messages-route.js resolves model routing (Kilo free / ChatGPT account / Claude account / API key)
Account rotator selects an account based on strategy (random/sequential)
src/translators/request/anthropic-to-openai-responses.js converts Anthropic format to OpenAI Responses format
direct-api.js sends request to ChatGPT backend with account credentials
src/translators/response/openai-responses-sse-to-anthropic-sse.js converts OpenAI SSE events back to Anthropic SSE format
Response is streamed to Claude Code
Smart Token Refresh
_checkAndRefreshExpiring() runs every 10 minutes
Only refreshes tokens with < 5 minutes remaining (not blind refresh)
For imported accounts (source === 'claude-code-import' or source === 'imported'), refreshed tokens are written back to the source CLI tool's credentials file
Model Mapping
Requested Model
Routed To
Auth Required
claude-opus-4-6
GPT-5.3 Codex / Anthropic API
Yes
claude-sonnet-4-6
GPT-5.2 Codex / Anthropic API
Yes
claude-haiku-4-5
Free model via Kilo AI
No
Haiku routing target is configurable from the dashboard Settings page.