LLMs
LLM models are specified in settings via a string with format provider:model-id.
Examples
Section titled “Examples”{ "agents": [ { "model": "zai:glm-5.1", ... } ]}| Form | Example | Meaning |
|---|---|---|
| Single model | zai:glm-5.1 | Use one provider/model pair. |
| Alloy | zai:glm-5.1,openai:gpt-5.5 | Round-robin between model specs each conversation turn. |
Supported Providers
Section titled “Supported Providers”Anthropic
Section titled “Anthropic”| Credentials | ANTHROPIC_API_KEY |
| Model syntax | anthropic:<model-id> |
| Default provider model | claude-sonnet-4-5-20250929 |
OpenAI
Section titled “OpenAI”| Credentials | OPENAI_API_KEY |
| Model syntax | openai:<model-id> |
| Credentials | OAuth login stored in the configured credential store; OS keychain by default |
| Model syntax | codex:<model-id> |
| Common model | codex:gpt-5.5 |
Codex uses OpenAI’s Codex OAuth flow through the client. If no Codex credentials are available, Aether asks you to log in when the model is selected.
OpenRouter
Section titled “OpenRouter”| Credentials | OPENROUTER_API_KEY |
| Model syntax | openrouter:<vendor>/<model-id> |
Use the vendor/model format from the OpenRouter model list.
OpenAI-compatible providers
Section titled “OpenAI-compatible providers”Aether has built-in OpenAI-compatible provider configs for:
| Provider | Syntax | Env var |
|---|---|---|
| DeepSeek | deepseek:<model-id> | DEEPSEEK_API_KEY |
| Moonshot | moonshot:<model-id> | MOONSHOT_API_KEY |
| ZAI | zai:<model-id> | ZAI_API_KEY |
Gemini
Section titled “Gemini”| Credentials | GEMINI_API_KEY |
| Model syntax | gemini:<model-id> |
AWS Bedrock
Section titled “AWS Bedrock”| Credentials | AWS credential chain (environment, config file, IAM role, etc.) |
| Model syntax | bedrock:<model-id> |
Use the Bedrock foundation model or system profile model ID as the Aether model identity. Aether uses this value for context windows, multimodal/reasoning capability checks, and Bedrock prompt caching decisions.
If you route traffic through an inference profile, configure the profile ARN as a provider override instead of putting the ARN in model:
{ "agents": [ { "name": "BedrockProfile", "description": "Routes Bedrock requests through an application inference profile", "model": "bedrock:anthropic.claude-sonnet-4-5-20250929-v1:0", "providers": { "bedrock": { "inferenceProfileArn": "arn:aws:bedrock:us-west-2:000000000000:application-inference-profile/000000000000" } }, "userInvocable": true } ]}Do not use bedrock:arn:aws:bedrock:... as the model. The ARN only identifies the request target; it does not tell Aether which model capabilities or context window to use.
Ollama
Section titled “Ollama”| Credentials | None |
| Model syntax | ollama:<model-id> |
| Host override | OLLAMA_HOST |
Aether discovers models you have pulled into Ollama.
llama.cpp
Section titled “llama.cpp”| Credentials | None |
| Model syntax | llamacpp:<model-id> |
| Host override | LLAMA_CPP_HOST |
Aether queries the server’s /v1/models endpoint for the currently loaded model.
Reasoning effort
Section titled “Reasoning effort”Some providers support extended thinking. Set reasoningEffort on an agent to request a thinking budget:
| Value | Meaning |
|---|---|
"low" | Minimal thinking |
"medium" | Moderate thinking |
"high" | Extended thinking |
"xhigh" | Maximum thinking budget for providers that expose a fourth level |
{ "agents": [ { "name": "Plan", "description": "Plans implementation strategy", "model": "codex:gpt-5.5", "reasoningEffort": "xhigh", "userInvocable": true, "prompts": [".aether/PLAN.md"] } ]}Providers that do not support the requested effort ignore it or map it to their closest available setting.
Alloying
Section titled “Alloying”An alloy spec is a comma-separated list of model specs. Each conversation turn uses the next provider in the list, cycling round-robin.
{ "agents": [ { "name": "Alloy", "description": "Alternates between cloud and local models", "model": "zai:glm-5.1,ollama:llama3.2", "userInvocable": true, "prompts": [".aether/ALLOY.md"] } ]}Every model in the alloy must be usable in the current runtime environment: required credentials must be set, and local servers must be running.