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

# Agents and Models

> Choose the agent provider, model, interaction mode, and reasoning effort per task and as defaults.

Every [task](/guides/tasks) runs one coding agent. Aether ships four selectable agent providers — **Codex** (the default), **Claude Code**, **OpenCode**, and **Cursor** — each with its own curated model catalog and reasoning options. You pick the agent, model, interaction mode, and reasoning effort per task, and you can save those choices as project or account defaults.

## The Four Agents

| Agent       | `agent_type`  | Default model                | Reasoning effort                         |
| ----------- | ------------- | ---------------------------- | ---------------------------------------- |
| Codex       | `codex`       | `gpt-5.6-sol`                | `low`…`ultra` (model-dependent)          |
| Claude Code | `claude-code` | `claude-opus-5`              | `low`…`ultracode` (model-dependent)      |
| OpenCode    | `opencode`    | `opencode-claude-sonnet-4-6` | `low`, `medium`, `high` (default), `max` |
| Cursor      | `cursor`      | `claude-sonnet`              | none                                     |

The platform default agent is `codex` with `interaction_mode: default`. Every agent — including Codex — runs under your own provider account, so you must connect that provider before running a task with it — see [Connect agent providers](/guides/connect-agent-providers).

### Codex

OpenAI Codex. Seven models:

| Model slug            | Name                  |
| --------------------- | --------------------- |
| `gpt-5.6-sol`         | GPT-5.6 Sol (default) |
| `gpt-5.6-terra`       | GPT-5.6 Terra         |
| `gpt-5.6-luna`        | GPT-5.6 Luna          |
| `gpt-5.5`             | GPT-5.5               |
| `gpt-5.4`             | GPT-5.4               |
| `gpt-5.4-mini`        | GPT-5.4 Mini          |
| `gpt-5.3-codex-spark` | GPT-5.3 Codex Spark   |

### Claude Code

Anthropic Claude Code. Five models:

| Model slug          | Name                    |
| ------------------- | ----------------------- |
| `claude-opus-5`     | Claude Opus 5 (default) |
| `claude-fable-5`    | Claude Fable 5          |
| `claude-sonnet-5`   | Claude Sonnet 5         |
| `claude-sonnet-4-6` | Claude Sonnet 4.6       |
| `claude-haiku-4-5`  | Claude Haiku 4.5        |

Reasoning-effort options depend on the model. Fable 5, Opus 5, and Sonnet 5 accept the full range — `low`, `medium`, `high`, `xhigh`, `max`, `ultrathink`, `ultracode`. Sonnet 4.6 accepts the adaptive set — `low`, `medium`, `high`, `ultrathink`. The default effort is `xhigh`.

### OpenCode

OpenCode routes to a curated catalog of models across providers (OpenRouter, OpenCode Zen, Anthropic). The catalog includes Claude, GPT, Gemini, DeepSeek, Mimo, Kimi, Qwen, and GLM model variants; the default is `opencode-claude-sonnet-4-6`. Which models you can actually run depends on the credentials in your uploaded auth file and the provider's entitlements — selecting a model your bridge can't reach fails loudly.

OpenRouter-routed OpenCode models can use a [bring-your-own OpenRouter key](#openrouter-byok-for-opencode).

### Cursor

The Cursor agent (the `cursor-agent` CLI). Six models:

| Model slug      | Name                        |
| --------------- | --------------------------- |
| `auto`          | Auto (Cursor's selection)   |
| `claude-sonnet` | Claude Sonnet 4.6 (default) |
| `claude-haiku`  | Claude Haiku 4.5            |
| `gpt-5`         | GPT-5.5                     |
| `gemini-3-pro`  | Gemini 3.1 Pro              |
| `grok-4`        | Grok 4.3                    |

Cursor encodes thinking and context settings into the model itself, so it does not expose a separate reasoning-effort setting.

## Interaction Mode

Interaction mode controls how the agent starts work:

| Mode      | Behavior                                                                     |
| --------- | ---------------------------------------------------------------------------- |
| `default` | The agent starts editing and running code immediately.                       |
| `plan`    | The agent proposes a plan and waits for your approval before making changes. |

## Selecting Per Task

Pass the agent, model, interaction mode, and reasoning effort when you create a task. Unset fields fall back to the project defaults.

<Tabs>
  <Tab title="Web">
    Open the task composer and use its settings menu to pick the agent, model, interaction mode, and reasoning effort before sending the prompt.
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    aether run "Add a health-check endpoint" \
      --agent-type claude-code \
      --model claude-opus-5 \
      --interaction-mode plan \
      --reasoning-effort high
    ```

    `aether task create --prompt "..."` accepts the same option flags. Pass `--reasoning-effort none` to clear the thinking level.
  </Tab>
</Tabs>

### Changing a Task's Settings

`aether task update` changes the agent, model, interaction mode, and reasoning effort on an existing task. Only the flags you pass are changed.

```bash theme={null}
aether task update <task-id> --model gpt-5.4 --reasoning-effort medium
```

When you send a follow-up, you can override the interaction mode and reasoning effort for that turn:

```bash theme={null}
aether task respond <task-id> --message "Now add tests" --interaction-mode plan
```

## Setting Defaults

A new task inherits the agent, model, interaction mode, and reasoning effort from its project's [task defaults](/guides/projects#task-defaults). Update them once and every new task in that project starts from those settings.

<Tabs>
  <Tab title="Web">
    Set defaults in **Settings → Projects → Task defaults**, or save the current composer settings as the project default from the composer's settings menu.
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    aether project update <project-id> \
      --agent-type codex \
      --model gpt-5.5 \
      --interaction-mode default \
      --reasoning-effort xhigh
    ```
  </Tab>
</Tabs>

## OpenRouter BYOK for OpenCode

OpenCode models routed through OpenRouter can use your own OpenRouter API key. Add it once and OpenCode's OpenRouter-routed models use it.

```bash theme={null}
aether apikey add --provider openrouter
```

<Note>
  This OpenRouter key is only used for OpenCode's OpenRouter-routed models. Codex, Claude Code, and Cursor authenticate through their own provider connections — see [Connect agent providers](/guides/connect-agent-providers).
</Note>

## Next Steps

<CardGroup cols={2}>
  <Card title="Connect Agent Providers" icon="plug" href="/guides/connect-agent-providers">
    Authenticate Codex, Claude Code, Cursor, and OpenCode.
  </Card>

  <Card title="Tasks" icon="list-check" href="/guides/tasks">
    Create, watch, and respond to agent runs.
  </Card>
</CardGroup>
