Aether

The open-source coding agent you control

Every token is yours. No injected prompts, tools or telemetry. Batteries included.

$ cargo install aether

Get up and running in ~5 minutes

From install to running agent — everything is plain config files and markdown.

1. Install

Install the CLI from crates.io.
terminal
$ cargo install aether-agent-cli

2. Create your 1st agent

Scaffold config files, tools, and a default agent prompt.
terminal
$ aether agent new
Created .aether/settings.json
Created .aether/mcp.json
Created .aether/SYSTEM.md
Created AGENTS.md

3. Run it your way: TUI, IDE/editor or headless

Launch the interactive TUI, run headless for scripts and CI, or expose over ACP for editor integration.
Interactive TUI
$ aether
Editor/IDE (via ACP)
$ aether acp
Headless
$ aether headless "refactor auth"

Use any LLM, cloud or local

Plus, you can bring your own.

Cloud

Anthropic, OpenAI, OpenRouter, DeepSeek, Moonshot, Zai, LlamaCpp and more are supported out of the box.
.aether/settings.json
{
"agents": [
{
"name": "Plan",
"model": "codex:gpt-5.4",
"reasoningEffort": "high"
},
{
"name": "Build",
"model": "zai:glm-5.1"
},
{
"name": "Fast",
"model": "openrouter:minimax/minimax-m2.7"
}
]
}

Local

Run local models with llama.cpp or Ollama.
.aether/settings.json
{
"agents": [
...
{
"name": "Local",
"model": "llamacpp:unsloth/Qwen3.5-9B-GGUF"
}
]
}

Combine models by alloying them together

Combine the strengths of multiple models by round-robining between them each conversation turn. You can even mix cloud and local models together.
.aether/settings.json
{
"agents": [
...
{
"name": "Alloy",
"model": "zai:glm-5.1,llamacpp:unsloth/Qwen3.5-9B-GGUF"
}
]
}

Control every token in your agent’s prompt

Start with a blank slate and add only what you need.

Start with a blank slate

Agents begin with no system prompt or tools.
terminal
$ aether show-prompt -a Build
---
Prompt chars: 0
Tool schema chars: 0
Est. tokens: ~ 0
MCP tools: 0

Use any markdown files you want

Add a prompts array to pull in markdown files — system instructions, agent guides, whatever you want.
.aether/settings.json
{
"agents": [
{
"name": "Build",
"model": "zai:glm-5.1",
"reasoningEffort": "high",
"prompts": ["SYSTEM.md", "AGENTS.md"]
}
]
}
SYSTEM.md
# System Prompt
You are an expert senior Rust engineer.
...
AGENTS.md
# Agents
Use the Explorer agent to search code.
...

View the fully rendered system prompt with a single command

So you don't waste tokens.
terminal
$ aether show-prompt -a Build
output
# System Prompt
You are an expert senior Rust engineer.
...
# Agents
Use the Explorer agent to search code.
...
---
Prompt chars: 120
Tool schema chars: 0
Est. tokens: ~ 30
MCP tools: 0

Connect any tools you want (via MCP)

Aether agents get tools exclusively via MCP. Add what you need, nothing more.

Batteries included MCPs

Aether includes several built-in MCP servers you can optionally enable. They run in a custom in-memory transport.
  • coding — file I/O, grep, bash, and web fetch
  • lsp — language-aware completions and diagnostics
  • skills — reusable domain knowledge as slash commands
  • subagents — spawn parallel child agents with their own models and tools
  • tasks — persistent task tracking across turns
  • survey — allow the agent to ask you questions with structured output
  • proxy — prevent tool bloat via progressive discovery
.aether/settings.json
{
"agents": [
{
"name": "Build",
"model": "zai:glm-5.1",
"prompts": ["SYSTEM.md", "AGENTS.md"],
"mcpServers": "mcp.json"
}
]
}
mcp.json
{
"servers": {
"coding": { "type": "in-memory" },
"lsp": { "type": "in-memory" },
"skills": { "type": "in-memory" },
"subagents": { "type": "in-memory" },
"tasks": { "type": "in-memory" },
"survey": { "type": "in-memory" },
"proxy": { "type": "in-memory", "input": { ... } }
}
}

Any MCP server

Plug in any external MCP server via stdio, SSE, or streamable HTTP. Remote server OAuth credentials are stored securely in your keychain.
mcp.json
{
"servers": {
...
"linear": {
"type": "http",
"url": "https://mcp.linear.app/mcp"
}
}
}

Ready to build?

Use the full CLI or pick individual crates — aether-core, llm, mcp-servers, wisp, crucible — to compose your own agent.