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를 별개 앱으로 등록 | 하나의 워크스페이스에 모든 기기 |
| 시트 | 인원수로 계산 | 같은 인원수 기준, 에이전트와 기기는 시트를 차지하지 않음 |
| 도입 | 가입 → 프로젝트 생성 → 연동 → 실행 → 다시 사이트에서 확인 | 에이전트 승인 → 자동 연동 → 자동 검증, 워크스페이스와 기기 자격 증명까지 자동 준비 |
신뢰된 에이전트 클라이언트가 처음 OAuth로 승인받은 뒤에는 SDK 연동, device-only 자격 증명, 첫 검증까지 모두 에이전트가 맡습니다.
호스팅 원격 MCP에 연결해 계정과 워크스페이스라는 꼭 필요한 신뢰 경계만 확인합니다.
에이전트가 SDK를 설치하고 device-only 자격 증명을 발급하며, 신뢰된 테스트 구성에서만 적용되는 로컬 빌드 설정을 기록합니다.
에이전트가 앱을 실행해 기기가 온라인인지 확인하고, 곧바로 스크린샷·진단·재현을 시작합니다.
// AppDelegate.swift · 승인된 테스트 빌드 #if TELEPATH_ENABLED import Telepath Telepath.start() // 한 번만 설정하면 일반 실행과 승인된 테스트 Release 모두에서 동작합니다 #endif
하나의 프로토콜, 여러 구현. iOS 레퍼런스 구현과 바이너리는 퍼블릭 베타로 공개되어 있고, 다른 플랫폼은 수요에 따라 계획합니다.