Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@ Permission modes:
| ------------ | ---------------------------------------------------- |
| `read_file` | Read a file with optional line range. |
| `write_file` | Write content to a file, creating or overwriting it. |
| `edit_file` | Exact string replacement within a file. |
| `edit_file` | Apply a batch of exact-string replacements atomically via the required `edits` array (`oldString`, `newString`, optional `replaceAll`). |

## Bash

Use shell commands through `bash` for text search, file discovery, structural search, and directory listings.

| Tool | Description |
| ---------------------- | ----------------------------------------------------------------------------------------------- |
| `bash` | Execute a shell command. Pass `timeout` to cap execution time (max 600000 ms), or `run_in_background` to run it as a background MCP task that returns its complete output at completion. |
| `bash` | Execute a shell command. Pass `timeout` to cap execution time (max 600000 ms), or `run_in_background` to run it as a background MCP task whose results are delivered automatically when it completes. |

Because `bash` spawns real subprocesses, it composes with [deferred (proxied) tools](/aether/settings/mcp-servers/#merging-and-deferred-tool-behavior) from other MCP servers via the `aether mcp` CLI — pipelines, redirects, and command substitution all work.

Expand All @@ -66,6 +66,6 @@ Unless `--disable-lsp` is set, Aether wires LSP-backed tools into the `coding` s

| Tool | Description |
| ------------------ | ---------------------------------------------------------- |
| `lsp_symbol` | Definition, references, and hover for a symbol. |
| `lsp_symbol` | Definition, references, or hover lookup for a symbol, selected via the required `operation` parameter. |
| `lsp_check_errors` | Compiler diagnostics without running a full build command. |
| `lsp_rename` | Rename a symbol across the workspace. |
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Review
---

Review MCP opens agent-authored artifacts for human review. It supports:
The `review` server exposes a single `review_artifact` tool that opens agent-authored artifacts for human review. It supports:

- **Markdown** (`format: "markdown"`) opens in Aether's in-terminal Markdown review UI.
- **HTML** (`format: "html"`) opens in your browser with an annotation overlay for element-level comments.
Expand All @@ -15,6 +15,12 @@ Review MCP opens agent-authored artifacts for human review. It supports:
}
```

Supported args:

| Arg | Description |
| ------------------- | ------------------------------------------------------------------------------- |
| `--root-dir <path>` | Workspace root used to resolve relative artifact paths. Users don't need to set this as Aether sets this automatically. |

## Markdown

Submit Markdown inline or as a file path:
Expand All @@ -33,3 +39,14 @@ Submit HTML inline, as a file path, or as the URL of a web app already running o
{"format": "html", "source": {"type": "file", "path": "site/index.html"}}
{"format": "html", "source": {"type": "url", "url": "http://localhost:5173/settings"}}
```

## Results

The tool's structured result reports one of the following statuses:

| Status | Meaning |
| ----------- | ---------------------------------------------------------------------------------------------------- |
| `approved` | You approved the artifact. |
| `feedback` | You submitted feedback: a `feedback` comment, plus `annotations` with element-level HTML comments when present. |
| `cancelled` | The review UI was dismissed without a decision. |
| `declined` | You declined to review. |
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ aether acp [OPTIONS]
| `--agent` | `string` | Initial agent/mode for new sessions. Mutually exclusive with `--model` and `--reasoning-effort`. |
| `--model` | `string` | Initial model spec for new sessions. Mutually exclusive with `--agent`. |
| `--reasoning-effort` | `default \| disabled \| minimal \| low \| medium \| high \| xhigh \| max` | Initial reasoning effort for an explicit `--model`. Requires `--model`; mutually exclusive with `--agent`. |
| `--provider` | `provider.field=value` | Provider override. Supports `PROVIDER.url`, `PROVIDER.auth`, `PROVIDER.request-model`, and `bedrock.inference-profile-arn`. |
| `--provider` | `provider.field=value` | Provider override. Supports `PROVIDER.url`, `PROVIDER.auth`, `PROVIDER.request-model`, `PROVIDER.idle-timeout-secs`, and `bedrock.inference-profile-arn`. |
| `--settings-json` | `string` | Inline settings JSON. |
| `--settings-file` | `path` | Settings JSON file. |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ aether headless --model bedrock:anthropic.claude-sonnet-4-5-20250929-v1:0 \
| `--output` | `text \| pretty \| json` | Output format. Defaults to `text`. |
| `-v, --verbose` | flag | Verbose diagnostic logging to stderr. |
| `--events` | comma-separated list | Event kinds to emit. Omit to emit all. |
| `--provider` | `provider.field=value` | Provider override. Supports `PROVIDER.url`, `PROVIDER.auth`, `PROVIDER.request-model`, and `bedrock.inference-profile-arn`. |
| `--provider` | `provider.field=value` | Provider override. Supports `PROVIDER.url`, `PROVIDER.auth`, `PROVIDER.request-model`, `PROVIDER.idle-timeout-secs`, and `bedrock.inference-profile-arn`. |

