{"id":43784503,"url":"https://github.com/callstackincubator/agent-device","last_synced_at":"2026-04-29T03:04:49.478Z","repository":{"id":336603051,"uuid":"1146193768","full_name":"callstackincubator/agent-device","owner":"callstackincubator","description":"CLI to control iOS and Android devices for AI agents","archived":false,"fork":false,"pushed_at":"2026-04-25T23:21:07.000Z","size":27704,"stargazers_count":1880,"open_issues_count":18,"forks_count":106,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-04-25T23:28:06.792Z","etag":null,"topics":["agentic-ai","agents","automation","mobile","testing"],"latest_commit_sha":null,"homepage":"https://agent-device.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/callstackincubator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-30T18:41:54.000Z","updated_at":"2026-04-25T23:10:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/callstackincubator/agent-device","commit_stats":null,"previous_names":["callstackincubator/agent-device"],"tags_count":94,"template":false,"template_full_name":null,"purl":"pkg:github/callstackincubator/agent-device","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstackincubator%2Fagent-device","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstackincubator%2Fagent-device/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstackincubator%2Fagent-device/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstackincubator%2Fagent-device/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/callstackincubator","download_url":"https://codeload.github.com/callstackincubator/agent-device/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstackincubator%2Fagent-device/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32408447,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T02:37:21.628Z","status":"ssl_error","status_checked_at":"2026-04-29T02:36:50.947Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","agents","automation","mobile","testing"],"created_at":"2026-02-05T19:00:55.461Z","updated_at":"2026-04-29T03:04:49.473Z","avatar_url":"https://github.com/callstackincubator.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003ca href=\"https://www.callstack.com/open-source?utm_campaign=generic\u0026utm_source=github\u0026utm_medium=referral\u0026utm_content=agent-device\" align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003cimg alt=\"agent-device: device automation CLI for AI agents\" src=\"website/docs/public/agent-device-banner.jpg\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\n---\n\n# agent-device\n\n[![npm version](https://img.shields.io/npm/v/agent-device.svg)](https://www.npmjs.com/package/agent-device)\n[![CI](https://github.com/callstackincubator/agent-device/actions/workflows/ci.yml/badge.svg)](https://github.com/callstackincubator/agent-device/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-black.svg)](LICENSE)\n\nDevice automation CLI for AI agents. Mobile, TV, and desktop apps.\n\n`agent-device` lets coding agents run real apps, inspect UI state, interact with visible elements, and collect debugging evidence through one CLI.\n\nIt is built around token-efficient accessibility snapshots, not pixel-first screenshots. Agents read compact UI trees, locate elements through refs like `@e3`, perform touch and text actions, and capture screenshots, video, logs, network, perf, and React profiles only when evidence is needed.\n\n## Agentic QA And Development\n\n- **Quality Assurance**: dogfood flows, validate PR builds, check accessibility coverage, capture evidence, and turn stable explorations into `.ad` e2e tests.\n- **Development**: build from specs, reproduce crashes and support issues, inspect logs/network/perf data, and iterate until the UI matches the work.\n\nIf you know Vercel's [agent-browser](https://github.com/vercel-labs/agent-browser), this is the same idea for apps and devices.\n\n![agent-device demo showing an agent inspecting and interacting with a contacts app](./website/docs/public/agent-device-contacts.gif)\n\n## Quick Start\n\nInstall the CLI first:\n\n```bash\nnpm install -g agent-device\nagent-device --version\nagent-device help workflow\n```\n\nThe CLI help is the source of truth for agents and is shipped with the installed version. Skills are optional but recommended when your agent runtime supports them: they auto-route device, React DevTools, and dogfood tasks to the right `agent-device help \u003ctopic\u003e` page and verify the CLI is new enough before acting.\n\nIf you install skills separately, keep the CLI on `agent-device \u003e= 0.14.0`. Older CLIs do not include the workflow help topics that the router skills expect.\n\n```bash\nnpm install -g agent-device@latest\nagent-device --version\nagent-device help\n```\n\n`agent-device` performs a lightweight background upgrade check for interactive CLI runs and, when a newer package is available, suggests a global reinstall command. Updating the package also refreshes the bundled `skills/` shipped with the CLI.\n\nPrerequisites: Node.js 22+, Xcode for iOS/tvOS/macOS targets, Android SDK + ADB for Android, and macOS Accessibility permission for desktop automation. See [Installation](https://incubator.callstack.com/agent-device/docs/installation).\n\nTry the loop.\n\n```bash\n# Find the app.\nagent-device apps --platform ios\n\n# Start a session.\nagent-device open SampleApp --platform ios\n\n# Inspect the current screen. -i returns interactive elements only.\nagent-device snapshot -i\n# @e1 [heading] \"Settings\"\n# @e2 [button] \"Sign In\"\n# @e3 [text-field] \"Email\"\n\n# Act, capture a screenshot, and close.\nagent-device fill @e3 \"test\"\nagent-device screenshot ./artifacts/settings.png\nagent-device close\n```\n\nSnapshots assign refs like `@e1`, `@e2`, and `@e3` to current-screen elements. Refs from the default snapshot are immediately actionable; for hidden content, scroll and re-snapshot.\n\n## Where To Run agent-device\n\n| Path | Best for | Start with |\n| --- | --- | --- |\n| Local | Exploration, debugging, and development loops on simulators, emulators, physical devices, macOS apps, and Linux desktop targets. | Follow the Quick Start. |\n| CI/CD | Automated PR and merge validation with replay scripts and captured artifacts. | Start with the [EAS workflow template](https://github.com/callstackincubator/eas-agent-device/blob/main/.eas/workflows/agent-qa-mobile.yml). GitHub Actions template coming soon. |\n| Cloud | Linux runners, managed devices, and remote execution. | Use [Agent Device Cloud](https://agent-device.dev/cloud) or [contact Callstack](mailto:hello@callstack.com) for team-scale QA. |\n\n## Capabilities\n\n- **Platforms**: iOS, Android, tvOS, Android TV, macOS, and Linux. Real devices and simulators are supported.\n- **Capture**: screenshots, video, logs, network traffic, performance data, accessibility snapshots, and React render profiles.\n- **Produce**: replayable `.ad` scripts (recorded replay files that run locally or in CI), e2e test runs, snapshot and screenshot diffs, and debugging artifacts.\n- **React Native and Expo**: component tree inspection, props/state/hooks, and render profiling.\n- **License**: MIT. Free to use.\n\n## How It Works\n\n`agent-device` runs session-aware commands through platform backends: XCTest for iOS and tvOS, ADB plus the Android snapshot helper for Android, a local helper for macOS desktop automation, and AT-SPI for Linux desktop targets. See [Introduction](https://incubator.callstack.com/agent-device/docs/introduction) and [Commands](https://incubator.callstack.com/agent-device/docs/commands) for platform details.\n\n## Used By\n\nUsed by teams and developers at Callstack, Expensify, Shopify, Kindred, Total Wine \u0026 More, LegendList, HerLyfe, App \u0026 Flow, and more.\n\n## Documentation\n\n- [Installation](https://incubator.callstack.com/agent-device/docs/installation)\n- [Commands](https://incubator.callstack.com/agent-device/docs/commands)\n- [Replay \u0026 E2E](https://incubator.callstack.com/agent-device/docs/replay-e2e)\n- [Known limitations](https://incubator.callstack.com/agent-device/docs/known-limitations)\n\nAgent integration:\n\n- [agent-device skill](skills/agent-device/SKILL.md)\n- [react-devtools skill](skills/react-devtools/SKILL.md)\n- [dogfood skill](skills/dogfood/SKILL.md)\n- [agent-device skill on ClawHub](https://clawhub.ai/okwasniewski/agent-device)\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Made at Callstack\n\nagent-device is open source and MIT licensed. Try the [EAS workflow template](https://github.com/callstackincubator/eas-agent-device/blob/main/.eas/workflows/agent-qa-mobile.yml), use [Agent Device Cloud](https://agent-device.dev/cloud), or contact us at hello@callstack.com.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallstackincubator%2Fagent-device","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcallstackincubator%2Fagent-device","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallstackincubator%2Fagent-device/lists"}