agent-device: ابزار اتوماسیون موبایل برای ایجنتهای هوش مصنوعی
خلاصهٔ کاملتر
agent-device یه CLI متنبازه که توسط تیم Callstack ساخته شده و هدفش اینه که ایجنتهای هوش مصنوعی (مثل Codex، Claude Code یا Cursor) بتونن مستقیماً اپهای موبایل و دسکتاپ رو کنترل کنن. ایجنت میتونه اپ رو باز کنه، وضعیت UI رو بخونه، با عناصر صفحه تعامل داشته باشه، باگ پیدا کنه و همهچیز رو مستند کنه — بدون اینکه انسانی وسط باشه.
یکی از نکات جالب این ابزار اینه که بهجای تکیه روی اسکرینشاتهای پیکسلی (که حجم توکن بالایی دارن)، از accessibility snapshot استفاده میکنه. این snaphotها یه درخت فشرده از عناصر UI رو برمیگردونن و هر عنصر یه رفرنس کوتاه مثل @e1 یا @e3 میگیره که ایجنت میتونه مستقیماً روش اکشن انجام بده.
# Inspect the current screen. -i returns interactive elements only.
agent-device snapshot -i
# @e1 [heading] "Settings"
# @e2 [button] "Sign In"
# @e3 [text-field] "Email"
agent-device fill @e3 "test"
agent-device screenshot ./artifacts/settings.png
agent-device closeاین ابزار چرخه توسعه اجنتیک رو میبنده: ایجنت کد مینویسه، اپ واقعی رو اجرا میکنه، UI رو end-to-end بررسی میکنه، شواهد (اسکرینشات، ویدیو، لاگ، پروفایل عملکرد) جمع میکنه و نتایج رو برای ایتریشن بعدی به خودش فید میده. این کل فرآیند قبل از اینکه انسانی PR رو ببینه اتفاق میافته.
پشتیبانی پلتفرمها گستردهست: iOS، Android، tvOS، Android TV، macOS، و لینوکس. برای iOS و tvOS از XCTest استفاده میکنه، برای Android از ADB، برای macOS از یه helper محلی، و برای لینوکس از AT-SPI. همچنین برای اپهای React Native و Expo، قابلیت بررسی درخت کامپوننت، props، state، hooks و پروفایل رندر هم داره.
برای ایجنتهایی که از پروتکل MCP پشتیبانی میکنن، یه MCP router هم وجود داره — ولی این router فقط برای discovery طراحی شده (اطلاعات نصب و اولین دستور رو برمیگردونه) و اتوماسیون واقعی همچنان از طریق CLI انجام میشه. این تفکیک عمدیه تا دستوراتی که روی دستگاه اجرا میشن قابل ردیابی و شفاف باشن.
ابزار از قابلیتهایی مثل ضبط ویدیو، گرفتن لاگ شبکه و crash، پروفایل CPU/حافظه، و تولید اسکریپتهای .ad برای replay در CI هم پشتیبانی میکنه. در حال حاضر تیمهایی مثل Shopify، Expensify و Callstack ازش استفاده میکنن و لایسنس MIT داره.
نکات کلیدی:
- بهجای اسکرینشات، از accessibility snapshot برای خواندن UI استفاده میکنه تا مصرف توکن کمتر باشه
- ایجنت میتونه با رفرنسهایی مثل @e3 مستقیماً با عناصر UI تعامل کنه
- از iOS، Android، tvOS، macOS و لینوکس پشتیبانی میکنه
- برای React Native و Expo امکان بررسی درخت کامپوننت و پروفایل رندر وجود داره
- MCP router فقط برای discovery طراحی شده، نه اجرای دستورات روی دستگاه
- اسکریپتهای .ad قابل replay در CI هستن
- متنباز با لایسنس MIT




