Quickstart
Install warden, set up an Expo app, let your agent verify a screen on a leased simulator, then run the saved test.
This takes an Expo app from nothing to an agent-verified screen and a passing e2e run. You need macOS with Xcode and an iOS runtime installed.
Install warden
npm i -g @delacour/warden && warden installwarden install links ~/.local/bin/warden, installs the agent skill and wires the SessionEnd hook for Claude Code and Codex. It shows a diff and asks first. More options: Installation.
Check it
warden doctorIt checks warden's home, the db, xcrun simctl, adb, emulator, PATH, hooks and the skill.
Set up your app
In the Expo app's directory:
warden init --bundle-id com.example.appThis writes the bundle id into app.json, a warden.config.ts and e2e/smoke.e2e.ts. It names the packages to install and installs nothing:
npx expo install expo-dev-client
bun add -d @delacour/warden-e2e # same version as the CLI--dry-run prints what would be written.
Run the app
warden devwarden claims a simulator, installs the dev build cached for your native fingerprint, starts Metro on a leased port and opens the dev client. The first build is local; the same fingerprint in any other worktree is a cache hit. Ctrl-C releases the device and the port. See warden dev.
Ask your agent to verify a screen
Prompt your agent:
Use warden to open the app on a simulator and check that the home screen shows the todo input. Release the device when you are done.
It runs commands like these:
warden claim ios --json # lease; keep the udid
warden ui open com.example.app --udid $UDID # launch
warden ui snapshot -i --udid $UDID # read the screen
warden ui wait id=todo-input --udid $UDID # verify, not a screenshot
warden ui close --release --udid $UDID # releaseIf the agent does not know warden yet, see Set up your agent. The commands are explained in warden ui.
Run the e2e suite
warden e2ewarden e2e leases devices, installs the app, runs every spec and writes a report under the batch directory. Add --count 3 to fan out over three simulators. Next: your first test.