Start a task on one model. Finish it on another, on another machine. Your tests decide when it's done.
npm i -g aether-agents --ignore-scripts # Node ≥ 24 · zero runtime dependencies
aether auth login # …or skip it and run on your own Ollama
aether agent "make the failing tests pass"Carry the work · Install · Models & pricing · Commands · Security · Platform · Release notes
Aether Agent scans, plans, edits, and runs your tests — in your repo, on your terms. Two things make it different from the rest of the terminal-agent shelf:
- Verification is ground truth. The agent re-runs your test command at the end
and reads the exit code itself. A model that says "done" over a red tree gets
marked
incomplete, and the process exits non-zero. "Done" is never the model's word. - The work outlives the session. Every run leaves a local record.
aether resume exportturns that record into a single portable file — copy it to another checkout, another machine, another OS, andaether agent --resume <file>picks the thread up on whatever model you want, with no chat history to re-paste.
Aether Agent is in beta. Updates are shipping quickly.
# machine A — start it on a hosted frontier model
aether agent --model opus5 "make the slugify tests pass"
aether resume export --out handoff.json # ⇄ one file: task, verdict, files, repo
# machine B (or the same one, offline) — continue on a different brain
aether agent --local --model qwen2.5-coder:7b --resume handoff.jsonThe handoff is a summary, not a transcript: the task, which model ran it, the verify gate's verdict, how many tests were still failing, the files that changed, and the repository it belongs to. Nothing is keyed to an absolute path, so the receiving checkout does not have to live where the work started — and no file contents, shell commands, or credential-shaped values ride along. The next model reads it as a brief and continues; you never re-paste the conversation.
Run the whole thing yourself, end to end, in about five seconds:
npm run demo:handoff # two sessions, two models, two checkouts, one verify gateThe demo builds a throwaway git repo with a real failing test, runs the real CLI on
model A, exports the handoff, deletes machine A's checkout and logs, and finishes
the job in a second checkout on model B. By default the model is a scripted local stub
so the run is deterministic and needs no download or account; AETHER_DEMO_REAL=1
runs the identical script against real Ollama models. Either way the last word belongs
to node --test, run independently of the agent. See
docs/demo/handoff.md.
npm i -g aether-agents --ignore-scripts # 01 — drop it in (Node ≥ 24)
aether auth login # 02 — sign in once
aether agent # …terminal opens. Just start chatting.
ollama pull qwen2.5-coder:7b # 03 — or go offline: no account, no network
aether agent --local # …same terminal, nothing leaves the machineaether agent opens the REPL — chat with the model, slash-commands at hand, the agent edits files and runs your tests in the same session. Both brains run through the same host loop, render, tools, and commands — switching just swaps the transport. On the hosted path your code stays local and only the prompt + context you send leaves; on --local, nothing leaves at all. The offline brain is built into the package: it talks straight to Ollama over its OpenAI-compatible endpoint, with the same eight tools and the same permission gate, so --local needs nothing beyond Node and ollama serve.
Running the separate Python brain instead — Aether's open-source (Apache-2.0) Unlimited Context engine, which gives an Ollama model a billion-token working memory — is opt-in with
AETHER_LOCAL_BRAIN=pythononce you have installed it. It is not bundled with the npm package.
Prefer the installer UI? Download
install.shorinstall.ps1, inspect it, then run it locally. SetAETHER_VERSION=0.2.0(shell) or-Version 0.2.0(PowerShell) to pin an exact release. The canonical npm command above verifies registry integrity and disables lifecycle scripts; there are no native or runtime dependencies and no daemon.
One fleet, transparent per-token pricing — Claude, GPT, DeepSeek, Kimi, Gemma and Gemini for text & code, a 32-model image / video / 3D fleet, plus the Neo · Kronus · Aether-Vision orchestrators. aether models prints what your plan can actually reach, live from the server — the tables below are the current shape of it.
| Model | --model key |
Context window |
|---|---|---|
| Claude Opus 5 | opus5 |
1,000,000 |
| GPT-5.6 Sol | gpt56_sol |
1,050,000 |
| GPT-5.6 Terra | gpt56_terra |
1,050,000 |
| GPT-5.6 Luna | gpt56_luna |
1,050,000 |
| Kimi K3 | kimi_k3 |
1,048,576 |
| Gemini 3.6 Flash | gemini36_flash |
1,048,576 |
Six frontier models, every one with a million-token window. In the GPT-5.6 family, Sol takes the hardest reasoning and coding work, Terra is the balanced everyday pick, Luna is the fast, cost-sensitive one — and all three are priced through their true 1,050,000-token window, with the long-context band billed exactly rather than estimated. Opus 5 is an addition, not a replacement: --model opus still resolves to Claude Opus 4.8 and nothing you have configured changes.
| Plan | What you can select |
|---|---|
| Free | Claude Haiku 4.5 · DeepSeek V4 Flash · one image model as a teaser |
| Solo | + Claude Sonnet 5 · GPT-5.4 mini · the Neo 5.1T orchestrator · the full image fleet |
| Pro / Team | + Claude Opus 4.8 · GPT-5.5 · DeepSeek V4 Pro · Kimi K2.6 · Gemma 4 31B · the six frontier models above · video & 3D generation · the Kronus v2.4 and Aether-Vision orchestrators |
Media is 15 image models (Nano Banana Pro & 2, FLUX.2 Klein / Pro / Flex / Max, Recraft V3 & V4, Seedream 4.5, Riverflow V2, GPT-5 Image), 16 video models (Seedance 2.0 & 1.5 Pro, Veo 3.1 / Fast / Lite, Kling 3.0 Standard & Pro, Kling Video O1, Sora 2 Pro, Wan 2.6 & 2.7, Hailuo 2.3, HunyuanVideo 1.5, Grok Imagine), and Hunyuan3D 2.1 for text-to-3D — all drivable from the prompt line with /photogen, /videogen and /storyboard.
On --local, none of the above applies: you run any Ollama model you have pulled, with no account, no fleet, and no metering.
Usage is metered in UVT — one universal credit, one balance, shared across this agent, the AetherCloud desktop, and Aether AI on the web. Free tier to try (no card), subscription for premium models, UVT top-ups for pay-as-you-go. Current tiers and prices: aethersystems.net
Inside the REPL, / commands control the whole session — type /help to see them in-session, or click the card above for the full reference. That includes generating images and video from the prompt line (/photogen, /videogen, /storyboard …) and connecting MCP servers with /mcp. From the shell:
aether agent # the main thing — open the REPL and chat
aether agent --local # same REPL on a local Ollama brain (offline)
aether models # list models + orchestrators
aether resume # replay the last session in this workspace
aether resume export # write a portable handoff for another machine
aether agent --resume <id|file> # continue it — on any model, with the contextFlags you can set when launching the REPL (or pass with an inline task aether agent "<task>" for one-shot autonomous mode):
| Flag | What it does |
|---|---|
--local |
Local Ollama brain instead of the hosted API. |
--model <id> |
Force a model by key (--model opus5, --model gpt56_terra, or an Ollama tag with --local). |
--effort <tier> |
Budget ceiling: LOW · MED · MAX · ULTRA · CODEPRO. |
--test-cmd <cmd> |
Command the verification gate runs. With none, a run ends unverified — never ok. |
--resume <id|file> |
Continue a prior session, or a handoff file from another machine. |
--worktree |
Fresh git worktree on an auto-named branch (isolated). |
--repo <owner/name> |
Clone a GitHub repo via your own gh/git auth, work it in a worktree. |
-y, --yes |
Auto-confirm prompts (non-interactive). |
Full reference — every command, flag, slash command, and env var: COMMANDS.md. Dated patch notes: RELEASE_NOTES.md · docs/releases/.
The application and executable test suite are fully on TypeScript 7.0.2, with Node.js 24 or newer as the supported runtime. Strict ESM compilation emits the distributable JavaScript to dist/; the published package contains dist/src and excludes compiled tests.
Run the release gates from a clean checkout:
npm ci
npm run typecheck
npm test
npm run smoke
npm pack --dry-runThe verified TypeScript 7 release baseline is tagged v0.1.0. Migration details and measurements are in the TypeScript 7 upgrade design.
- Your code stays local. Edits apply on your machine, path-guarded — the client refuses to write outside your working directory.
- Verification is ground truth. The host runs your test command and reads the exit code itself; "done" is never the model's word.
- Tokens are credentials. Stored
chmod 600, never committed;aether auth logoutclears them. - The server is the authority. On the API path, usage limits, model access, and signed chain-of-custody receipts are enforced server-side — the client only displays what the server reports.
Found a vulnerability? See SECURITY.md.
Aether Agent is the terminal surface of Aether. Every surface below shares one login, one UVT balance, one model fleet, and one memory — start a task here, pick it up on the web, finish it in the IDE.
| Surface | Where | What it is |
|---|---|---|
| Aether AI on the web | app.aethersystems.net/chat | The Workbench — chat, agents you can launch, a work tray for everything they produce, image & video generation, your vault. |
| Aether Code | app.aethersystems.net/code | The browser IDE — the agent console docked beside your files, worktree teams and per-session transcripts, Nano compile & IR export. |
| Aether Design | app.aethersystems.net/design | Design Studio — canvas, creator and presets, with the agent editing the design directly. |
| AetherCloud desktop | github.com/AetherAI3/aethercloud | The agentic desktop app — projects, workflows, the memory Vault, and local Actions runs that can open a pull request. |
| Aether Terminal | aethersystems.net/terminal | What this CLI looks like, before you install anything. |
Get the desktop at aethersystems.net — installs in about a minute, no card needed. Platform-wide patch notes live at app.aethersystems.net/release-notes; terminal-specific ones are in RELEASE_NOTES.md.
Apache-2.0 — use it, fork it, ship it. The license covers the code, not the Aether name or hosted service (LICENSE · NOTICE.md). PRs and issues welcome — see CONTRIBUTING.md.
Built by Aether AI · aethersystems.net
One terminal. Frontier models or fully local. Your code stays yours.
