Use AI where it's cheap and one‑time. Never at runtime.
AETHER compiles plain-English tests into cached browser automations. On the initial test run, a model resolves each step. Every run after replays deterministically — 0 LLM calls, no agent loop, no per-step bill.
Compile. Cache. Replay.
Most "AI testing" tools run an agent loop on every execution — slow, non-deterministic, metered per step. AETHER resolves intent into concrete browser actions once, writes them to a cache, and replays those cached actions directly forever after.
after the initial run: model not loaded. Not "rarely called" — not loaded.
Write the test in English. That's the whole syntax.
One step per line. The leading verb picks the kind — go to navigates, check / see / verify asserts, everything else interacts. Save & verify runs it against the live app immediately, with a screenshot of every step.
- No selectors. No waits. No flaky sleeps.
- No login step — sessions are minted and refreshed automatically. Nobody types a password.
- A red row is the exact line to reword. The system never fakes green.
Tests fix themselves. Visibly.
When the UI drifts, the cached step fails, re-resolves once, and lands an amber healed chip on the run — then the next replay is back to 0 LLM calls. Every heal is governed, logged, and visible. Silent flakiness is the thing this replaces.
The bill for run 1,000: $0.
Agent-loop tools charge model tokens on every run of every test, forever. AETHER's model spend is a one-time compile cost per test — the replay line is flat at zero.
14-step test × 1,000 runs. Assumes 1 model call per step per run — the agent-loop floor.
Tests from tickets, PRs, docs — and bug videos.
One LLM call turns what your team already produces into a reviewable draft test, with provenance headers and one-click verify.
Jira ticket
Enter the key. The acceptance criteria become steps.
GitHub PR
The diff tells AETHER what changed and what to check.
Document
A written workflow — the kind a business user already has.
Screen recording
Keyframes + narration, watched by a vision model.
Bug video → failing repro
Drop in a recording of the bug. AETHER works out which page it's on and borrows the navigation from a test that has already been there — a clip that starts mid-flow is enough. When the bug is fixed, one command promotes the repro into a permanent regression test.
Boring where it should be.
Auth handled
Okta or anything else: sessions minted and refreshed automatically. Adding an app is config, not code.
CI drift mode
Replay-only. Runs with no model available at all — if it fails, your app changed.
Runs anywhere
Two commands. Anthropic, OpenAI, Gemini, Azure, OpenRouter, local, or any custom endpoint. Self-hosted, your keys.
Legacy suite on-ramp
Deterministic AST migration of an existing suite into intent specs. Zero LLM calls to migrate.
Prove the thesis on your machine.
All you need installed is Docker. The smoke test runs against an app bundled in the image — no VPN, no staged demo.
cp .env.example .env # set AETHER_ADMIN_USER and AETHER_ADMIN_PASS
make baked # → http://localhost:8778
make smoke TWICE=1
run 1 (resolve): PASS | LLM calls: 31
run 2 (replay): PASS | LLM calls: 0
THESIS PROVEN: run 2 passed with 0 LLM calls (target 0).
Claim your realm. Then invite your team.
AETHER is self-hosted, so there is no account to create here — you create it on your own instance, and everyone with an account on that instance makes up its realm. Tell this page where your instance lives and it builds the links to claim it, sign in, or invite someone. The URL never leaves your browser.
Brand-new instance
Nobody has an account yet. The first person to open /setup creates the first Overseer account and claims the realm — so do it the moment the instance is up.
Claim the realmYou already have an account
Sign in at /login. Your specs, runs, and cached actions all live on your instance, not here.
Sign inSomeone sent you an invite
Your link already carries its token — open the one you were sent. It looks like /register?token=…, works once, and expires. Opening /register without a token just tells you it needs one.
Open the join pageYou are already an Overseer
Users → Invite to the realm generates a single-use link. They pick their own username and password; you never handle it. There is no open signup to switch off.
Open Users- No instance yet? Deploy in two commands, then come back.
- This page has no backend and makes no requests. It builds links from what you type and remembers the URL in this browser only.
- localhost and 127.0.0.1 resolve only on the machine running AETHER — an invite link generated there will not open for anyone else.