# Codex CLI (/ro/docs/integrations/codex-cli)

Conectezi OpenAI Codex CLI la codai printr-un provider de model personalizat pe Responses API, plus serverul MCP codai.

Codex CLI vorbește cu codai printr-un **provider de model personalizat** în `~/.codex/config.toml`: base URL `https://ai.codai.ro/v1`, wire API `responses`, cheia ta dintr-o variabilă de mediu și modelul `codai`.

<Callout type="warn" title="Încă neverificat cap-coadă">
Configurația urmează schema de configurare Codex și suportul codai pentru [Responses API](../gateway/wire-formats.mdx#openai-responses-api), dar nu am rulat încă o sesiune completă de agent Codex pe codai. Codex editează fișiere cu un tool `apply_patch` de tip **freeform**; stratul Responses din codai transmite doar tool-uri de tip **funcție**, deci editările de fișiere pot eșua sau pot trece pe comenzi shell. Dacă ceva nu merge, scrie-ne prin suportul din [hub.codai.ro](https://hub.codai.ro) și folosește între timp un [tool testat](./index.mdx).
</Callout>

## Înainte să începi [#înainte-să-începi]

- O cheie codai din [hub.codai.ro](https://hub.codai.ro) → **Keys → Create key** (detalii în [quickstart](../gateway/index.mdx)).
- Codex CLI instalat. Versiunile recente acceptă pentru provider-ii personalizați doar `wire_api = "responses"`; `"chat"` e respins.

Setezi cheia în shell-ul din care pornești Codex:

```powershell tab="PowerShell"
$env:CODAI_API_KEY = 'codai_xxxxxxxx'
```

```bash tab="bash"
export CODAI_API_KEY='codai_xxxxxxxx'
```

## Configurezi provider-ul [#configurezi-provider-ul]

```toml title="~/.codex/config.toml"
model = "codai"
model_provider = "codai"

[model_providers.codai]
name = "codai"
base_url = "https://ai.codai.ro/v1"
env_key = "CODAI_API_KEY"
wire_api = "responses"
```

- `env_key` numește variabila pe care o citește Codex; cheia în sine nu ajunge niciodată în fișier.
- Codex adaugă `/responses` la `base_url`, așa că păstrezi `/v1` și nimic după el.
- Ca să rămână configurația OpenAI implicită, pui `model` și `model_provider` într-un profil (`[profiles.codai]`) și pornești cu `codex --profile codai`.
- Codex nu are metadate încorporate pentru numele `codai` și afișează un avertisment despre „fallback metadata”. E inofensiv.

## MCP [#mcp]

```toml title="~/.codex/config.toml"
[mcp_servers.codai]
url = "https://ai.codai.ro/mcp"
bearer_token_env_var = "CODAI_API_KEY"
```

Aceeași cheie autentifică serverul MCP codai; tool-urile sunt listate în [clienți](../gateway/clients.mdx#server-mcp).

## Ce merge și ce nu [#ce-merge-și-ce-nu]

| Funcție | Cu codai |
| --- | --- |
| Chat, tool-uri funcție, streaming | Ar trebui să meargă — cererile Responses sunt traduse în Chat Completions în gateway |
| `reasoning.effort` | Mapat pe nivelurile de effort codai (`xhigh` → `max`) |
| `apply_patch` (tool freeform) | Nu e transmis — vezi avertismentul de mai sus |
| `previous_response_id`, mod background, `web_search` încorporat | Respinse cu `400 bad_request` |
| Rezumate de raționament | Nu sunt returnate |

## Depanare [#depanare]

- **`404`** — `base_url` nu are `/v1` sau are `/responses` la final.
- **`401 invalid_api_key`** — `CODAI_API_KEY` nu e setată în mediul din care a pornit Codex.
- **`400 bad_request` care pomenește `previous_response_id`** — acest build Codex înlănțuie răspunsurile; codai vrea inputul complet la fiecare cerere.
- **`429`** — citești `error.code`; vezi [limite și prețuri](../gateway/limits-pricing.mdx).

## Surse [#surse]

Verificat 2026-10-18 pe codul sursă Codex (tipurile de configurare și de provider din `codex-rs`).

- [OpenAI Codex — repository](https://github.com/openai/codex)
- [Codex — eliminarea `wire_api = "chat"`](https://github.com/openai/codex/discussions/7782)
