> ## Documentation Index
> Fetch the complete documentation index at: https://superturtle.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Drivers and Models

> Actual Claude/Codex driver behavior and model defaults used by the bot

The bot supports two drivers:

* **Claude Code** via the local `claude` CLI subprocess
* **Codex** via the local Codex CLI (`codex app-server`)

Claude is the default active driver for a fresh preference state. Codex is available only when `CODEX_ENABLED=true` and the local `codex` CLI is working.

## Claude Code vs Codex

| Aspect                  | Claude Code             | Codex                                       |
| ----------------------- | ----------------------- | ------------------------------------------- |
| Provider                | Anthropic               | OpenAI                                      |
| Driver toggle           | `/switch claude`        | `/switch codex`                             |
| Enabled by default      | Yes                     | No (`CODEX_ENABLED=true` required)          |
| Model picker            | `/model` (Claude list)  | `/model` (Codex live list)                  |
| Reasoning effort values | `low`, `medium`, `high` | `minimal`, `low`, `medium`, `high`, `xhigh` |

## Claude Models (from `src/session.ts`)

Current built-in Claude model list:

* `claude-opus-4-6` (`Opus 4.6`) — most capable for complex work
* `claude-sonnet-4-6` (`Sonnet 4.6`) — everyday tasks
* `claude-haiku-4-5-20251001` (`Haiku 4.5`) — fastest

Claude preference defaults (if no saved prefs exist):

* Model: `claude-opus-4-6`
* Effort: `high`
* Active driver: `claude`

<Note>
  In the `/model` UI, effort buttons are hidden when Haiku is selected.
</Note>

## Codex Models (from `src/codex-session.ts`)

The bot tries to fetch Codex models live from `codex app-server` (`model/list`, `includeHidden: false`).

If live fetch is unavailable, it falls back to this built-in list:

* `gpt-5.3-codex` (`GPT-5.3 Codex`) — most capable (recommended)
* `gpt-5.3-codex-spark` (`GPT-5.3 Codex Spark`) — fast, real-time (Pro)
* `gpt-5.2-codex` (`GPT-5.2 Codex`) — previous generation

Codex preference defaults (if no saved prefs exist):

* Model: `gpt-5.3-codex`
* Reasoning effort: `medium`

## Switching Drivers

### `/switch`

* `/switch` with no argument shows inline buttons for `claude` and `codex`.
* `/switch claude` forces Claude mode.
* `/switch codex` forces Codex mode and attempts to start a Codex thread immediately.
* If Codex is disabled, `/switch` replies with: `Codex is not enabled. Set CODEX_ENABLED=true in environment.`

## Choosing Model and Effort

### `/model` on Claude

Shows Claude models above plus effort buttons:

* `Low`
* `Medium`
* `High (default)`

### `/model` on Codex

Shows live/fallback Codex models plus effort buttons:

* `Minimal`
* `Low`
* `Medium (default)`
* `High`
* `X-High (deepest)`

Changing Codex model or effort starts a fresh Codex thread so the new settings apply immediately.

## Codex Runtime Policy Defaults (`src/config.ts`)

These env vars are parsed with safe defaults:

```bash theme={null}
CODEX_ENABLED=false
META_CODEX_SANDBOX_MODE=workspace-write
META_CODEX_APPROVAL_POLICY=never
META_CODEX_NETWORK_ACCESS=false
```

Valid values:

* `META_CODEX_SANDBOX_MODE`: `read-only`, `workspace-write`, `danger-full-access`
* `META_CODEX_APPROVAL_POLICY`: `never`, `on-request`, `on-failure`, `untrusted`
* `META_CODEX_NETWORK_ACCESS`: `true` or `false`

Invalid values fall back to defaults (`workspace-write`, `never`, `false`) with a warning.
