
에이전트 & 인간을 위한 범용 모바일 개발 도구 - 단일 대시보드와 CLI로 iOS 시뮬레이터, Android 에뮬레이터 및 실제 기기를 제어하세요
범용 모바일 개발 도구 — 단일 대시보드 및 CLI에서 iOS 시뮬레이터, Android 에뮬레이터, 실제 기기를 제어하세요
npx simvyn
로컬 서버를 시작하고, 브라우저에서 웹 대시보드를 열며, 연결된 모든 시뮬레이터, 에뮬레이터, 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 기기 연결 (자동 검색)
- **웹 대시보드** — Apple Liquid Glass 디자인, 명령 팔레트, 키보드 탐색
- **전체 CLI** — `simvyn <command>`로 모든 기능을 헤드리스로 사용 가능
## 모듈 쇼케이스
### 기기 관리
연결된 모든 iOS 시뮬레이터, Android 에뮬레이터 및 USB 연결 실제 기기를 하나의 통합 목록에서 검색하세요. Xcode나 Android Studio에 접촉하지 않고 기기를 부팅, 종료 및 지우기할 수 있습니다. 기기 유형과 런타임을 선택하여 새 iOS 시뮬레이터를 생성하거나 기존 시뮬레이터를 복제하여 빠르게 복사본을 생성할 수 있습니다. 실제 기기는 연결 시 자동으로 나타나며 기기 선택기에서 별도로 그룹화됩니다.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/2b85641878f6015c248311700a1a87a20476ade6c930273a3e47f288a82d6d2e.png" alt="기기 관리" 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="앱 관리" 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="로그 뷰어" 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="위치" width="700" /></p>
- 클릭하여 좌표를 설정하는 대화형 지도
- 속도 제어가 가능한 GPX 및 KML 경로 파일 재생
- 기기별로 저장된 즐겨찾기 위치
- 다중 기기 위치 브로드캐스트
- 사람이 읽을 수 있는 주소로 역지오코딩
### 기기 설정
다크 모드 전환, 로케일 변경, 기기 방향 회전(Android), 앱 권한 관리, 상태 표시줄 모양 오버라이드. 접근성 프리셋을 적용하여 다양한 조건에서 앱을 테스트하세요. 모든 설정 변경 사항은 대상 기기에 즉시 적용됩니다.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/d3f6a33c17b773560072f7b94b71abd5ebc82786c073bdeb6d25f828c3f214fa.png" alt="기기 설정" width="700" /></p>
- 다크/라이트 모드 전환
- 기기 로케일 변경
- 앱 권한 관리
- 상태 표시줄 오버라이드 (시간, 배터리, 신호)
- 접근성 프리셋 (굵은 텍스트, 대비 증가, 콘텐츠 크기)
### 스크린샷 및 녹화
모든 기기에서 스크린샷을 캡처하고 화면 비디오를 녹화하세요. 모든 캡처는 타임스탬프와 함께 저장되며 탐색 가능한 기록으로 구성됩니다. 대시보드에서 직접 캡처를 다운로드하거나 삭제할 수 있습니다.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/58ed8f25d148ed53f39066e42be730f255235dbec47539bbec826c455cba7936.png" alt="스크린샷 및 녹화" width="700" /></p>
- 원클릭 스크린샷 캡처
- 시작/중지 제어가 있는 화면 녹화
- 타임스탬프가 있는 캡처 기록
- 대시보드에서 캡처 다운로드 및 삭제
### 딥 링크
모든 기기에서 URL 및 사용자 정의 URI 스킴을 엽니다. 자주 사용하는 딥 링크를 앱별로 구성된 즐겨찾기로 저장하세요. 터미널에 URL을 수동으로 입력하지 않고 앱의 딥 링크 처리를 테스트할 수 있습니다.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/3a990ef7c74f83c93b63c1654f74b3fa952b0b41abd31fe688cdaf2e29570f62.png" alt="딥 링크" 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="데이터베이스 검사기" 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="파일 브라우저" width="700" /></p>
- 앱 샌드박스 디렉터리 탐색
- 파일 업로드 및 다운로드
- 인라인 텍스트 파일 편집
- iOS 및 Android 앱 컨테이너 모두에서 작동
### 푸시 알림
JSON 푸시 알림 페이로드를 작성하여 iOS 시뮬레이터로 전송하세요. 기본 제공 템플릿 라이브러리를 시작점으로 사용하거나 처음부터 페이로드를 작성할 수 있습니다. 실시간 JSON 유효성 검사가 전송 전에 오류를 강조 표시합니다.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/f640654be67c24c7248806987e62908316407c18648fc145109118f260443f7d.png" alt="푸시 알림" width="700" /></p>
- iOS 시뮬레이터에 푸시 페이로드 작성 및 전송
- 기본 제공 페이로드 템플릿 라이브러리
- 실시간 JSON 유효성 검사
- 번들 ID로 특정 앱 대상 지정
### 컬렉션
재사용 가능한 기기 액션 세트를 생성하여 여러 기기에 한 번에 적용하세요. 컬렉션은 위치 설정, 다크 모드 전환, 앱 설치와 같은 단계를 단일 반복 가능한 워크플로우로 묶습니다. simvyn에는 시작할 수 있는 세 가지 기본 프리셋이 포함되어 있습니다.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/fbf2ddbba1d3725321c80a914bf5b71ea6a2fc605fddbb73abd0b28385488af6.png" alt="컬렉션" width="700" /></p>
- 이름이 있는 컬렉션 생성, 복제 및 관리
- 모든 모듈에서 분류된 액션 카탈로그 탐색
- 드래그 앤 드롭 단계 재정렬
- 호환성 검사와 함께 여러 기기에 적용
- 세 가지 기본 제공 시작 프리셋
### 크래시 로그
iOS 진단 보고서(.ips 파일) 및 logcat 및 tombstone 덤프에서 Android 크래시 로그를 확인하세요. 타임스탬프 및 프로세스 정보가 포함된 크래시 항목을 탐색하세요. 기기 파일 시스템을 뒤지지 않고 전체 크래시 세부 정보를 검사할 수 있습니다.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/8f74a799448050bc37eace1d43865b13f3f47a0997c01dba650fd21e94f09ebf.png" alt="크래시 로그" width="700" /></p>
- iOS 진단 보고서(.ips) 파싱
- PID 및 태그별 Android logcat 크래시 그룹화
- Android tombstone 덤프 검색
- 세부 보기가 있는 타임스탬프 크래시 목록
### 클립보드
대시보드 또는 CLI에서 기기 클립보드를 읽고 쓰세요. 앱에 테스트 데이터를 빠르게 붙여넣거나 앱이 복사한 내용을 검사하는 데 유용합니다.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/db889032abeb5f1d511dcfeb8c06c215bda851436f198a63db97f595b50853d6.png" alt="클립보드" width="700" /></p>
- 현재 클립보드 내용 읽기
- 기기 클립보드에 텍스트 쓰기
- iOS 시뮬레이터 및 Android 에뮬레이터에서 작동
### 미디어
사진 및 비디오를 기기의 카메라 롤 또는 갤러리에 직접 푸시하세요. 파일을 대시보드에 드롭하여 케이블, 이메일 또는 클라우드 전송 없이 삽입할 수 있습니다.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/c63ce5411dc17b5d329c2af381c035d86164f5544928b0c76fe7d05346473561.png" alt="미디어" width="700" /></p>
- 드래그 앤 드롭으로 기기 갤러리에 사진 및 비디오 추가
- 최대 500MB의 대용량 파일 지원
- iOS 시뮬레이터 및 Android 에뮬레이터에서 작동
### 도구 설정
simvyn 서버를 구성하고, 스토리지를 관리하며, 진단 정보를 확인하세요. 문제 제출을 위한 디버그 보고서 생성기가 포함되어 있습니다.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/7ba043d473d21d4bb5477582539ffd9a4c57600ec20c22ee9d7e63146cbbfbb2.png" alt="도구 설정" width="700" /></p>
- 서버 포트, 자동 열기 및 폴링 간격 구성
- 데이터 삭제 옵션이 있는 스토리지 사용량 개요
- 진단: Xcode 버전, devicectl 가용성, adb 버전
- 버그 제출을 위한 원클릭 디버그 보고서
## 컬렉션 가이드
컬렉션을 사용하면 여러 기기 액션을 재사용 가능한 시퀀스로 묶고 한 번의 클릭으로 모든 기기 조합에 적용할 수 있습니다.
### 컬렉션 생성
사이드바에서 컬렉션 패널을 엽니다. **새 컬렉션**을 클릭하고 이름을 지정합니다. 컬렉션은 빈 상태로 시작합니다 — 액션 카탈로그에서 단계를 추가합니다.
### 단계 추가
**단계 추가**를 클릭하여 분류된 액션 카탈로그를 탐색합니다. 액션은 모듈별로 구성됩니다 — 기기 설정, 위치, 앱 관리 등. 액션을 선택하고 매개변수(좌표, 번들 ID, 토글 값)를 인라인으로 구성하면 컬렉션에 나타납니다. 단계를 드래그하여 재정렬합니다.
### 컬렉션 적용
**적용**을 클릭하여 적용 모달을 엽니다. 기기 목록에서 하나 이상의 대상 기기를 선택합니다. 호환성 요약에 호환되지 않는 플랫폼(iOS 전용 액션을 Android 기기에 사용하는 경우 등)에서 건너뛸 단계가 표시됩니다. **Cmd+Enter**를 눌러 실행합니다. 실시간 상태 매트릭스가 각 단계, 각 기기의 진행 상황을 실시간으로 표시합니다.
### 명령 팔레트 통합
저장된 컬렉션이 명령 팔레트(**Cmd+K**)에 나타납니다. 이름으로 컬렉션을 검색하고 기기 선택기와 함께 직접 적용할 수 있습니다 — 컬렉션 패널로 이동할 필요가 없습니다.
### 시작 컬렉션
simvyn에는 세 가지 기본 제공 프리셋이 포함되어 있습니다:
- **다크 모드 + 일본어 로케일** — 다크 모드를 활성화하고 로케일을 일본어로 설정
- **스크린샷 설정** — 깔끔한 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 (안드로이드)를 통합 인터페이스로 래핑합니다. SDK가 필요 없으며, 모든 앱에서 작동하고 코드 변경이 필요 없습니다.
아키텍처는 모듈 시스템을 기반으로 구축되었으며, 각 기능(위치, 로그, 앱 관리 등)은 자체 API 경로, CLI 명령어 및 WebSocket 핸들러를 등록하는 독립적인 플러그인입니다. 웹 대시보드는 하나의 다중화된 WebSocket 연결을 통해 로컬 Fastify 서버와 통신하여 실시간 기기 상태 및 로그 스트리밍을 제공합니다. 특정 기기 유형에서 사용할 수 없는 기능은 UI에서 자동으로 비활성화되며 명확한 표시가 나타납니다.
| 플랫폼 | iOS 시뮬레이터 | iOS 기기 | 안드로이드 에뮬레이터 | 안드로이드 기기 |
|---|---|---|---|---|
| macOS | 예 | 제한적 |
USB로 연결된 물리적 기기는 시뮬레이터 및 에뮬레이터와 함께 자동으로 검색됩니다. 대시보드는 기기를 별도의 섹션(물리적 / 시뮬레이터 / 에뮬레이터)으로 그룹화하고, 기기 연결이 끊어지면 알림을 표시합니다.
안드로이드 실제 기기는 거의 모든 기능을 지원합니다 — 앱 관리, 딥 링크, 로그, 스크린샷, 데이터베이스 검사기, 파일 브라우저 등. 일부 에뮬레이터 전용 기능(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> | 앱 데이터 초기화 (안드로이드) |
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> | 기기 방향 설정 (안드로이드) |
| 예 |
| 예 |
| Linux | 아니오 | 아니오 | 예 | 예 |