AI ネイティブなリモートデバッグ基盤
エージェントには動いている画面が見えません。あなたがスクリーンショットを撮って伝えるしかない。AppTelepath は実行中の現場をそのままエージェントのコンテキストに変えます——見える、触れる、その場で検証できる。
無料ベータ公開中 · クレジットカード不要
telepath_screenshot ✓ 328 ms · LoginViewControllertelepath_view_hierarchy ✓ 操作可能な要素 27 件 · ref n1 – n27telepath_tap ref=n12 # 「ログイン」ボタン ✓ 画面遷移 Login → Home · エラーログ 0 件telepath_diagnose ✓ クラッシュなし・ハングなし・失敗リクエスト 0 件 · 検証完了
端末がつながれば、アプリのランタイムはすべてここに出ます——あなたが見るものと、エージェントが受け取るデータは同一です。
画面 · ログ · ネットワーク · UI ツリー · パフォーマンス · ファイル · UserDefaults · データベース · 問題 · 録画 · シミュレーション · コマンド
返ってくるのは構造化データで、あとから人が読み解くスクリーンショットではありません。コマンドを選ぶと、各ステップでエージェントが受け取る内容を確認できます。
▸telepath_screenshot
▸telepath_view_hierarchy mode=summary
{
"mode": "summary",
"snapshot": "s4",
"currentVC": "LoginViewController",
"interactive": [
{ "ref": "s4n5", "kind": "textfield", "accessibilityId": "email" },
{ "ref": "s4n6", "kind": "textfield", "accessibilityId": "password" },
{ "ref": "s4n7", "kind": "button", "text": "ログイン" }
],
"text": [
{ "ref": "s4n2", "text": "おかえりなさい" },
{ "ref": "s4n3", "text": "ログインして続行" }
]
}
▸telepath_tap ref=s4n7
{
"ok": true,
"target": "UIButton(ログイン)",
"changed": {
"screenChanged": true,
"vcFrom": "LoginViewController",
"vcTo": "HomeViewController",
"appeared": ["text|ホーム", "button|ログアウト"],
"disappeared": ["button|ログイン", "textfield|email"]
},
"incidents": { "errorLogs": 3, "failedRequests": 1 }
}
▸telepath_network_requests
{
"records": [
{ "id": 41, "method": "POST", "url": "/v2/login",
"status": 200, "durationMs": 182 },
{ "id": 42, "method": "GET", "url": "/v2/profile",
"status": 500, "durationMs": 96, "failed": true },
{ "id": 43, "method": "GET", "url": "/v2/feed?page=1",
"status": 200, "durationMs": 231 }
]
}
▸telepath_diagnose
{
"severity": "error",
"headline": "失敗リクエスト 1 種:GET /v2/profile が 500 を返却(60 秒間に 3 回)",
"failedRequests": [
{ "method": "GET", "url": "/v2/profile",
"status": 500, "count": 3 }
],
"errorClusters": [
{ "count": 3, "sample": "ProfileService decode error: key 'avatar_url' not found" }
],
"crashes": [],
"hangs": []
}
Claude Code でも Cursor でも、スクリプトでも CI でも、あなたのブラウザーでも——同じリアルタイムの事実に、どこからでも届きます。エージェントにできることはあなたにもでき、あなたに見えるものはエージェントにも見えます。
ホスト型エンドポイントに接続してログイン認可するだけで、エージェントはアプリを見る・触る・検証する能力をすべて手にします。
https://apptelepath.com/mcp
MCP がなくても制限はありません。スクリプト、CI、curl を投げられる環境なら、コマンド呼び出しもリアルタイムイベントの購読も可能です。
# 画面上の「ログイン」をタップ curl -X POST $API/invoke \ -d '{"command":"ui.tap","ref":"n12"}'
エージェントが見ているものを、チームはブラウザーでそのまま見られます——画面・ログ・ネットワーク・データベース・パフォーマンス・セッション再生。
見えるだけでは足りません。バグを直すには、エージェントが画面を操作し、条件を作り出し、その場で結果を検証できる必要があります。
エージェント自身がタップと入力を行い、狙った要素を正確に突きます——直したコードをその場で検証でき、あなたの操作待ちが消えます。
低速回線・位置情報・プッシュ通知をワンコールでシミュレート。「特定の状況でしか出ない」バグが数秒で再現します。
リクエスト、ログ、データベース、パフォーマンス、クラッシュ——アプリでいま起きたことに、その都度答えます。
一度再現すれば、チーム全員とすべてのエージェントが再生できます。バグを口頭説明で受け渡す必要はもうありません。
同じ問いでも、より少ないトークンとやり取りで答えに届きます——速く、そして安く。
あなたのアプリ固有のデバッグ手段も、一度登録すればエージェントはすぐ使えるようになります。
AppTelepath はセッションビューアーの焼き直しではありません。デバッグ能力そのものを、エージェントと人が共有できる基盤として開いたものです。
| 従来のリモートデバッグ | AppTelepath | |
|---|---|---|
| 主なインターフェース | 人間向けに設計され、API は付属物 | エージェントと人の両方に向けて設計、能力は完全に対等 |
| できること | すでに起きたことを見返す | 観測に加えて、操作と条件づくりまで |
| マルチプラットフォーム | iOS と Android を別々のアプリとして登録 | 1 つのワークスペースにすべての端末 |
| シート | 人数で課金 | 同じく人数で課金。エージェントと端末はシートを消費しません |
| 導入 | 登録 → プロジェクト作成 → 組み込み → 起動 → サイトに戻って確認 | エージェントを認可 → 自動で組み込み → 自動で検証。ワークスペースと端末の資格情報も自動で用意 |
信頼済みエージェントクライアントの初回 OAuth 認可のあとは、SDK の組み込み、device-only 資格情報、初回検証までエージェントが行います。
ホスト型のリモート MCP に接続し、アカウントとワークスペースという必要最小限の信頼境界だけを確認します。
エージェントが SDK を導入し、device-only 資格情報を発行し、信頼済みテスト構成でのみ有効になるローカルのビルド設定を書き込みます。
エージェントがアプリを起動し、端末のオンラインを確認して、そのままスクリーンショット・診断・再現に入ります。
// AppDelegate.swift · 認可済みテストビルド #if TELEPATH_ENABLED import Telepath Telepath.start() // 設定は一度だけ。通常起動でも認可済みテスト Release でも動作します #endif
1 つのプロトコルを、各プラットフォームで実装。iOS のリファレンス実装とバイナリはパブリックベータ公開中、その他は需要に応じて計画します。