Protocol differences between Claude Code, Codex CLI, and Cursor
Developer tools do not share a single wire format even when they connect to the same gateway domain. Claude Code speaks Anthropic's native Messages protocol and expects ANTHROPIC_BASE_URL set to https://app.llmfly.ai without a trailing /v1 suffix, paired with a key from the Claude Code group.
By contrast, Codex CLI and newer OpenAI reasoning models (such as gpt-6-astra, gpt-6.1-sol, gpt-6-sol, and gpt-6.1-terra) rely on the OpenAI /v1/responses wire API so reasoning summaries, patches, and shell tool calls survive multi-turn execution. Cursor and standard chat libraries connect to https://app.llmfly.ai/v1 using /v1/chat/completions.
| Client / SDK | Base URL | Wire protocol | Config file location |
|---|---|---|---|
| Claude Code | https://app.llmfly.ai | Anthropic Messages API | ~/.claude/settings.json |
| Codex CLI | https://app.llmfly.ai/v1 | OpenAI Responses API (responses) | ~/.codex/config.toml |
| Cursor IDE | https://app.llmfly.ai/v1 | OpenAI Chat Completions | Cursor Settings -> Models |
| OpenAI Python / TS SDK | https://app.llmfly.ai/v1 | Responses or Chat Completions | Server environment variables |