`--sandbox-image` is a global CLI flag, so it can appear before the subcommand or in the subcommand options shown by help.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ Fireworks uses `https://api.fireworks.ai/inference/v1` by default. Serverless ca
"requestModel": "accounts/acme/deployments/coding-prod"
}
},
"agents": [{ "model": "fireworks:accounts/fireworks/models/glm-5p1", "userInvocable": true }]
"agents": [{ "model": "fireworks:accounts/fireworks/models/glm-5p3", "userInvocable": true }]
}
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ If a server entry has a `command` and no `type`, it is treated as `"type": "stdi
|-------|------|-------------|
| `type` | `"http"` | Required. |
| `url` | `string` | Streamable HTTP endpoint URL. |
| `headers` | `object` | Optional headers. Aether currently forwards the `Authorization` header to the transport. |
| `headers` | `object` | Optional headers. All configured headers are forwarded to the transport. |
| `oauth` | `object` | Optional custom CIMD or pre-registered public OAuth client settings. See [OAuth clients](#oauth-clients). |
| `deferTools` | `boolean \| object` | `true` proxies every tool; an object partitions tools with `include` and `exclude` patterns. |

Expand All @@ -149,7 +149,7 @@ If a server entry has a `command` and no `type`, it is treated as `"type": "stdi
|-------|------|-------------|
| `type` | `"sse"` | Required. |
| `url` | `string` | SSE endpoint URL. |
| `headers` | `object` | Optional headers. Aether currently forwards the `Authorization` header to the transport. |
| `headers` | `object` | Optional headers. All configured headers are forwarded to the transport. |
| `oauth` | `object` | Optional custom CIMD or pre-registered public OAuth client settings. See [OAuth clients](#oauth-clients). |
| `deferTools` | `boolean \| object` | `true` proxies every tool; an object partitions tools with `include` and `exclude` patterns. |

Expand Down Expand Up @@ -350,7 +350,7 @@ Only the private session socket and Aether executable directory are injected int

## Variable expansion

Variables are expanded in two places: MCP source paths in settings, and server fields inside MCP JSON files. Environment variables are expanded in stdio `command`, stdio `args`, stdio `env` values, in-memory `args`, HTTP/SSE `url`, and the HTTP/SSE `Authorization` header value. `${WORKSPACE}` and `${AETHER_HOME}` (the user-level Aether home, honoring the `AETHER_HOME` env var) are also available when server configs are converted into running MCP servers.
Variables are expanded in two places: MCP source paths in settings, and server fields inside MCP JSON files. Environment variables are expanded in stdio `command`, stdio `args`, stdio `env` values, in-memory `args`, HTTP/SSE `url`, and HTTP/SSE header values. `${WORKSPACE}` and `${AETHER_HOME}` (the user-level Aether home, honoring the `AETHER_HOME` env var) are also available when server configs are converted into running MCP servers.

Supported syntax:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,16 @@ The file-list header shows the active scope: `Git Diff · Both`, `Git Diff · Un
| `l` / `→` or `Enter` | In the file list, expand/open the selected entry and focus the diff |
| `j` / `↓` | Move down |
| `k` / `↑` | Move up |
| `Tab` | Switch focus between the file list and the diff pane |
| `PageDown` / `PageUp` | Page through the diff pane |
| `Home` / `End` | Jump to the first / last entry |
| `Enter` (diff pane focused) | Reveal one more context line around the gap at the cursor |
| `O` | Reveal all context collapsed in gaps |
| `o` | Toggle between the diff and the source view of the selected file |
| `f` | Toggle full-file context (show the entire file instead of just the hunks) |
| `v` | Cycle the diff layout: auto, unified, or split |
| `←` / `→` (split layout) | Select the old / new side of the diff |
| `t` | Open the theme picker |
| `?` | Show help |
| `r` | Refresh the diff |
| `Esc` / `Ctrl+G` | Close git diff view |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ If no agents are configured in your user or project settings, Aether starts onbo
├──────────────────────────────────────────┤
│ Prompt input [@file] [/command]│
├──────────────────────────────────────────┤
│ agent · mode · model ░░░░ · 45% │
│ mode · model ░░░░ · 45% │
└──────────────────────────────────────────┘
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ This tells the agent to create a fresh session. The conversation history is clea
/resume
```

This asks the agent for a list of previous sessions. A picker appears listing available sessions — type to fuzzy-search by title or path. When the terminal is wide enough, a preview panel shows each session's path, last-updated time, model, mode, tool-call count, and recent messages. Select one to restore it — the conversation history and configuration for that saved session are loaded from the agent.
This asks the agent for a list of previous sessions. A picker appears listing available sessions — type to fuzzy-search by title or path. When the terminal is wide enough, a preview panel shows each session's path, timestamp, model, mode, tool-call count, and recent messages. Select one to restore it — the conversation history and configuration for that saved session are loaded from the agent.

## Session state

Expand All @@ -32,7 +32,7 @@ Each session tracks:
| State | Description |
| -------------------- | ---------------------------------------- |
| Session ID | Unique identifier |
| Title | Agent-generated summary |
| Title | First line of your first message in the session |
| Working directory | The directory the session was started in |
| Config selections | Model, reasoning effort, mode, etc. |
| Conversation history | Full message history (stored by agent) |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,9 @@ Open with `/settings`. The overlay shows all configurable options:
- **Mode** — Switch to a different user-invocable agent profile, including its prompts, MCP servers, tools, model, and provider settings (also cyclable with `Shift+Tab`)
- **MCP servers** — View connected servers and their status
- **Provider logins** — Authenticate with providers that require it
- **Theme** — Switch the UI theme (provided by the terminal UI itself, not the agent)

These options are advertised by the agent — the terminal UI discovers them at session start. Different agents may expose different options.
Model, mode, MCP server, and provider options are advertised by the agent — the terminal UI discovers them at session start. Different agents may expose different options.

## How agent config works

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,9 @@ A `result` message is always emitted last (unless the stream errors), so it is a

### Token usage and estimated cost

Aether exposes accounting as a domain-level `usage` message rather than an ACP
extension notification:
Aether sends usage accounting over an ACP extension notification
(`_aether/session_usage`), which the SDK surfaces as a domain-level `usage`
message:

```ts
for await (const message of session.prompt("Implement the feature")) {
Expand Down
Loading