Providers
A provider is an agent CLI Aether can drive, plus the OpenRouter API. A driver is the code inside Aether that starts one provider’s CLI and translates its output into the transcript you see. Drivers run inside the app; there is no daemon.
Supported providers
Section titled “Supported providers”| Provider | Binary | Transport |
|---|---|---|
| Claude Code | claude |
-p with stream-json in and out over stdio |
| Codex | codex |
app-server |
| OpenCode | opencode |
One shared serve process for all chats, with its HTTP API and event stream |
| Pi | pi |
--mode rpc, newline-delimited JSON over stdio |
| Antigravity | agy |
-p |
| OpenRouter | none | HTTP API, for direct chats |
Each agent chat runs one CLI process in its session cwd. OpenCode is the exception: chats share one OpenCode service.
Finding the binary
Section titled “Finding the binary”For each provider Aether looks for the binary on an expanded PATH. To use a specific build, set a binary override in Settings. A leading ~/ is expanded.
Apps started from Finder or a desktop launcher inherit the desktop session’s PATH, not your shell’s. If Aether can’t find a CLI you can run in a terminal, set the override.
The CLI inherits Aether’s environment, with PATH repaired. Aether does not copy your .env or credentials anywhere.
Per-chat options
Section titled “Per-chat options”| Option | What it does |
|---|---|
| Model | Passed as --model when set, otherwise the CLI’s default. Aether stores one choice per provider. |
| Access | What the agent may do without asking. Only the modes the CLI supports are offered. |
| Effort | The CLI’s reasoning effort, when it has one. Empty means the CLI’s default. |
Access modes and what they map to:
| Mode | Claude Code | OpenCode | Pi |
|---|---|---|---|
| Ask | default permission mode; every request becomes an approval card |
Every permission request asks you | |
| Auto-edit | acceptEdits |
Edits, writes and patches are approved, the rest asks | |
| Read only | Read, grep, find and ls tools only | ||
| Full access | bypassPermissions |
Everything is approved | --approve |
New chats start in Ask, except Pi, which starts in Read only. Changing any option restarts the CLI and resumes the same conversation.
“Always allow” on an approval card is scoped to exactly what the CLI proposed. It is never a blanket grant.
OpenRouter
Section titled “OpenRouter”Direct chats use the OpenRouter API with the model in Settings, for example openrouter/auto. The API key is stored in the system keychain. OpenRouter chats can’t be leads and have no project.