Skip to content

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.

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.

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.

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.

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.