
エージェントと人間のためのユニバーサルモバイル開発ツール - 単一のダッシュボードとCLIからiOSシミュレータ、Androidエミュレーター、実機を制御
ユニバーサルモバイル開発ツール — 単一のダッシュボードとCLIからiOSシミュレータ、Androidエミュレータ、実機を制御
npx simvyn
ローカルサーバーを起動し、ブラウザでWebダッシュボードを開き、接続されているすべてのシミュレーター、エミュレーター、USB接続の物理デバイスを自動的に検出します。
## インストール
**グローバルインストール:**```bash
npm install -g simvyn
一度限りの使用(インストール不要):```bash npx simvyn
**要件:**
- Node.js >= 22.12.0
- macOS(iOS + Android フルサポート)または Linux(Android のみ)
## 機能
- **デバイス管理** — シミュレータ、エミュレータ、物理デバイスの検出、起動、シャットダウン、消去、作成、複製、お気に入りの固定
- **アプリ管理** — ドラッグ&ドロップまたは CLI によるアプリのインストール、起動、終了、アンインストール
- **ログビューア** — レベルフィルタリング、ページ内検索(Cmd+F)、正規表現検索、ページネーション、エクスポートを備えたリアルタイムストリーミング
- **位置情報シミュレーション** — GPS 座標の設定、速度制御付き GPX/KML ルートの再生、お気に入りの保存
- **デバイス設定** — ダークモード、ロケール、向き、権限、ステータスバーのオーバーライド、アクセシビリティプリセット
- **スクリーンショットと録画** — スクリーンショットの撮影、画面録画、履歴表示
- **ディープリンク** — URL とカスタムスキームの開始、アプリごとにお気に入りを保存
- **データベースインスペクタ** — SQLite テーブルの参照、SQL クエリの実行、SharedPreferences と NSUserDefaults の表示
- **ファイルブラウザ** — アプリサンドボックスの参照、ファイルのアップロード/ダウンロード、テキストのインライン編集
- **プッシュ通知** — JSON ペイロードの作成、iOS シミュレータへの送信、テンプレートライブラリ
- **コレクション** — デバイスアクションを再利用可能なシーケンスにまとめ、複数デバイスに一度に適用
- **クラッシュログ** — iOS の診断レポートと Android の logcat/tombstone クラッシュ
- **クリップボード** — デバイスクリップボードの読み取りと書き込み
- **メディア** — 写真や動画をデバイスのカメラロールやギャラリーにプッシュ
- **ツール設定** — サーバー設定、ストレージ管理、診断、デバッグレポート
- **実機対応** — USB 経由で Android および iOS 実機を自動検出して接続
- **Web ダッシュボード** — Apple Liquid Glass デザイン、コマンドパレット、キーボードナビゲーション
- **フル CLI** — すべての機能を `simvyn <command>` でヘッドレスに実行
## モジュール紹介
### デバイス管理
接続されているすべての iOS シミュレータ、Android エミュレータ、USB 接続の物理デバイスを1つの統合リストで検出します。Xcode や Android Studio に触れることなく、デバイスの起動、シャットダウン、消去が可能です。デバイスタイプとランタイムを選択して新しい iOS シミュレータを作成したり、既存のものを複製してすぐに重複をスピンアップできます。物理デバイスは接続時に自動的に表示され、デバイスセレクターで別のグループにまとめられます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/2b85641878f6015c248311700a1a87a20476ade6c930273a3e47f288a82d6d2e.png" alt="Device Management" width="700" /></p>
- 利用可能なすべてのシミュレータ、エミュレータ、物理デバイスをプラットフォーム間で一覧表示
- ワンクリックまたは CLI コマンドでデバイスの起動、シャットダウン、消去
- デバイスタイプとランタイム選択による新しい iOS シミュレータの作成
- 既存のシミュレータの複製と名前変更
- お気に入りのデバイスをデバイスセレクターの先頭に固定
- WebSocket によるリアルタイムデバイス状態更新
### アプリ管理
接続された任意のデバイスでアプリのインストール、起動、終了、アンインストールを行います。IPA、APK、または iOS シミュレータの .app バンドルをダッシュボードにドラッグ&ドロップします。手動で adb や simctl コマンドを使わずに、詳細なアプリ情報の表示やアプリデータの消去ができます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/17757b1ca8ddd41d43ac3a159260598308da6c3f759e1c9d730f61498e18ce8a.png" alt="App Management" width="700" /></p>
- IPA、APK、iOS シミュレータ .app のドラッグ&ドロップインストール
- バンドル ID によるアプリの起動、終了、アンインストール
- バージョン、サイズ、権限を含むアプリ詳細の表示
- Android デバイスでのアプリデータ消去
- 検索フィルタリング付きインストール済みアプリ一覧
### ログビューア
強力なフィルタリング機能でデバイスログをリアルタイムにストリーミングします。ログレベルでのフィルタリング、正規表現パターンによる検索、プロセス名によるフィルタリングが可能です。ページ内検索(Cmd+F)を使用して、周囲のコンテキストを隠さずに特定のエントリをハイライトできます。フィルタリングされたログを共有やアーカイブのためにエクスポートします。ページネーション履歴により、パフォーマンスの問題なしに数千件のエントリをさかのぼって表示できます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/b909b3515637b4059ebf210c56599f2f022506f09ee35a11e812bd8368d3750e.png" alt="Log Viewer" width="700" /></p>
- WebSocket を介したリアルタイムログストリーミング
- レベルフィルタリング:debug、info、warning、error、fatal
- ページ内検索(Cmd+F)による一致ハイライト、ナビゲーション、カウンター表示
- 正規表現検索とプロセス名フィルタリング
- 仮想スクロール付きページネーション履歴
- フィルタリングされたログをファイルにエクスポート
- クリア後も状態を保持したログストリーミングの一時停止/再開
### 位置情報
インタラクティブなマップまたは手動入力を使用して、任意のデバイスに正確な GPS 座標を設定します。速度調整機能付きで GPX および KML ルートファイルを再生します。よく使う位置情報をお気に入りとして保存し、すぐにアクセスできます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/47842dfa878ffbc80bd5bb32d83e820e7ed7dd56a4d63368ca6e823ef72889d4.png" alt="Location" width="700" /></p>
- クリックで座標を設定できるインタラクティブマップ
- 速度制御付き GPX および KML ルートファイルの再生
- デバイスごとに保存されるお気に入りの位置情報
- マルチデバイス位置情報ブロードキャスト
- 人間が読める住所への逆ジオコーディング
### デバイス設定
ダークモードの切り替え、ロケールの変更、デバイスの向き(Android)の回転、アプリの権限管理、ステータスバーの外観のオーバーライドを行います。アクセシビリティプリセットを適用して、さまざまな条件下でアプリをテストできます。すべての設定変更はターゲットデバイスに即座に反映されます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/d3f6a33c17b773560072f7b94b71abd5ebc82786c073bdeb6d25f828c3f214fa.png" alt="Device Settings" width="700" /></p>
- ダーク/ライトモードの切り替え
- デバイスロケールの変更
- アプリ権限の管理
- ステータスバーのオーバーライド(時刻、バッテリー、信号)
- アクセシビリティプリセット(太字テキスト、コントラストの増加、コンテンツサイズ)
### スクリーンショットと録画
任意のデバイスでスクリーンショットを撮影し、画面を録画します。すべてのキャプチャはタイムスタンプ付きで保存され、ブラウズ可能な履歴として整理されます。ダッシュボードから直接キャプチャをダウンロードまたは削除できます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/58ed8f25d148ed53f39066e42be730f255235dbec47539bbec826c455cba7936.png" alt="Screenshots and Recording" width="700" /></p>
- ワンクリックスクリーンショット撮影
- 開始/停止コントロール付き画面録画
- タイムスタンプ付きキャプチャ履歴
- ダッシュボードからのキャプチャダウンロードおよび削除
### ディープリンク
任意のデバイスで URL やカスタム URI スキームを開きます。よく使うディープリンクをアプリごとにお気に入りとして保存します。ターミナルで URL を手動で入力することなく、アプリのディープリンク処理をテストできます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/3a990ef7c74f83c93b63c1654f74b3fa952b0b41abd31fe688cdaf2e29570f62.png" alt="Deep Links" width="700" /></p>
- デバイス上で任意の URL またはカスタムスキームを開く
- アプリごとにお気に入りのディープリンクを保存
- 最近のものを上位に表示するリンク履歴
- iOS と Android の両方で動作
### データベースインスペクタ
任意のアプリのサンドボックス内にある SQLite データベースを参照します。テーブルスキーマの表示、任意の SQL クエリの実行、SharedPreferences(Android)または NSUserDefaults(iOS)の検査が可能です。スクリプトを書かずに値をインライン編集できます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/4884b688dbbee5f1a34b0454950f4d6562e74efdbbb3b84ca5c626835b4b7d37.png" alt="Database Inspector" width="700" /></p>
- ソート可能な列で SQLite テーブルを参照
- 任意の SQL クエリを実行
- SharedPreferences と NSUserDefaults の表示と編集
- 型検出付きインラインセル編集
### ファイルブラウザ
インストール済みの任意のアプリのサンドボックスファイルシステムを参照します。ディレクトリの移動、ファイルのアップロード/ダウンロード、テキストファイルのインライン編集が可能です。手動の adb pull/push コマンドなしで、マシンとデバイス間でファイルを転送できます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/7b7ba540ad5de8b575da4f9bb28694dc68f5ffce51225a388788b8ef2f4767a0.png" alt="File Browser" width="700" /></p>
- アプリサンドボックスディレクトリの参照
- ファイルのアップロードとダウンロード
- テキストファイルのインライン編集
- iOS および Android のアプリコンテナの両方で動作
### プッシュ通知
JSON プッシュ通知ペイロードを作成し、iOS シミュレータに送信します。組み込みのテンプレートライブラリを出発点として使用するか、ペイロードをゼロから作成します。リアルタイムの JSON バリデーションにより、送信前にエラーをハイライトします。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/f640654be67c24c7248806987e62908316407c18648fc145109118f260443f7d.png" alt="Push Notifications" width="700" /></p>
- iOS シミュレータへのプッシュペイロードの作成と送信
- 組み込みのペイロードテンプレートライブラリ
- リアルタイム JSON バリデーション
- バンドル ID による特定のアプリへの送信
### コレクション
デバイスアクションの再利用可能なセットを作成し、複数のデバイスに一度に適用します。コレクションは、位置情報の設定、ダークモードの切り替え、アプリのインストールなどのステップを単一の繰り返し可能なワークフローにまとめます。simvyn には3つのスタータープリセットが付属しています。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/fbf2ddbba1d3725321c80a914bf5b71ea6a2fc605fddbb73abd0b28385488af6.png" alt="Collections" width="700" /></p>
- 名前付きコレクションの作成、複製、管理
- 全モジュールにわたるカテゴリ別アクションカタログの参照
- ドラッグ&ドロップによるステップの並べ替え
- 互換性チェック付きで複数デバイスに適用
- 3つの組み込みスタータープリセット
### クラッシュログ
iOS 診断レポート(.ips ファイル)と、logcat および tombstone ダンプからの Android クラッシュログを表示します。タイムスタンプとプロセス情報を含むクラッシュエントリを参照します。デバイスのファイルシステムを掘り返さずに、完全なクラッシュ詳細を検査できます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/8f74a799448050bc37eace1d43865b13f3f47a0997c01dba650fd21e94f09ebf.png" alt="Crash Logs" width="700" /></p>
- iOS 診断レポート(.ips)の解析
- Android logcat クラッシュの PID とタグによるグループ化
- Android tombstone ダンプの取得
- 詳細ビュー付きタイムスタンプ付きクラッシュリスト
### クリップボード
ダッシュボードまたは CLI からデバイスクリップボードの読み取りと書き込みを行います。テストデータをアプリにすばやく貼り付けたり、アプリがコピーした内容を検査するのに便利です。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/db889032abeb5f1d511dcfeb8c06c215bda851436f198a63db97f595b50853d6.png" alt="Clipboard" width="700" /></p>
- 現在のクリップボード内容の読み取り
- デバイスクリップボードへのテキスト書き込み
- iOS シミュレータと Android エミュレータで動作
### メディア
写真や動画をデバイスのカメラロールやギャラリーに直接プッシュします。ファイルをダッシュボードにドロップすると、ケーブル、メール、クラウド転送なしで注入できます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/c63ce5411dc17b5d329c2af381c035d86164f5544928b0c76fe7d05346473561.png" alt="Media" width="700" /></p>
- ドラッグ&ドロップで写真や動画をデバイスギャラリーに追加
- 最大500 MBの大容量ファイルに対応
- iOS シミュレータと Android エミュレータで動作
### ツール設定
simvyn サーバーの設定、ストレージの管理、診断の表示を行います。問題報告用のデバッグレポート生成機能も含まれます。
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/7ba043d473d21d4bb5477582539ffd9a4c57600ec20c22ee9d7e63146cbbfbb2.png" alt="Tool Settings" width="700" /></p>
- サーバーポート、自動起動、ポーリング間隔の設定
- データワイプオプション付きストレージ使用状況概要
- 診断:Xcode バージョン、devicectl の可用性、adb バージョン
- バグ報告用ワンクリックデバッグレポート
## コレクションガイド
コレクションを使用すると、複数のデバイスアクションを再利用可能なシーケンスにまとめ、ワンクリックで任意のデバイス組み合わせに適用できます。
### コレクションの作成
サイドバーからコレクションパネルを開きます。**新しいコレクション**をクリックし、名前を付けます。コレクションは空の状態で始まります。アクションカタログからステップを追加します。
### ステップの追加
**ステップを追加**をクリックして、カテゴリ別に整理されたアクションカタログを参照します。アクションはモジュール別(デバイス設定、位置情報、アプリ管理など)に分類されています。アクションを選択し、インラインでパラメータ(座標、バンドル ID、トグル値など)を設定すると、コレクションに追加されます。ステップをドラッグして並べ替えられます。
### コレクションの適用
**適用**をクリックして適用モーダルを開きます。デバイスリストから1つ以上のターゲットデバイスを選択します。互換性サマリーにより、互換性のないプラットフォーム(例えば、Android デバイスでの iOS 専用アクション)でスキップされるステップが表示されます。**Cmd+Enter** で実行します。ライブステータスマトリックスにより、ステップごと、デバイスごとの進行状況がリアルタイムに表示されます。
### コマンドパレット統合
保存されたコレクションはコマンドパレット(**Cmd+K**)に表示されます。コレクション名で検索し、デバイスピッカーで直接適用できます。コレクションパネルに移動する必要はありません。
### スターターコレクション
simvyn には3つの組み込みプリセットが付属しています:
- **ダークモード + 日本語ロケール** — ダークモードを有効にし、ロケールを日本語に設定
- **スクリーンショット設定** — クリーンな App Store スクリーンショット用にステータスバーのオーバーライドを設定
- **デバイス状態のリセット** — 位置情報をクリアし、設定をリセットし、アプリデータを消去
### CLI での使用```bash
simvyn collections list # List all collections
simvyn collections apply <name> <devices...> # Apply a collection to devices
すべての機能はコマンドラインからアクセス可能です。simvynを引数なしで実行するとダッシュボードが起動し、以下のコマンドを使用してヘッドレス操作も可能です。
simvynは、xcrun simctl(iOSシミュレータ)、xcrun devicectl(iOS実機)、およびadb(Android)を統一されたインターフェースでラップします。SDKは不要で、どのアプリでも動作し、コードの変更は必要ありません。
アーキテクチャはモジュールシステムを基盤としており、ロケーション、ログ、アプリ管理などの各機能は、自己完結型のプラグインとして、独自のAPIルート、CLIコマンド、WebSocketハンドラを登録します。Webダッシュボードは、ローカルのFastifyサーバーと単一の多重化されたWebSocket接続を介して通信し、リアルタイムのデバイス状態とログのストリーミングを実現します。特定のデバイスタイプで利用できない機能は、UI上で明確なインジケーターとともに自動的に無効化されます。
| プラットフォーム | iOSシミュレータ | iOS実機 | Androidエミュレータ | Android実機 |
|---|---|---|---|---|
| macOS | はい |
USBで接続された実機は、シミュレータやエミュレータとともに自動的に検出されます。ダッシュボードではそれらを別々のセクション(実機 / シミュレータ / エミュレータ)にグループ化し、デバイスが切断された際にはトースト通知を表示します。
Android実機では、アプリ管理、ディープリンク、ログ、スクリーンショット、データベースインスペクター、ファイルブラウザなど、ほぼすべての機能をサポートしています。エミュレータ限定の機能(adb emu geoによる位置情報シミュレーション、バッテリーシミュレーション)はごく一部利用できず、UI上で明確に示されています。
iOS実機ではXcode 15以降が必要で、内部ではxcrun devicectlを使用します。サポートされている機能は、デバイス検出、アプリのインストール/アンインストール/起動/終了、アプリ一覧、ディープリンク、ファイルコピーです。simctlに依存する多くの機能(スクリーンショット、画面録画、位置情報シミュレーション、クリップボード、外観、ステータスバー、プッシュ通知)はiOS実機では利用できません。サポートされていないコントロールは無効化され、理由を説明するツールチップが表示されます。コレクション機能では、実機に適用できないステップが自動的にスキップされます。
MIT
| コマンド | 説明 |
|---|
simvyn | ダッシュボードを起動(デフォルト) |
simvyn device list | 全デバイスを一覧表示 |
simvyn device boot <device> | デバイスを起動 |
simvyn device shutdown <device> | デバイスをシャットダウン |
simvyn device erase <device> | デバイスのコンテンツと設定を消去 |
simvyn device create <name> <type> <runtime> | 新しいiOSシミュレータを作成 |
simvyn device clone <device> <name> | iOSシミュレータを複製 |
simvyn device rename <device> <name> | iOSシミュレータの名前を変更 |
simvyn device delete <device> | iOSシミュレータを削除 |
simvyn location set <device> <lat> <lng> | GPS座標を設定 |
simvyn location route <device> <file> | GPX/KMLルートを再生 |
simvyn location clear <device> | シミュレートされた位置情報をクリア |
simvyn app list <device> | インストール済みアプリを一覧表示 |
simvyn app install <device> <path> | IPA、APK、またはiOSシミュレータの.appをインストール |
simvyn app uninstall <device> <bundle-id> | アプリをアンインストール |
simvyn app launch <device> <bundle-id> | アプリを起動 |
simvyn app terminate <device> <bundle-id> | アプリを終了 |
simvyn app info <device> <bundle-id> | アプリの詳細を表示 |
simvyn app clear-data <device> <bundle-id> | アプリデータを消去(Android) |
simvyn logs <device> | デバイスログをストリーム |
simvyn screenshot <device> | スクリーンショットを撮影 |
simvyn record <device> | 画面を録画 |
simvyn link <device> <url> | ディープリンクを開く |
simvyn push <device> | プッシュ通知を送信 |
simvyn fs ls <device> <bundle-id> [path] | アプリサンドボックス内のファイル一覧 |
simvyn fs pull <device> <bundle-id> <path> | ファイルをダウンロード |
simvyn fs push <device> <bundle-id> <src> <dst> | ファイルをアップロード |
simvyn db list <device> <bundle-id> | データベースを一覧表示 |
simvyn db query <device> <bundle-id> <db> <sql> | SQLクエリを実行 |
simvyn db prefs <device> <bundle-id> | SharedPreferences / NSUserDefaultsを表示 |
simvyn keychain add <device> <cert> | ルート証明書を追加 |
simvyn keychain reset <device> | キーチェーンをリセット |
simvyn collections list | 全コレクションを一覧表示 |
simvyn collections show <id> | コレクションの詳細を表示 |
simvyn collections create <name> | 新しいコレクションを作成 |
simvyn collections delete <id> | コレクションを削除 |
simvyn collections duplicate <id> | コレクションを複製 |
simvyn collections apply <name> <devices...> | コレクションをデバイスに適用 |
simvyn settings orientation <device> <orient> | デバイスの向きを設定(Android) |
| 制限あり |
| はい |
| はい |
| Linux | いいえ | いいえ | はい | はい |