# Codex CLI & Claude Code


    Connect → Codex & Claude Code

# Use AxForge with Codex CLI & Claude Code

    OpenAI's **Codex CLI** speaks the
    Responses API and Anthropic's
    **Claude Code** speaks the
    Messages API — not Chat Completions. So
    AxForge serves both natively: `api.axforge.ai/v1/responses` and
    `api.axforge.ai/v1/messages` translate to the same models behind your
    key, with tool calling and streaming. Point each tool straight at us — no proxy.

## Get the CLIs

Both are terminal tools installed from npm, and each is maintained by its own
    vendor — take the current command from their own pages
    (Codex CLI,
    Claude Code)
    rather than from us, so it does not go stale here. What matters for AxForge is the
    endpoint each one talks to, below.

## Codex CLI

In your user-level `~/.codex/config.toml`, add an AxForge provider that
    uses the Responses wire API:

```
model = "chat"                    # or agentic, or qwen3.8-27b-nvfp4
model_provider = "axforge"

[model_providers.axforge]
name = "AxForge"
base_url = "https://api.axforge.ai/v1"
env_key = "AXFORGE_API_KEY"       # env var holding your AxForge key
wire_api = "responses"
```

Export the key (`export AXFORGE_API_KEY=your-axforge-key`) and run
    `codex`.

    **Two things.** `wire_api` must be
    `"responses"` — Codex removed the chat wire API in early 2026. Use a
    _new_ `model_provider` id (don't override the built-in
    `openai` one), in the user-level file, not a project-local one.

## Claude Code

Point Claude Code at AxForge's Anthropic-format endpoint with two env vars:

```
$ export ANTHROPIC_BASE_URL=https://api.axforge.ai
$ export ANTHROPIC_AUTH_TOKEN=your-axforge-key
$ claude                                  # runs on AxForge's /v1/messages
```

    **Always set the token.** `ANTHROPIC_AUTH_TOKEN`
    is sent as `Authorization: Bearer`; without a credential Claude Code falls
    back to a saved claude.ai login instead of AxForge. (`ANTHROPIC_API_KEY`,
    sent as `x-api-key`, works too.)

## Prefer a gateway?

You don't need one, but if you already run LiteLLM
    for budgets, fan-out, or multiple providers, it can front AxForge and expose the same
    Responses and Messages surfaces — point Codex/Claude Code at the proxy instead. Either
    way works.

## Check that it worked

Two things, and the second is the one that proves it end to end:

      - The CLI starts without a provider error and answers a prompt.
- The reply streams rather than arriving in one piece.

      - The call appears in the console at
      Billing & usage within a minute or
      two. Nothing else confirms that _your_ key reached _our_ API — a reply
      alone could be a cache or another provider.

## When it does not work

      | What you see | What it means | Fix |  |

        | `404` on `/chat/completions` | the tool is speaking the wrong API for its endpoint | Codex wants `/v1/responses`, Claude Code wants `/v1/messages` — not `/v1/chat/completions` |  |

        | `401` | the key, or it is in the wrong variable | each CLI reads its own environment variable — check which one |  |

        | It reaches the vendor instead | the base URL was not picked up | some CLIs only read it at start — restart after changing it |  |

    Run the self-test first when you are
    unsure — it says in one click whether the problem is your key, your quota or us, so you
    know whether the tool is worth debugging at all.

      &larr; LiteLLM
      Back to all tools &rarr;



Source: https://axforge.ai/docs/connect/codex-claude-code/
