SimDeck - AI agent のためのモバイルシミュレータ制御コンソール
モバイルアプリ開発では、多くの状態がシミュレータ画面の中にだけ存在します。人間は画面を見て、ボタンを押し、ログを読み、録画して問題を再現できます。しかし AI coding agent は、短い command output だけを渡されたり、人間が現在の UI を説明するのを待ったりしがちです。ログイン、権限ダイアログ、深い画面遷移、gesture test、performance 調査では、この差がかなり大きくなります。
今日紹介する NativeScript/SimDeck は、この隙間を埋めようとする project です。iOS Simulator と Android emulator を、CLI、browser UI、test API、agent workflow から操作できる作業面に変えます。GitHub のページでは現在およそ 33 stars、1 fork、主な言語は Rust、ライセンスは MIT。リポジトリは 2026 年 4 月 22 日に作成され、最近の push は 2026 年 5 月 25 日です。release ページでは、最新 release として simdeck-v0.1.22 が 2026 年 5 月 24 日に公開されています。
プロジェクト概要
| 項目 | 内容 |
|---|---|
| リポジトリ | NativeScript/SimDeck |
| Stars | 約 33 |
| Forks | 1 |
| 主な言語 | Rust |
| ライセンス | MIT |
| 作成日 | 2026 年 4 月 22 日 |
| 最近の push | 2026 年 5 月 25 日 |
| 最新 release | simdeck-v0.1.22 |
Agent 時代に向いている理由
従来の mobile debugging tool は、使う人間が画面を見ることを前提にしています。Xcode、Android Studio、simulator window、log panel を開き、今何が起きているかを目で判断します。AI agent が入ると、問いは変わります。agent は現在の画面をどう理解するのか。特定の control をどう安定して押すのか。“Continue” が表示されるまでどう待つのか。失敗をどう evidence として残すのか。
SimDeck は、単なる simulator wrapper ではなく、agent に安定した control channel を与える tool として設計されています。README で紹介されている機能には、simulator screen streaming、tap と gesture、screenshot と recording、accessibility tree による画面説明、app install と launch、device selection、logs と process information、CPU / memory / disk writes / network throughput などの profiling 指標があります。
これらを組み合わせると、agent は曖昧な screenshot や手書き script だけに頼らずに済みます。まず describe で現在の画面を読み、token に優しい structured output で UI を理解し、その後 tap、swipe、type、wait-for、assert などを実行できます。これは「screenshot を見てボタンを押して」より、かなり再現性のある test interface に近いです。
CLI が中心にある
SimDeck の入口はわかりやすく、npx simdeck で local service を起動できます。npm i -g simdeck@latest で CLI を global install することもできます。起動後は local browser UI を提供し、command line からも device list、default simulator selection、app install、URL open、screenshot、recording、accessibility description、label / coordinate tap、text input、batch step などを実行できます。
開発者にとって、この CLI surface は重要です。モバイル自動化は、IDE、platform tool、test framework、shell script に分散しがちです。SimDeck はよく使う操作を一つの command surface に寄せ、agent と人間が同じ interface を使えるようにします。
実用面では、warm daemon と default device の扱いも効きます。README によると、simdeck use <udid> は現在の project directory に default device を保存できます。各 command は --device、環境変数、project default、唯一 boot されている simulator の順で target を決めます。Agent workflow では、毎回 UDID を探して組み立てる noise を減らせます。
Browser UI は Codex と相性がいい
SimDeck は browser を control entry として明確に扱っています。README では、生成された URL を Codex の in-app browser で開けること、さらに agent が安定した SimDeck workflow を理解できるよう Codex skill を追加できることも説明されています。
これは小さくありません。多くの local dev tool は Web UI を持っていますが、agent がそれを使うことまでは設計していません。SimDeck は「agent が simulator を見て操作できるか」を中心的な use case として扱っています。Codex のように browser を持つ環境では、simulator screen、control command、app state を同じ workspace に置けるため、debugging の流れが自然になります。
もちろん、agent が QA を完全に置き換えるわけではありません。現実的な境界は、繰り返し可能な check、regression path、screenshot / log collection を agent に任せ、人間が product detail、visual quality、複雑な interaction の判断を続けることです。
Screenshot より accessibility tree が安定する
SimDeck の重要な機能の一つは、accessibility view tree から現在の画面説明を生成し、agent-friendly な形式で出力できることです。Mobile UI automation では、座標だけの click は脆く、screenshot recognition も theme、screen size、language、animation に影響されます。Accessibility tree があれば、agent は label、id、hierarchy、操作可能な element を見られます。
これは button を押すためだけの機能ではありません。現在の page が期待した状態に到達したかを確認するためにも使えます。特定 label の出現を待つ、id の存在を assert する、describe --max-depth で出力量を制御する、action 後に再度 state を読む、といった流れを作れます。
チームが accessibility label を丁寧に保っているなら、これは良い循環になります。明確な accessibility 情報は user だけでなく、automation と AI agent も助けます。逆に label が不足している UI では、SimDeck がその問題を早めに見せてくれます。
単なる remote control ではない
SimDeck README では、NativeScript、React Native、Flutter、UIKit、SwiftUI 向けの runtime inspector plugin も触れられています。目的は、system-level accessibility だけでなく、app 側の view hierarchy、component tree、widget tree を debugging tool に渡すことです。
これにより SimDeck は、単なる remote tap tool よりも、mobile development の observation surface に近くなります。複雑な page では、system accessibility は「今画面上にどんな操作 element があるか」を教えてくれます。一方で runtime inspector は、「その element はどの component から来ているか」「framework layer はどうなっているか」を知る助けになります。
この情報は、agent が bug を直すときにも役立ちます。失敗した UI から code structure に戻る距離が短くなり、text label だけを頼りに component location を推測する必要が減ります。ただし、この部分は project が対応 inspector package を導入しているかに依存します。すべての app で完全な framework tree が自動的に得られるわけではありません。
JS/TS test API で導入しやすい
Command line だけでなく、SimDeck は simdeck/test も提供しています。Test code は simulator session に connect し、tap、waitFor、screenshot、record などを呼び出し、最後に session を閉じられます。README では、connect が必要に応じて project daemon を起動し、すでに healthy な daemon があれば再利用すると説明されています。
これは mobile project にとって扱いやすい導入点です。最初から重い end-to-end test system へ移行しなくても、重要な path だけを JS/TS test として書けます。たとえば app を開き、permission dialog を通過し、特定 page に入り、button の存在を assert し、device frame 付き screenshot を PR の evidence として残す、といった使い方です。
Detox、Appium、XCUITest、Espresso を置き換えるものとは限りません。より正確には、SimDeck は agent-driven debugging、lightweight regression、cross-platform simulator control の間にある空白を埋める tool です。
注意点
SimDeck はまだ新しい project です。Stars は少なく、version も 0.1.x です。Release ページでは継続的な release が確認できますが、team の core CI に入れる前には、重要度の低い project や単一 platform で試すのが現実的です。
Platform boundary も確認が必要です。README には macOS、iOS Simulator、Android emulator、LaunchAgent、CoreSimulator などの言葉が出てきます。Windows や Linux で一部 Android 関連機能を使える可能性があっても、完全に同じ体験を前提にしないほうがよいです。
また、SimDeck は simulator を読み取り、操作する力が強い tool です。Team environment に入れるときは、local network、pairing code、LAN / Tailscale address、access token、debug service lifecycle に注意が必要です。Local development や controlled CI には向きますが、信頼できない network に不用意に公開するものではありません。
試す価値がある人
次のような場面があるなら、SimDeck は tool box に入れる価値があります。
- AI agent に mobile bug を直させたいが、simulator state の説明が人手になっている。
- Codex などの agent に mobile regression path を走らせたい。
- PR に screenshot、recording、UI state、logs を素早く添付したい。
- NativeScript、React Native、Flutter、UIKit、SwiftUI のいずれかを扱っている。
- Simulator 操作を IDE から出し、script や test から呼べる interface にしたい。
一方で、たまに手動で app を見るだけなら、導入効果は限定的です。SimDeck が本当に解くのは、「mobile UI state を agent が安定して見て操作できるようにする」問題です。
まとめ
NativeScript/SimDeck は、AI coding が mobile development に入るときの重要な障害を扱っています。Simulator は本来人間が見るものでした。しかし agent には、structured で callable で verifiable な control surface が必要です。SimDeck は CLI、browser UI、accessibility description、profiling、runtime inspector、JS/TS test API を組み合わせ、iOS Simulator と Android emulator を自動化しやすい開発環境に近づけます。
まだ early stage ですが、方向性は明確です。AI agent を mobile app の開発、test、debugging に参加させたい team にとって、SimDeck は追いかける価値のある小さな project です。