Devicely について
Devicelyは、QAチームやAIエージェントがiOS・Androidの実機群をローカルで操作するためのツールです。操作を複数端末に同期し、再利用できるFlowとして記録できます。手動操作と自然言語による指示に対応します。
主な機能
- 01複数端末へのジェスチャーの同時送信
- 02ロケーターを使ったFlowの記録と再生
- 03自然言語や音声による端末操作
- 04UI要素の確認とセレクターの出力
- 05実機とシミュレーターの管理
活用シーン
- 01端末群でテストフローを繰り返す
- 02モバイルアプリの問題を調査・再現する
- 03実機でスモークテストを行う
- 04記録した手順をテストフレームワーク向けに出力する
MCP 対応
MCPサーバーを内蔵し、コーディングエージェントから接続済みの実機を確認・操作できます。エージェントが計画と結果確認を担い、Devicelyは独自のAIを呼び出さずに端末操作を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
30掲載時のツール一覧 · 2 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| includeStopped | boolean | いいえ | 停止中のエミュレーターとシミュレーターを一覧に含めるかどうか |
詳細
Devicely
1 回タップするだけ。すべての iPhone、iPad、Android が連動します。
1 つの画面から、実機の iOS および Android デバイスのフリートを、手動、平易な英語、または MCP 経由の AI エージェントで操作できます。操作を Flow として保存し、コードを書かずにすべてのデバイスで再生できます。お使いのマシン上でローカルに動作し、お手元のデバイスを操作します。
▶ すべてのデモ · クイックスタート · 最初のデバイス · QA チーム向け · Flows · AI エージェント向け · CLI · 対応プラットフォーム · プライバシー
クイックスタート
macOS または Linux、Node.js 20.9 以降が必要です。 Windows はまだサポートされていません。
npm install -g devicely
devicely doctor # checks Node, adb, Xcode and iOS tools; prints the install command for anything missing
devicely start # starts Devicely and opens the Command Center
グローバルインストールできませんか? 管理者権限がない、グローバルインストールがブロックされている、インストールスクリプトが無効になっているなど、制限のある職場のマシンでは、代わりに npx で Devicely を実行してください。グローバルには何もインストールされず、すべてのコマンドを同じように使用できます。
npx devicely@latest doctor
npx devicely@latest start
初回の実行では約 185 MB をダウンロードします。2 回目以降は npm キャッシュから起動します。チームではバージョンを固定して(npx [email protected] start)、全員が同じバージョンを実行できます。会社で npm をプライベートレジストリ(Artifactory、Nexus、Verdaccio)経由にしている場合は、IT 部門に devicely パッケージの利用許可を依頼してください。npx と npm install はどちらもそのレジストリを使用します。
コマンドセンターは devicely-ai.vercel.app で開き、お使いのマシン上のサーバーと通信します。デバイスが接続されていない場合は 最初のデバイスを追加 の画面が開き、Android、iPhone、シミュレーター/エミュレーターの USB または Wi-Fi のセットアップを案内します。
手元にスマートフォンがありませんか? サーバーと一緒に Android エミュレーターまたは iOS シミュレーターを起動できます。
devicely emulators list # shows installed AVDs and simulators
devicely start --launch <name> # starts Devicely and boots that virtual device
要件: macOS または Linux 上の Node.js 20.9 以降。Android では adb(platform-tools)が PATH に含まれている必要があります。iOS および iPadOS デバイスには Xcode を搭載した Mac が必要です。詳しくは iOS のセットアップをご覧ください。
AI エージェントをお使いですか? devicely mcp install <client> で Claude Code、Cursor、VS Code などをセットアップできます。詳しくは AI エージェント向けをご覧ください。
数分で最初のデバイスを接続
devicely doctorは、プラットフォームごとにチェック項目をまとめ、各項目の状態を ✓ / ! / ✗ で表示します。また、✗ を解消するコマンドも表示します。利用可能なものが何もインストールされていない場合は、終了コード 1 で終了します(スクリプトでは--jsonを使用してください)。devicely startはローカルサーバーの URL を表示し、Command Center を開きます。- ブラウザーで「最初のデバイスを追加」の手順に従ってください。デバイスを接続し、許可 または 信頼 をタップしてデバイスがオンラインになると、チェックリストがリアルタイムで更新されます。
| お使いのデバイス | 所要時間の目安 | 必要なもの |
|---|---|---|
| Android スマートフォンまたはタブレット | 約 2 分 | adb、開発者向けオプションと USB デバッグが有効になっていること。Wi-Fi ペアリングには Android 11 以降が必要です。Android ガイド |
| iPhone または iPad | 初回は約 15 分 | Xcode がインストールされた Mac、Apple ID(無料のものでも使用できます)、Xcode で一度署名した WebDriverAgent。iOS ガイド |
| デバイスなし | Xcode または Android Studio のインストール後、数分 | iOS シミュレーター(Xcode + WebDriverAgent、署名不要)または Android エミュレーター(Android Studio の AVD) |
トラブルシューティング
| 問題 | 解決方法 |
|---|---|
Android に waiting for permission(unauthorized)と表示される | スマートフォンのロックを解除し、Allow USB debugging? の確認画面で 許可 をタップします(常に許可 にチェックを入れてください)。確認画面が表示されない場合は、開発者向けオプションで USB デバッグの承認を取り消してから、再接続してください。詳細 |
| デバイスが見つからない | 充電専用ではなくデータ転送対応のケーブルを使い、adb devices / idevice_id -l を確認してください。不足しているツールは devicely doctor で確認できます。Linux で no permissions と表示される場合は、udev ルールが設定されていません:修正方法 |
| ブラウザーからローカルサーバーに接続できない | devicely start がまだ実行中であることを確認し、表示されたリンクをそのまま開いてください。ページに Devicely is running, but this page can't talk to it と表示される場合、ブラウザーが HTTPS サイトから http://127.0.0.1 への接続をブロックしています。Chrome または Edge ではサイト設定で devicely-ai.vercel.app の ローカルネットワークへのアクセス を許可し、Brave ではそのサイトの Shields を下げてください。Safari の場合は Chrome、Edge、または Firefox を使用してください。ブラウザーが 30 秒以内に接続しない場合、devicely start はヒントも表示します。 |
npm install -g が EACCES または permission denied で失敗する、あるいは職場でブロックされる | npx devicely@latest start(および npx devicely@latest doctor)を使用してください。グローバルインストールも管理者権限も不要です。プライベートレジストリを使用している場合は、IT 部門に devicely パッケージを許可するよう依頼してください。sudo npm install -g は使用しないでください。 |
| ポートがすでに使用されている | devicely start -p 3002 を実行してください。デフォルト以外のポートを使う場合、devicely start は開くべきリンク全体を表示します。例:https://devicely-ai.vercel.app/?api=http://127.0.0.1:3002 |
| iPhone:WebDriverAgent の署名に失敗する | Devicely は原因(署名チームがない、プロビジョニング、Developer Mode がオフ、未信頼の開発元、デバイスがロック中、タイムアウト)を示し、iOS ガイドの解決方法にリンクします。 |
| Wi-Fi ペアリングに失敗する | ゲスト用、ホテル、企業の Wi-Fi では通常、デバイス間通信と mDNS がブロックされ、VPN によって通信経路が変更されます。自宅のネットワークまたはホットスポットを使うか、最初に USB でペアリングしてください。詳細 |
まだ解決しない場合は、devicely doctor --bundle を実行すると、サポート用の情報をまとめたファイルが(アップロードされることなく)ディスクに保存されます。このファイルを課題に添付できます。トラブルシューティングもご覧ください。
Devicely を選ぶ理由
1 つのフローを 10 台のデバイスでテストするには、通常、手作業で 10 回実行するか、分単位で課金されるクラウドデバイスを借りるか、デバイスごとのスクリプトを保守する必要があります。Devicely は異なるアプローチを採用しています。1 台のデバイスを操作するだけで、残りのデバイスも同じことを同時に実行します。
| Devicely | クラウドデバイスラボ | スクリプトフレームワーク(Appium、Maestro、Detox) | 画面ミラーリング(scrcpy、Vysor) | |
|---|---|---|---|---|
| ライブで 1 対多数のジェスチャー操作(1 回のタップ → すべてのデバイス) | ✅ | ❌ | ❌ | ❌ |
| 1 回のライブセッションで iOS と Android を混在して使用 | ✅ | ❌ | ❌ | ❌ |
| 自分のマシンで、自分のデバイスを使用 | ✅ | ❌ | ✅ | ✅ |
| コード不要(UI、音声、平易な英語) | ✅ | 一部対応 | ❌ | ✅(1 台) |
| Flow として 1 回記録し、すべてのデバイスで再生 | ✅ | 一部対応 | ❌(コードの記述が必要) | ❌ |
| AI エージェント向け MCP サーバーを内蔵 | ✅ | サービスにより異なる | サービスにより異なる | ❌ |
| Flow とロケーターをテストコードにエクスポート | ✅ | — | ✅ | ❌ |
Devicely はテストフレームワークに取って代わるものではありません。探索、複数のデバイスでのバグ再現、ビルドのスモークテスト、テストで使用するロケーターの特定など、時間のかかる周辺作業を短縮します。
QA チーム向け
Commander Mode — 1 対多数の操作
- コマンダーデバイスのライブミラーに、すべてのフォロワーを並べて表示します。
- すべてのジェスチャーをブロードキャストします。タップ、長押し、スワイプ(速度を維持)、入力テキストを、すべてのフォロワーに一斉に送信します。
- ピクセルだけに頼らず、要素を認識します。 フォロワーは、コマンダーがタッチした要素を、アクセシビリティ ID、ラベル、タイプ、UI ツリー上の位置から特定します。そのため、レイアウトが異なる場合でも、iPhone でのタップが iPad や Pixel の同じボタンに届きます。
- セッションを再起動せずに、ミラーのドロップダウンからコマンダーを切り替えられます。
- クリック 1 回で、個々のフォロワーを参加または除外できます。
- WebDriverAgent MJPEG による高速な iOS ミラーリング。フレームあたり約 170 KB で、スクリーンショットをポーリングする場合の約 5.8 MB と比べて小容量です。複数の iPhone が競合しないよう、iOS デバイスごとに独自の WDA ポートを割り当てます。
- 実機のような操作感:指先カーソルと、タッチした位置に波紋を表示します。これらはコマンダーのみに表示されます。
- アクションバーのスワイプ操作を、対象となるすべてのデバイスに一斉に送信します。
- 没入感のある全画面表示。画面下部にコマンドバーが重ねて表示されるため、ミラーから離れる必要はありません。
Flows — ノーコード自動化
手動で 1 回実行するだけで、Devicely が再生可能な Flow として保存します。1 台のデバイスまたはデバイス群全体で再生でき、必要になったらテストコードとしてエクスポートできます。
- ステップは生の座標ではなく、ロケーター(
accessibilityId、resourceId、テキスト、タイプ、境界)として記録されます。 - 自動待機:再生時、各ステップは要素が表示されるまで最大 10 秒待機するため、アニメーションや低速なネットワークが実行を妨げません。
- 座標フォールバック:要素が見つからない場合、代わりにスケーリングした位置をタップし、ステップに
fallbackとマークします。これにより、位置がずれた箇所を確認できます。 - 1 台のデバイスまたはデバイス群全体で並行して再生できます。
- Flow を Maestro、Appium(Python または Java)、WebdriverIO 用にエクスポートできます。AI を使わずにそのまま CI で利用できます。
- リスト表示またはグリッド表示で、検索やタグフィルターを使って Flow を管理できます。詳細ドロワーでは各ステップのロケーター、タイミング、結果を確認でき、エディターではステップの追加、編集、並べ替え、削除ができます。
平易な英語と音声
*「設定を起動して、下にスクロールし、カメラを開く」*と入力するか、話しかけてください。Devicely が各プラットフォームに合ったアクションに変換します。たとえば、iOS では com.apple.Preferences、Android では com.android.settings を使い、選択したすべてのデバイスで同時に実行します。音声入力は実行前に2秒間の無音を待つため、自然に話せます。
- 実際の画面に基づいて動作します。 計画を立てる前に、AI がデバイスの画面を読み取るため、推測するのではなく、実際に表示されているボタンをタップします。
- 実行前に確認できます。 計画はカードとして表示され、確認、編集、キャンセルができます。信頼できるようになったら、コマンドパレット(⌘K)から確認をオフにできます。
- デフォルトで安全です。 AI の計画は最初のステップが失敗した時点で停止し、固定の待ち時間に頼らず、各要素が表示されるまで待ちます。
Settings → AI Configで AI プロバイダーを選び、Test connectionを使って実際のリクエストでキーとモデルを確認します。
| プロバイダー | メモ |
|---|---|
| Ollama | ローカルで実行します。API キーは不要で、プロンプトがデバイスの外に送信されることもありません。 |
| Google Gemini、Groq | 無料プランがあり、手軽に始められます。 |
| OpenAI、Anthropic Claude | ご自身の API キーをご利用ください。 |
| GitHub Copilot | Copilot のサブスクリプションを使用します。 |
各プロバイダーの現在のモデルは、設定画面に一覧表示されます。Devicely は選択したプロバイダーのみを使用し、ユーザーに知らせずに別のプロバイダーへ切り替えることはありません。
クイックアクション、インスペクター、コードのエクスポート
- コマンドパレット(⌘K):数文字入力するだけで、任意のアクションの実行、対象デバイスの選択、コマンダーの切り替え、任意の場所への移動ができます。
- クイックアクションパネル:テキストの送信、名前または
x,yによる要素のタップ、オートコンプリートを使ったアプリの起動ができます。上矢印キーと下矢印キーで、以前に入力した内容を切り替えられます。 - UI インスペクター:任意の要素にカーソルを合わせると、アクセシビリティ ID、リソース ID、XPath、境界ボックスを確認できます。
- セレクターを Devicely コマンド、WebdriverIO、Appium Python、Appium Javaのコードとしてワンクリックでエクスポートできます。
接続を維持するデバイス
- ワイヤレスペアリング(Android 11+):Command Center から QR コードをスキャンするか、6桁のペアリングコードを入力します。IP アドレスを入力する必要はありません。ペアリングに失敗した場合、Devicely はネットワークがデバイス検出(mDNS)をブロックしているかを確認し、その結果を知らせます。ターミナルからは、
devicely wifi pair <ip:port> <code>、続けてdevicely wifi connect <ip:port>を実行します。 - デバイスの状態を明確に表示:Android デバイスで Allow のタップを待っている場合、消えてしまうのではなく、waiting for permissionと表示されます。
- ヘルスモニタリング:ケーブルの取り外し、再起動、ドライバーの障害を数秒以内に検出し、セッションをクリーンアップします。
- 自動再接続:デバイスが USB または Wi-Fi で再び検出されると、すぐに再接続します。デフォルトで有効です。無効にするには、
DEVICELY_AUTO_RECONNECT=0を設定します。 - 仮想デバイス:物理デバイスの横にある UI または CLI から、Android エミュレーターと iOS シミュレーターを起動、停止できます。
AI エージェント向け(MCP サーバー)
Devicely にはModel Context Protocolサーバーが含まれており、コーディングエージェントが実際のデバイスを確認して操作できます。
エージェントが頭脳で、Devicely が手です。 MCP 経由で Devicely が独自の AI を呼び出すことはありません。エージェントが画面を読み取り、判断し、操作して、結果を確認します。2つ目のモデルも、追加の API キーも不要で、Devicely の AI 設定を行う必要もありません。
devicely mcp install claude-code # prints the `claude mcp add` command to run
devicely mcp install cursor # also: vscode, windsurf, gemini, claude-desktop
devicely mcp doctor # checks the backend, token and transports
または、Claude Code 内から Claude Code プラグインをインストールします。
/plugin marketplace add sureshkumarm8/Devicely
/plugin install devicely@devicely
または、手動で Claude Code に追加します。
claude mcp add devicely -- npx -y devicely mcp
トランスポートは2種類あります。stdio(devicely mcpを実行すると、バックエンドが起動していない場合は起動します)と、Bearer トークンで保護されたStreamable HTTPです。devicely mcp doctorを実行すると、HTTP エンドポイントを確認できます。
30 個のツール
| グループ | ツール |
|---|---|
| 観察 | devicely_snapshot、devicely_find_elements、devicely_wait_for、devicely_get_device_logs、devicely_get_action_log |
| 操作 | devicely_tap、devicely_long_press、devicely_swipe、devicely_type_text、devicely_press_key、devicely_open_url |
| アプリ | devicely_launch_app、devicely_close_app、devicely_list_apps、devicely_install_app、devicely_uninstall_app |
| デバイス | devicely_list_devices、devicely_connect_device、devicely_disconnect_device、devicely_restart_device、devicely_set_passcode、devicely_doctor |
| フリートとフロー | devicely_commander、devicely_run_commands、devicely_export_test |
| 仮想デバイス | devicely_launch_virtual_device、devicely_stop_virtual_device |
| フロー | devicely_save_recording、devicely_list_recordings、devicely_replay_recording |
一般的なタスク向けのプロンプト:smoke_test、reproduce_bug、write_test。
ライブコンテキストを提供するリソース:devicely://devices、devicely://apps、devicely://docs/command-language、devicely://docs/agent-guide。
安全制御
設定 → AI Agents で設定します(~/.devicely/mcp.json に保存されます)。
- 破壊的なツールはデフォルトで無効です:
install_app、uninstall_app、restart_device、stop_virtual_device。有効にした場合、確認を必須にすることもできます。set_passcodeはデフォルトで許可されています。ブロックするには、~/.devicely/mcp.jsonのdisabledToolsに追加してください。 - エージェントが操作できるデバイスを限定(
allowedDevices)したり、個別のツールを無効にしたり、出力から機密情報を秘匿したりできます。 - エージェントのすべての操作は監査証跡に記録されます。
REST API
同じ機能を、同じ Bearer トークンを使って /api/v1 経由の HTTP でも利用できます。CI パイプラインやカスタムハーネスで便利です。devicely mcp token [--rotate] でトークンを表示またはローテーションできます。トークンは ~/.devicely/mcp-token に保存されます。
例
「Pixel のスナップショットを撮り、Login ボタンが表示されていることを確認して、タップし、ウェルカム画面が表示されることを確認してください。」
エージェントは devicely_snapshot と devicely_find_elements を呼び出し、devicely_tap でタップして、devicely_wait_for で結果を確認します。
CLI リファレンス
| コマンド | 説明 |
|---|---|
devicely start | サーバーを起動し(ループバック 127.0.0.1 にバインド)、Command Center を開きます |
devicely start --host <addr> | 特定のインターフェースにバインドします(例:LAN アクセスには --host 0.0.0.0) |
devicely start -p <port> | 別のポートを使用します(例:3001 が使用中の場合)。そのポート用の ?api= を含む Command Center の完全なリンクを表示します |
devicely start --no-browser | ブラウザーを開きません(CI、ヘッドレスマシン向け)。表示されたリンクを自分で開いてください |
devicely start --usb-only / --wifi-only | USB 上のデバイスのみ、または Wi-Fi 上のデバイスのみを検出します |
devicely start --launch <name> | サーバーの起動時に仮想デバイスを起動します |
devicely start --debug | デバッグログを有効にします |
devicely start --https --ssl-key <key.pem> --ssl-cert <cert.pem> | HTTPS/WSS で配信します(または DEVICELY_HTTPS=true、DEVICELY_SSL_KEY、DEVICELY_SSL_CERT を設定します)。証明書を読み込めない場合は起動を拒否します。ローカルで信頼されている証明書を使用してください(例:mkcert localhost 127.0.0.1)。ブラウザーは自己署名証明書を通知なしにブロックします |
devicely list [--verbose] | 接続されている iOS および Android デバイスを一覧表示します |
devicely exec "<command>" [-d <name>] | すべてのデバイスでコマンドを実行します。-d を指定すると、1 台のデバイスで実行します |
devicely doctor | Node、adb、Xcode、iOS ツールを確認し、各問題に対する修正コマンドを提示します。利用可能なものが何もインストールされていない場合は 1 で終了します |
devicely doctor --json | スクリプトや CI 向けに、同じ確認結果を JSON 形式で表示します |
devicely doctor --bundle | 編集済みのサポートバンドルをディスクに書き込みます(アップロードは行われません) |
devicely wifi pair <ip:port> <code> | ワイヤレスデバッグ › ペア設定コードでデバイスをペア設定 に表示されるコードを使って、Android 11 以降のデバイスをペア設定します |
devicely wifi connect <ip:port> | ワイヤレスデバッグ に表示されるアドレスを使って、ペア設定済みの Android デバイスに Wi-Fi 経由で接続します |
devicely telemetry status|enable|disable | オプトイン方式のセットアップ診断設定を表示または変更します(詳細) |
devicely emulators list | Android エミュレーターと iOS シミュレーターを一覧表示します(エイリアス:devicely virtual) |
devicely emulators start <name> [--headless] | 仮想デバイスを起動します |
devicely emulators stop <name> | 仮想デバイスをシャットダウンします |
devicely mcp [--url <url>] [--no-autostart] | MCP stdio サーバーを実行します |
devicely mcp doctor | MCP の準備状況を確認します |
devicely mcp token [--rotate] | エージェントトークンを表示またはローテーションします |
devicely mcp install <client> | claude-code、claude-desktop、cursor、vscode、windsurf、または gemini を設定します |
正規コマンドセット(DSL)
Devicely は、iOS と Android で決定論的な複数行またはセミコロン区切りのコマンド DSL を実行します。
| 動詞 | 構文 | プラットフォーム | 説明 |
|---|---|---|---|
launch | launch <app|package> | iOS, Android | プリセット名またはバンドル/パッケージ ID を指定してアプリケーションを起動します |
kill | kill <app|package> | iOS, Android | アプリケーションを強制停止/終了します |
click | click <text|x,y> | iOS, Android | テキスト、アクセシビリティ ID、または座標の組を指定して要素をタップします |
longpress | longpress <text|x,y> | iOS, Android | 要素または座標を長押しします |
swipe | swipe <up|down|left|right> | iOS, Android | 指でスワイプします(注:scroll down は swipe up に対応します) |
type | type <text> | iOS, Android | 現在フォーカスされている入力フィールドにテキストを入力します |
enter | enter | Android | Enter/送信キーを押します(iOS では type が Return キーを押します) |
home | home | iOS, Android | ホーム画面に移動します |
back | back | iOS, Android | 前の画面に戻ります |
screenshot | screenshot | iOS, Android | デバイスの画面をキャプチャします |
lock / unlock | lock, unlock | iOS, Android | デバイスの画面をロックまたは起動/ロック解除します |
url | url <https://...> | iOS, Android | デフォルトのブラウザーで URL を開きます |
WAIT | WAIT <ms> | iOS, Android | 指定したミリ秒数だけ実行を一時停止します |
notifications | notifications | iOS, Android | 通知センター/通知シェードを開きます |
quicksettings | quicksettings | iOS, Android | コントロールセンター/クイック設定を開きます |
recent | recent | iOS, Android | アプリスイッチャーを開きます |
rotate | rotate | iOS | 画面を回転します |
volume | volume <up|down> | Android | 音量を変更します |
getLocators | getLocators | Android | 現在の画面の UI アクセシビリティツリーをダンプします |
install / clear | install <apk>, clear <package> | Android | APK をインストールするか、アプリのデータを消去します |
uninstall | uninstall <app|package> | iOS, Android | アプリケーションを削除します |
restart / shutdown | restart, shutdown | iOS, Android | デバイスを再起動または電源オフします |
exec のコマンド例:
devicely exec "launch settings"
devicely exec "launch settings; swipe up; launch camera"
devicely exec "url https://github.com" -d "Pixel 8"
対応プラットフォーム
| 対応 | |
|---|---|
| ホストマシン | macOS と Linux、Node.js 20.9 以降。Windows はまだサポートされていません。 |
| Android | ADB と UIAutomator2 を使用するスマートフォン、タブレット、エミュレーター。ワイヤレスデバッグには Android 11 以降が必要です。 |
| iOS / iPadOS | WebDriverAgent を使用する iOS/iPadOS 17 以降の iPhone、iPad、シミュレーター。Xcode を搭載した Mac が必要です。実機では開発者モードを有効にする必要があります。 |
iOS のセットアップ
iPhone、iPad、シミュレーターは、Appium のオープンソーステストランナーである WebDriverAgent(WDA)を通じて操作します。Add your first device からワンクリックで取得するか、Devicely のデータフォルダーに自分でクローンしてください。
git clone https://github.com/appium/WebDriverAgent ~/.devicely/WebDriverAgent
(DEVICELY_DATA_DIR を設定している場合は $DEVICELY_DATA_DIR/WebDriverAgent を使用します。WDA_PATH を設定すると、別の場所にあるチェックアウトを Devicely に指定できます。)シミュレーターにはそれ以上の準備は必要ありません。
実機では、Apple ID を使って Xcode で WDA に一度署名する必要もあります。無料の Apple ID でも使用できますが、署名は 7 日後に期限切れになります。アプリ内ガイドでは、コンピューターの信頼、開発者モードの有効化、署名の手順を説明します。また、接続に失敗した場合は理由(署名チームなし、プロビジョニング、開発者モードがオフ、信頼されていない開発者、デバイスがロック中、タイムアウト)と修正方法へのリンクが表示されます。詳しい手順:iOS device guide。Android デバイスでは署名は必要ありません。
プライバシーとセキュリティ
- ローカルで実行されます。 Devicely サーバーはお使いのマシン上で実行され、デバイスと直接通信します。アプリ、スクリーンショット、テストデータがどこかにアップロードされることはありません。
- デフォルトではループバックにバインドします。 サーバーはデフォルトで
127.0.0.1にバインドし、意図しないローカルネットワークへの公開からホストマシンを保護します。 - Origin と Host のガード。 REST API と WebSocket エンドポイントへのリクエストは、信頼されていない Host ヘッダーと Origin ヘッダーから保護され、DNS リバインディングやクロスオリジン攻撃を防ぎます。
- ローカル AI も選択できます。 Ollama を使えば、プロンプトと画面データをお使いのマシン上に保持できます。クラウド AI プロバイダーを使う場合、コマンドはご自身の API キーでそのプロバイダーに送信されます。
- API キーはお使いのマシンに保存されます。 設定で追加した AI キーは
~/.devicely/.env(または$DEVICELY_DATA_DIR/.env)に保存され、ご本人のみが読み取れます(0600)。選択した AI プロバイダーにのみ送信されます。 - エージェントにはトークンが必要です。 HTTP 経由の MCP と REST API には、32 バイトの Bearer トークンが必要です。
- **アナリティクス:**ローカルサーバーはテレメトリーを送信しません。ホスト型ダッシュボード devicely-ai.vercel.app は匿名の Vercel ページビューアナリティクスを使用し、ローカルサーバーに接続します。デバイスデータが Vercel に送信されることはありません。
- セットアップ診断はオプトインです。 Command Center では、匿名のセットアップイベント(例:「doctor check failed: adb missing」や「first device action succeeded」)の共有について、確認が一度だけ表示されます。送信されるのは固定コードのみです。シリアル番号、IP アドレス、デバイス名やアプリ名、ファイルパスは含まれません。許可しない限り何も送信されず、
DO_NOT_TRACK=1またはDEVICELY_TELEMETRY_DISABLED=1を設定すると無効になります。devicely telemetry status|enable|disableで確認または変更できます。すべてのイベントとフィールドは TELEMETRY.md に記載されています。
詳細はこちら:Devicely が確認できること、できないこと。脆弱性を見つけた場合は、公開 issue を作成する代わりに [email protected] までメールでご連絡ください。
バージョン 2.4.0 の新機能
- **Flows:**記録機能が Flows になりました。一度記録すればすべてのデバイスで再生でき、Maestro、Appium、WebdriverIO にエクスポートできます。
- **根拠に基づいた AI コマンド:**AI は計画を立てる前に画面を読み取り、確認用に計画を表示し、最初のステップが失敗した時点で停止します。また、固定の待機時間ではなく、要素が表示されるまで待機します。
- **Command Center を再設計:**コンパクトなコマンドバー、⌘K コマンドパレット、全デバイスを対象にしたスワイプ操作、没入型の全画面表示、実機のタッチフィードバックを追加しました。
- **MCP を簡素化:**エージェントが各ステップを自ら計画するようになりました。Devicely が MCP 経由で独自の AI を呼び出すことはなくなりました。
- **AI プロバイダー:**最新の Gemini モデルと Groq モデル、実際に接続を確認する「Test connection」、サイレントフォールバックなし。Cohere と Mistral は削除されました。
- **iOS 26 の修正:**ロックとロック解除が再び機能するようになり、新しいバージョン向けの iOS トンネルサポートも追加されました。
- **セキュリティ:**既知の依存関係の脆弱性をすべて修正しました。Node.js 20.9 以降が必須になりました。
ライセンス
無料で使用できます。ソースコードは非公開です。 Devicely は、ご自身での使用にも、会社内での使用にも、無料でインストールして利用できます。このソフトウェアはプロプライエタリです。コピー、変更、リバースエンジニアリング、再配布、ホスト型サービスとしての提供、AI モデルのトレーニングへの使用は禁止されています。Devicely Free Use License をご覧ください。
- ご質問・法人向けのお問い合わせ: [email protected]
- 問題を報告: github.com/sureshkumarm8/Devicely/issues
Devicely が時間の節約に役立ったら、GitHub でスターを付けてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。