This site is available as Markdown for AI agents. For the full index, see llms.txt.
AI-native · MCP-native · local-first

Your agent writes the E2E tests. You review and commit.

unotest is AI-native end-to-end testing. Your AI agent drives your real app over MCP and writes clean, reviewable tests in your repo — for web and for iOS.

Works with Claude Code · Cursor · Codex

Full control

AI does the work. You keep control.

The whole point: speed from the agent, ownership stays with you.

Plain .js in your repo

Tests are ordinary JavaScript in unotest/e2e/*.js. Git, code review, CI — no proprietary format, no binary blob.

No silent fixes

agent_fix composes context and a suggestion — it never calls an LLM itself and never applies a patch on its own. You read the diff and commit.

Runs locally

Everything runs on your machine. Your app never leaves it. No cloud, no account to start.

Safe to run blindly

Scenarios execute in a sandboxed AST interpreter — no require, no fetch, no filesystem. AI-generated tests can run without surprises.

What's new

unotest 0.55.0

Released 25 October 2026.

A box ends when you say so

box create --ttl 8h rents a box that deletes itself at the end, and charging stops there. Without --ttl a new box gets 24 hours; --ttl none keeps the one CI pushes to. box extend moves the end later, and box status shows when a box ends.

Wait for the answer, not a pause

waitForResponse('**/api/items', {status: 200}) waits for the answer to a request and returns its status, headers and body, so a test checks what the answer draws on the page instead of sleeping and hoping it came.

One command maps your repository

box repo add maps the checkout's repository to its project on a box you already rented, so bundle push stops warning about an unmapped repository. No operator, and running it again changes nothing.

Pick your platform

Same idea, two surfaces — the web and iOS.