aether · rust · terminal · ai

Talk to your codebase.
From the terminal.

Aether is a keyboard-first AI agent that lives in your shell. A TUI chat over your code, an MCP server for your tools, and gist or folder sync — in one native Rust binary. No Node runtime. No browser tab. No noise.

curl -fsSL https://raw.githubusercontent.com/Aetherdz/aether/main/scripts/install.sh | bash

one native binary · no Rust toolchain · no Node runtime — MIT license

all builds + SHA256SUMS.txt on GitHub Releases

Measured performance

4.99 MB
single stripped binary
~112 ms
cold start
~5 MB
steady-state RSS
267
tests green in workspace

measured 2026-08-09 · 5-run median · benchmark/run.sh — reproducible in this repo

Terminal demo

aether tui
Aether TUI demo — session list, chat transcript, and live plan → build → route agent screen

quick start

Install & run in three steps

01

Install the binary

One prebuilt native binary for your OS. No Rust toolchain, no Node, nothing else.

# downloads + verifies SHA-256, installs to ~/.local/bin $ curl -fsSL https://raw.githubusercontent.com/Aetherdz/aether/main/scripts/install.sh | bash
02

Run the binary

The free zen provider works out of the box — no API key needed.

# ask a one-shot question $ aether ask "explain this repo"
03

Or open the TUI

Keyboard-first UI: session list, chat, and a live plan→build→route agent screen.

# full terminal UI $ aether tui

capabilities

Everything a terminal agent needs

tui

Session list + chat

A ratatui interface with a chrome header (model, provider, version), a tab bar (chat · agent · sessions), wheel scroll, and a live token ledger. All from the keyboard.

agent

Live plan → build → route

Run the three-model agent loop straight from the TUI. Three live panels show the planner, builder, and router as they work — plan cards, todo progress, and per-step verdicts update in real time, with live counters on every panel.

mcp

MCP server

Speaks Model Context Protocol over stdio and streamable-HTTP. Your editor, your agents, and Aether share one context layer.

sync

Gist or folder sync

Sessions sync to GitHub gists or a local folder, merged line-by-line with origin fingerprints — no silent overwrites on concurrent edits.

native

One Rust binary

No Node runtime, no bundled Electron, no 400 MB install. Compiled, typed, and fast — the way a terminal tool should be.

ledger

Token ledger & usage rail

Every request is counted. A right-side rail tracks tokens in, tokens out, and total live — you always know what a session cost before you commit to it.

polish

Terminal-first polish

An empty chat opens on the logo screen with a blinking cursor, and your terminal title is restored on exit — no dead space, no leftover state.

faq

Questions, answered

Do I need an API key?

No. The free zen provider is built in and works out of the box — hosted by opencode.ai. Bring your own key or a local model anytime.

Is my code sent anywhere?

Honest answer: the free zen endpoint is hosted by opencode.ai and sees your conversation payload. Local models (Ollama, LM Studio) run fully offline. No telemetry, no accounts — see docs/zen-privacy.md.

Does it need Node or Python?

No. One native Rust binary — no runtime, no interpreter, no 400 MB install. That is the whole point.

Can it edit my files?

Yes — via the agent loop with path-sandboxed tools and a command approval gate: every write shows a diff preview and waits for your y/N before touching disk.

Is it open source?

Yes — MIT licensed. Public, auditable, and free. Fork it, vendor it, build on it.

honest comparison

Aether vs. Node-based agents

Aether Node-based agents
Runtime One native Rust binary Node + hundreds of MB of deps
Binary size 4.99 MB — one stripped binary hundreds of MB installed
Startup ~112 ms cold start 1 s+ cold start per run
Agent loop plan → build → route, 3 models, sandboxed tools varies by tool
Sessions as files Plain JSONL — grep it, script it, own it Often bespoke databases
MCP server Built in — stdio + Streamable HTTP Requires separate config
Telemetry None — verifiable Varies

Aether figures are measured in this repo (benchmark/run.sh, 5-run median, 2026-08-09). Node-based figures are vendor-published claims, not measured here. Coverage, not a superiority claim.