> ## 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.

# aether agent-profile

> Manage your organization's agent profiles

An agent profile is a named preset of an agent, its model and thinking level, what its tasks run on, and what they continue on when a plan's window is spent. Profiles belong to an organization. `list`, `create` and a profile named by its name act in the one `--org` names, else the one `AETHER_ORG` names, else your personal organization; a profile's id reaches it in the organization that owns it, whichever `--org` names. An [automation](https://docs.runaether.dev/cli/automation.md) runs its tasks with a profile.

A `<profile>` argument is the profile's id, or its name in the organization. A UUID is always taken as a profile's id, so a profile named as a UUID is reached by its id.

## Subcommands

| Command | Description |
| - | - |
| `aether agent-profile list` | List the organization's profiles |
| `aether agent-profile get <profile>` | Show a profile |
| `aether agent-profile create` | Create a profile |
| `aether agent-profile update <profile>` | Update a profile |
| `aether agent-profile delete <profile>` | Delete a profile |

## `list`

```bash theme={"dark"}
aether agent-profile list
```

Lists each profile with its agent, model, thinking level and what it runs on. With `--json`, prints the profiles as the API returns them.

## `get`

```bash theme={"dark"}
aether agent-profile get reviewer
```

Shows the profile's agent, model, thinking level, what it runs on and its fallback. With `--json`, prints the profile as the API returns it.

## `create`

```bash theme={"dark"}
aether agent-profile create --name reviewer --agent-type claude-code
aether agent-profile create --name reviewer --agent-type codex --model gpt-6.1-sol --reasoning-effort high
aether agent-profile create --name reviewer --agent-type claude-code --runs-on aether
aether agent-profile create --name reviewer --agent-type claude-code --runs-on "Claude plan" --fallback any --fallback-then aether
```

**--name** `string`

Profile name, unique in the organization.

**--agent-type** `string`

The agent: `claude-code`, `codex` or `opencode`.

**--model** `string`

The model. Defaults to the agent's default model.

**--reasoning-effort** `string`

The thinking level, one the agent and model offer. Defaults to the model's own; `none` names no level.

**--runs-on** `string`

What the profile's tasks run on:

* `default`: nothing is pinned, so each task runs on its creator's default. This is the default.
* `aether`: Aether inference, paid from the organization's balance. Claude Code and Codex only.
* A connection you hold, by its name or its id. A UUID is always taken as a connection's id, so a connection named as a UUID is passed by its id. A name you hold under two connections is refused with their ids.

**--fallback** `string`

What a task continues on when its plan's window is spent:

* `none`: nothing, so a task on the profile's plan pin stops. This is the default. A profile that pins nothing has no fallback of its own: each task follows its creator's default, fallback and all.
* `any`: the first connection the pin's holder holds that the window does not block.
* `aether`, or a connection by its name or its id: that alone.

**--fallback-then** `string`

With `--fallback any`, what the task continues on when no connection is usable: `aether`, or a connection by its name or its id.

The API refuses a pin or a fallback the profile's agent cannot run on, such as a connection that works with another agent, your agent's own ChatGPT login, or Aether inference for OpenCode. Only a plan's window is spent, so only a plan pin carries a fallback, and only the pinned connection's holder chooses it. The CLI prints each refusal as the API words it.

## `update`

```bash theme={"dark"}
aether agent-profile update reviewer --name senior-reviewer
aether agent-profile update reviewer --model claude-sonnet-5-5
aether agent-profile update reviewer --reasoning-effort none
aether agent-profile update reviewer --runs-on default
aether agent-profile update reviewer --fallback none
```

Only the fields a flag names change: the update sends those alone, and the API keeps the rest. The flags are those of `create` but `--agent-type`, since a profile keeps its agent.

The API checks the model and thinking level together, so `--model` or `--reasoning-effort` sends both. A new `--model` keeps the thinking level when the model offers it, and `--reasoning-effort none` returns the profile to the model's default. Either saves a profile on a retired model on its successor, while `--model` naming a retired model is refused. The update reads the profile for the one its flags leave and sends it back as read, so a change to it someone saves between that read and the update's write is overwritten. The API refuses only a change it sees while it applies the write.

`--runs-on default` unpins the profile, which clears its fallback. When the profile has a fallback, a new pin names its `--fallback` too, or the API refuses it.

## `delete`

```bash theme={"dark"}
aether agent-profile delete reviewer --force
```

The API refuses to delete a profile an automation, an integration or a project's settings still name. With `--json`, prints the deleted profile's `agent_profile_id`.

**--force** `bool`

Skip the confirmation prompt.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.