AI-native test platform

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.

LLM calls on replay: 0 · deterministic · self-hosted · your keys

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.

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.

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-2351

Jira ticket

Enter the key. The acceptance criteria become steps.

PR #482

GitHub PR

The diff tells AETHER what changed and what to check.

.docx / .pdf

Document

A written workflow — the kind a business user already has.

.mp4 / .mov

Screen recording

Keyframes + narration, watched by a vision model.

►︎ bug.mov → FAIL

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

Auth handled

Okta or anything else: sessions minted and refreshed automatically. Adding an app is config, not code.

--frozen

CI drift mode

Replay-only. Runs with no model available at all — if it fails, your app changed.

docker

Runs anywhere

Two commands. Anthropic, OpenAI, Gemini, Azure, OpenRouter, local, or any custom endpoint. Self-hosted, your keys.

migrate

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).
Accounts

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.

Whatever you type in the address bar to reach the dashboard — http://localhost:8778 after make baked, or your internal hostname.

/setup

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 realm
/login

You already have an account

Sign in at /login. Your specs, runs, and cached actions all live on your instance, not here.

Sign in
/register

Someone 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 page
/admin/users

You 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.