# warden - **Get started** - [What is warden](/docs): warden is a CLI and e2e framework that lets coding agents claim a simulator, drive the app, save what they verified as a test, and run the suite in parallel. - [Quickstart](/docs/quickstart): Install warden, set up an Expo app, let your agent verify a screen on a leased simulator, then run the saved test. - [Installation](/docs/installation): Install warden from npm or from source, wire up agent hooks, and check your setup. - [Set up your agent](/docs/agent-setup): Install the warden skill and hooks into your coding agent, or paste a prompt that does it for you. - [How warden works](/docs/concepts): Leases, owners, liveness, and which devices warden will touch. - **Agents drive devices** - [The agent loop](/docs/agents): The loop a coding agent follows to claim a simulator, look at the screen, act, verify and release, and when to use warden ui or a spec. - [warden ui](/docs/agents/ui): Look at and drive a leased iOS simulator or Android emulator from the command line: snapshot, refs, selectors, actions, waits, devtools, exit codes and lease rules. - [warden dev](/docs/agents/dev): Run the app in a worktree on a leased simulator with its own Metro port, installing the cached dev build instead of rebuilding. - [Agent rules](/docs/agents/rules): Rules for agents sharing devices, subagent release rules, and the Claude Code and Codex SessionEnd hook that releases what a session leased. - **e2e tests** - [How warden e2e works](/docs/e2e): A spec file, a suite in warden.config.ts and one command, warden e2e, that leases devices, installs the build and runs the specs in parallel. - [Your first test](/docs/e2e/first-test): From an Expo app with no warden setup to a passing smoke spec, by hand and then with warden e2e. - [Write specs](/docs/e2e/specs): The @delacour/warden-e2e spec API - test, describe and hooks, screen queries, locator actions and reads, the nine matchers, app and device, failure artifacts and running a spec by hand. - [Author specs by recording](/docs/e2e/author-specs): Turn a warden ui session into a reviewed, passing e2e spec - record start, note, undo, stop with verify, lints, helpers for shared steps, secrets and the failure loop. - [Suites](/docs/e2e/suites): Declare e2e suites in warden.config.ts and run them with warden e2e on leased devices. - [Affected e2e](/docs/e2e/affected): Run only the e2e specs a change needs, picked from the git diff and the TypeScript import graph, and gate on the required ones. - [Debugging](/docs/e2e/debugging): Where a failed e2e run leaves its evidence, how to read it, and the fix for each common failure. - [CI](/docs/e2e/ci): Run warden e2e in GitHub Actions on a macOS runner, install warden with the install action or npm, and gate a pull request on the affected specs. - **Devices & parallel** - [Claim & release devices](/docs/devices/leases): Claim a simulator or emulator, keep it alive, see who holds what, and release it. - [Scripts & batches](/docs/devices/scripts): Claim devices and ports for your own script with warden run or warden batch, released on exit. - [Ports](/docs/devices/ports): Lease TCP ports from a range, bind-probed and never handed out twice. - [Capacity & queue](/docs/devices/capacity): How warden sizes the host, queues boots by priority and frees idle devices. - [Golden images](/docs/devices/golden-images): Clone new simulators from a settled golden for ~16 s boots. - [Profile an app (warden perf)](/docs/devices/perf): warden perf - CPU, memory, frames, startup, JS, React and native profiling of an app on a warden simulator or emulator, as one combined session with a ranked report, drill-down queries, before/after diffs and e2e budgets. - [Headless e2e](/docs/devices/headless): How warden runs simulators without a window, and the --headless switch that guarantees it even with Simulator.app open. - [App builds](/docs/devices/app-builds): Install the native build matching your Expo fingerprint — from the device, cache, EAS or a local build. - **Benchmarks** - [Framework comparison](/docs/bench/comparison): The same 8-test suite on one build and one device in warden, Argent, agent-device and tester.army. Suite time, per-test medians, cold start, resources and footprint. - [Benchmark e2e frameworks](/docs/bench/run): Run the same 8-test suite through warden, Argent, agent-device and tester.army on one device and compare the numbers. - [iOS run 2026-10-25 on EAS](/docs/bench/ios-2026-10-25): The four-framework iOS run of 2026-10-25, one EAS macos-large worker per framework, 5 runs each, with how it was run, the full tables and every artifact. - **Reference** - [CLI](/docs/reference/cli): Every warden command and flag. All commands accept --json. - [warden.config.ts](/docs/reference/configuration): Optional per-repo config for app builds, saved batches and affected e2e suites. - [Environment variables](/docs/reference/environment): Variables warden reads, and the ones warden run sets. - [iOS driver helper](/docs/reference/e2e-driver): warden-simd, the helper that taps and reads the accessibility tree of iOS simulators - where warden looks for it, the variables that steer it, and what warden doctor reports. - **Project** - [Updating & releasing](/docs/updating): warden update for every build channel, and how releases ship from changesets. - [Contributing](/docs/contributing): Repo layout, conventions and commands.