Skip to content

DeviceDeck 1.0.1

Latest

Choose a tag to compare

@omnarayan omnarayan released this 23 Sep 00:37
· 5 commits to main since this release

The first public release. DeviceDeck serves an iOS Simulator or Android emulator as a web page whose DOM mirrors the app's UI tree, so Playwright tests and AI agents drive the native app by selector — getByRole, getByTestId, click(), fill() — the way they drive a website.

Install

curl -fsSL https://open.devicelab.dev/install/devicedeck | bash

macOS on Apple Silicon or Intel. The binaries are signed and notarized. devicedeck doctor checks Xcode, adb and the rest.

What's in it

  • The device page — /device/{udid} renders the app as real DOM: roles, names, test ids and values from the app's accessibility tree, a live H.264 video of the screen, and input sent to the device. Every Playwright action returns only once the device has acted and the screen has settled.
  • Playwright — point a test at the device page; no plugin or custom driver.
  • AI agents — devicedeck mcp gives Claude Code, Cursor, Codex, Gemini CLI and other MCP clients tools to list devices and apps, boot, install, launch, read the screen and act. A Claude Code plugin and skills are included (claude plugin install devicedeck@devicedeck-marketplace).
  • The console — open http://127.0.0.1:8787 to see every simulator and emulator, boot one, launch an app, and use it from the browser.
  • Flow recording — record a session in the console and download it as a Maestro flow that runs unchanged on devicelab.dev real devices.
  • iOS and Android from one binary. The Android driver ships inside it; nothing else needs installing.

Known limits

  • Simulators and emulators only; real devices are devicelab.dev's.
  • iOS never reports keyboard focus in the UI tree, so typing waits a capped time rather than for focus.
  • Run one simulator and one emulator at a time per Mac.

See the README and docs to get started.