
Strumento di sviluppo mobile universale per Agenti e Umani - controlla simulatori iOS, emulatori Android e dispositivi reali da un unico cruscotto e da una CLI
Strumento mobile universale — controlla simulatori iOS, emulatori Android e dispositivi reali da un'unica dashboard e CLI
npx simvyn
Avvia il server locale, apre la dashboard web nel tuo browser e scopre automaticamente tutti i simulatori, emulatori e dispositivi fisici collegati via USB.
## Installazione
**Installazione globale:**```bash
npm install -g simvyn
Uso singolo (senza installazione):```bash npx simvyn
**Requisiti:**
- Node.js >= 22.12.0
- macOS (supporto completo iOS + Android) o Linux (solo Android)
## Caratteristiche
- **Gestione dei dispositivi** — Scopri, avvia, spegni, cancella, crea e clona simulatori, emulatori e dispositivi fisici con possibilità di aggiungere ai preferiti
- **Gestione delle app** — Installa, avvia, termina, disinstalla app tramite trascinamento o CLI
- **Visualizzatore di log** — Streaming in tempo reale con filtraggio per livello, ricerca nella pagina (Cmd+F), ricerca regex, paginazione ed esportazione
- **Simulazione di posizione** — Imposta coordinate GPS, riproduci percorsi GPX/KML con controllo della velocità, salva preferiti
- **Impostazioni del dispositivo** — Modalità scura, lingua, orientamento, permessi, override della barra di stato, preset di accessibilità
- **Screenshot e registrazioni** — Cattura screenshot e registra video dello schermo con cronologia
- **Link profondi** — Apri URL e schemi personalizzati, salva preferiti per app
- **Ispettore database** — Sfoglia tabelle SQLite, esegui query SQL, visualizza SharedPreferences e NSUserDefaults
- **Navigatore file** — Sfoglia sandbox delle app, carica/scarica file, modifica testo inline
- **Notifiche push** — Componi payload JSON, invia a simulatori iOS, libreria di template
- **Collezioni** — Raggruppa azioni del dispositivo in sequenze riutilizzabili, applica a più dispositivi contemporaneamente
- **Log di crash** — Rapporti diagnostici iOS e crash logcat/tombstone Android
- **Appunti** — Leggi e scrivi contenuti degli appunti del dispositivo
- **Media** — Carica foto e video nel rullino fotografico e nelle gallerie del dispositivo
- **Impostazioni dello strumento** — Configurazione del server, gestione dello storage, diagnostica e rapporti di debug
- **Supporto dispositivi reali** — Collega dispositivi fisici Android e iOS tramite USB con rilevamento automatico
- **Dashboard web** — Design Apple Liquid Glass con palette dei comandi, navigazione da tastiera
- **CLI completa** — Ogni funzionalità funziona senza interfaccia tramite `simvyn <comando>`
## Vetrina dei moduli
### Gestione dei dispositivi
Scopri tutti i simulatori iOS, emulatori Android e dispositivi fisici USB connessi in un unico elenco unificato. Avvia, spegni e cancella dispositivi senza toccare Xcode o Android Studio. Crea nuovi simulatori iOS scegliendo un tipo di dispositivo e un runtime, o clonane uno esistente per creare rapidamente duplicati. I dispositivi fisici appaiono automaticamente quando sono collegati e sono raggruppati separatamente nel selettore dei dispositivi.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/2b85641878f6015c248311700a1a87a20476ade6c930273a3e47f288a82d6d2e.png" alt="Gestione dei dispositivi" width="700" /></p>
- Elenca tutti i simulatori, emulatori e dispositivi fisici disponibili su tutte le piattaforme
- Avvia, spegni e cancella dispositivi con un clic o un comando CLI
- Crea nuovi simulatori iOS con selezione del tipo di dispositivo e runtime
- Clona e rinomina simulatori esistenti
- Aggiungi ai preferiti i dispositivi per fissarli in cima al selettore
- Aggiornamenti in tempo reale dello stato del dispositivo tramite WebSocket
### Gestione delle app
Installa, avvia, termina e disinstalla app su qualsiasi dispositivo connesso. Trascina e rilascia pacchetti IPA, APK o .app del simulatore iOS direttamente sulla dashboard. Visualizza informazioni dettagliate sull'app e cancella i dati dell'app senza comandi manuali adb o simctl.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/17757b1ca8ddd41d43ac3a159260598308da6c3f759e1c9d730f61498e18ce8a.png" alt="Gestione delle app" width="700" /></p>
- Installazione tramite trascinamento di IPA, APK e .app del simulatore iOS
- Avvia, termina e disinstalla app tramite ID bundle
- Visualizza dettagli dell'app inclusi versione, dimensione e permessi
- Cancella i dati dell'app su dispositivi Android
- Elenca tutte le app installate con filtro di ricerca
### Visualizzatore di log
Trasmetti i log del dispositivo in tempo reale con potenti filtri. Filtra per livello di log, cerca con espressioni regolari e filtra per nome del processo. Usa la ricerca nella pagina (Cmd+F) per evidenziare voci specifiche senza nascondere il contesto circostante. Esporta i log filtrati per condividerli o archiviarli. La cronologia paginata ti consente di scorrere indietro tra migliaia di voci senza problemi di prestazioni.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/b909b3515637b4059ebf210c56599f2f022506f09ee35a11e812bd8368d3750e.png" alt="Visualizzatore di log" width="700" /></p>
- Streaming dei log in tempo reale tramite WebSocket
- Filtra per livello: debug, info, warning, error, fatal
- Ricerca nella pagina (Cmd+F) con evidenziazione delle corrispondenze, navigazione e contatore
- Ricerca regex e filtro per nome del processo
- Cronologia paginata con scorrimento virtuale
- Esporta i log filtrati in un file
- Metti in pausa/riprendi lo streaming dei log mantenendo lo stato durante le cancellazioni
### Posizione
Imposta coordinate GPS precise su qualsiasi dispositivo utilizzando una mappa interattiva o l'immissione manuale. Riproduci file di percorsi GPX e KML con controllo della velocità regolabile. Salva le posizioni utilizzate di frequente come preferiti per un accesso rapido.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/47842dfa878ffbc80bd5bb32d83e820e7ed7dd56a4d63368ca6e823ef72889d4.png" alt="Posizione" width="700" /></p>
- Mappa interattiva con clic per impostare le coordinate
- Riproduzione di file di percorso GPX e KML con controllo della velocità
- Posizioni preferite salvate per dispositivo
- Trasmissione della posizione a più dispositivi
- Geocodifica inversa per indirizzi leggibili
### Impostazioni del dispositivo
Attiva/disattiva la modalità scura, cambia la lingua, ruota l'orientamento del dispositivo (Android), gestisci i permessi delle app e sovrascrivi l'aspetto della barra di stato. Applica preset di accessibilità per testare la tua app in diverse condizioni. Tutte le modifiche alle impostazioni hanno effetto immediato sul dispositivo di destinazione.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/d3f6a33c17b773560072f7b94b71abd5ebc82786c073bdeb6d25f828c3f214fa.png" alt="Impostazioni del dispositivo" width="700" /></p>
- Attiva/disattiva modalità scura/chiara
- Cambia la lingua del dispositivo
- Gestisci i permessi delle app
- Sovrascrivi la barra di stato (ora, batteria, segnale)
- Preset di accessibilità (testo in grassetto, aumento del contrasto, dimensione del contenuto)
### Screenshot e registrazioni
Cattura screenshot e registra video dello schermo su qualsiasi dispositivo. Tutte le catture vengono salvate con timestamp e organizzate in una cronologia navigabile. Scarica o elimina le catture direttamente dalla dashboard.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/58ed8f25d148ed53f39066e42be730f255235dbec47539bbec826c455cba7936.png" alt="Screenshot e registrazioni" width="700" /></p>
- Cattura screenshot con un clic
- Registrazione dello schermo con controlli avvia/ferma
- Cronologia delle catture con timestamp
- Scarica ed elimina le catture dalla dashboard
### Link profondi
Apri URL e schemi URI personalizzati su qualsiasi dispositivo. Salva i link profondi utilizzati di frequente come preferiti organizzati per app. Testa la gestione dei link profondi della tua app senza digitare manualmente gli URL in un terminale.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/3a990ef7c74f83c93b63c1654f74b3fa952b0b41abd31fe688cdaf2e29570f62.png" alt="Link profondi" width="700" /></p>
- Apri qualsiasi URL o schema personalizzato su un dispositivo
- Salva link profondi preferiti per app
- Cronologia dei link con ordinamento dal più recente
- Funziona sia con iOS che con Android
### Ispettore database
Sfoglia database SQLite all'interno della sandbox di qualsiasi app. Visualizza schemi di tabelle, esegui query SQL arbitrarie e ispeziona SharedPreferences (Android) o NSUserDefaults (iOS). Modifica i valori inline senza scrivere script.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/4884b688dbbee5f1a34b0454950f4d6562e74efdbbb3b84ca5c626835b4b7d37.png" alt="Ispettore database" width="700" /></p>
- Sfoglia tabelle SQLite con colonne ordinabili
- Esegui query SQL arbitrarie
- Visualizza e modifica SharedPreferences e NSUserDefaults
- Modifica inline delle celle con rilevamento del tipo
### Navigatore file
Sfoglia il filesystem della sandbox di qualsiasi app installata. Naviga tra le directory, carica e scarica file e modifica file di testo inline. Trasferisci file tra il tuo computer e il dispositivo senza comandi manuali adb pull/push.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/7b7ba540ad5de8b575da4f9bb28694dc68f5ffce51225a388788b8ef2f4767a0.png" alt="Navigatore file" width="700" /></p>
- Sfoglia le directory della sandbox delle app
- Carica e scarica file
- Modifica file di testo inline
- Funziona sia con contenitori app iOS che Android
### Notifiche push
Componi payload JSON di notifiche push e inviali a simulatori iOS. Utilizza la libreria di template integrata come punto di partenza o scrivi payload da zero. La convalida JSON in tempo reale evidenzia gli errori prima dell'invio.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/f640654be67c24c7248806987e62908316407c18648fc145109118f260443f7d.png" alt="Notifiche push" width="700" /></p>
- Componi e invia payload push a simulatori iOS
- Libreria di template payload integrata
- Convalida JSON in tempo reale
- Destinazione di app specifiche tramite ID bundle
### Collezioni
Crea set riutilizzabili di azioni del dispositivo e applicali a più dispositivi contemporaneamente. Le collezioni raggruppano passaggi come l'impostazione della posizione, l'attivazione della modalità scura e l'installazione di un'app in un unico flusso di lavoro ripetibile. Tre preset iniziali sono inclusi con simvyn per iniziare.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/fbf2ddbba1d3725321c80a914bf5b71ea6a2fc605fddbb73abd0b28385488af6.png" alt="Collezioni" width="700" /></p>
- Crea, duplica e gestisci collezioni con nome
- Sfoglia il catalogo delle azioni categorizzato in tutti i moduli
- Riordino dei passaggi tramite trascinamento
- Applica a più dispositivi con controllo della compatibilità
- Tre preset iniziali integrati
### Log di crash
Visualizza rapporti diagnostici iOS (file .ips) e log di crash Android da logcat e dump tombstone. Sfoglia le voci di crash con timestamp e informazioni sul processo. Ispeziona i dettagli completi del crash senza scavare nei filesystem del dispositivo.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/8f74a799448050bc37eace1d43865b13f3f47a0997c01dba650fd21e94f09ebf.png" alt="Log di crash" width="700" /></p>
- Analisi dei rapporti diagnostici iOS (.ips)
- Raggruppamento dei crash Android da logcat per PID e tag
- Recupero dei dump tombstone Android
- Elenco di crash con timestamp e vista dettagliata
### Appunti
Leggi e scrivi gli appunti del dispositivo dalla dashboard o dalla CLI. Utile per incollare rapidamente dati di test nelle app o ispezionare ciò che un'app ha copiato.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/db889032abeb5f1d511dcfeb8c06c215bda851436f198a63db97f595b50853d6.png" alt="Appunti" width="700" /></p>
- Legge il contenuto corrente degli appunti
- Scrive testo negli appunti del dispositivo
- Funziona con simulatori iOS ed emulatori Android
### Media
Carica foto e video direttamente nel rullino fotografico o nella galleria del dispositivo. Trascina i file sulla dashboard per inserirli senza cavi, email o trasferimenti cloud.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/c63ce5411dc17b5d329c2af381c035d86164f5544928b0c76fe7d05346473561.png" alt="Media" width="700" /></p>
- Aggiungi foto e video alla galleria del dispositivo tramite trascinamento
- Supporta file grandi fino a 500 MB
- Funziona con simulatori iOS ed emulatori Android
### Impostazioni dello strumento
Configura il server simvyn, gestisci lo storage e visualizza la diagnostica. Include un generatore di rapporti di debug per la segnalazione di problemi.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/7ba043d473d21d4bb5477582539ffd9a4c57600ec20c22ee9d7e63146cbbfbb2.png" alt="Impostazioni dello strumento" width="700" /></p>
- Configurazione della porta del server, apertura automatica e intervallo di polling
- Panoramica dell'utilizzo dello storage con opzione di cancellazione dati
- Diagnostica: versione di Xcode, disponibilità di devicectl, versione adb
- Rapporto di debug con un clic per la segnalazione di bug
## Guida alle collezioni
Le collezioni ti consentono di raggruppare più azioni del dispositivo in una sequenza riutilizzabile e applicarle a qualsiasi combinazione di dispositivi con un solo clic.
### Creazione di una collezione
Apri il pannello delle collezioni dalla barra laterale. Fai clic su **Nuova collezione** e assegnale un nome. La collezione inizia vuota: aggiungerai passaggi dal catalogo delle azioni.
### Aggiunta di passaggi
Fai clic su **Aggiungi passaggio** per sfogliare il catalogo delle azioni categorizzato. Le azioni sono organizzate per modulo: Impostazioni del dispositivo, Posizione, Gestione delle app e altro. Seleziona un'azione, configura i suoi parametri inline (coordinate, ID bundle, valori di attivazione) e apparirà nella tua collezione. Trascina i passaggi per riordinarli.
### Applicazione di una collezione
Fai clic su **Applica** per aprire la finestra di applicazione. Seleziona uno o più dispositivi di destinazione dall'elenco dei dispositivi. Un riepilogo di compatibilità mostra quali passaggi verranno saltati su piattaforme incompatibili (ad esempio, azioni solo iOS su un dispositivo Android). Premi **Cmd+Invio** per eseguire. Una matrice di stato in tempo reale mostra l'avanzamento per passaggio e per dispositivo.
### Integrazione con la palette dei comandi
Le collezioni salvate appaiono nella palette dei comandi (**Cmd+K**). Cerca una collezione per nome e applicala direttamente con il selettore dei dispositivi: non è necessario navigare al pannello delle collezioni.
### Collezioni iniziali
Tre preset iniziali sono inclusi con simvyn:
- **Modalità scura + Lingua giapponese** — Attiva la modalità scura e imposta la lingua su giapponese
- **Impostazione screenshot** — Configura gli override della barra di stato per screenshot puliti dell'App Store
- **Reimposta stato del dispositivo** — Cancella la posizione, resetta le impostazioni e cancella i dati dell'app
### CLI Usage```bash
simvyn collections list # List all collections
simvyn collections apply <name> <devices...> # Apply a collection to devices
Ogni funzionalità è accessibile dalla riga di comando. Esegui simvyn senza argomenti per avviare la dashboard, oppure usa uno dei comandi seguenti per l'operazione headless.
simvyn avvolge xcrun simctl (simulatori iOS), xcrun devicectl (dispositivi fisici iOS) e adb (Android) dietro un'interfaccia unificata. Nessun SDK richiesto — funziona con qualsiasi app, senza modifiche al codice.
L'architettura è costruita attorno a un sistema a moduli in cui ogni funzionalità (posizione, log, gestione app, ecc.) è un plugin autonomo che registra le proprie route API, comandi CLI e gestori WebSocket. La dashboard web comunica con un server Fastify locale tramite una singola connessione WebSocket multiplexata per lo streaming in tempo reale dello stato del dispositivo e dei log. Le funzionalità non disponibili su un particolare tipo di dispositivo vengono automaticamente disabilitate con chiari indicatori nell'interfaccia.
| Piattaforma | Simulatori iOS | Dispositivi iOS | Emulatori Android | Dispositivi Android |
|---|
I dispositivi fisici collegati via USB vengono rilevati automaticamente insieme a simulatori ed emulatori. La dashboard li raggruppa in sezioni separate (Fisici / Simulatori / Emulatori) e mostra un toast quando un dispositivo si disconnette.
I dispositivi fisici Android supportano quasi tutte le funzionalità — gestione app, deep link, log, screenshot, ispettore database, browser file e altro ancora. Alcune funzionalità solo per emulatori (simulazione della posizione tramite adb emu geo, simulazione della batteria) non sono disponibili e sono chiaramente indicate nell'interfaccia.
I dispositivi fisici iOS richiedono Xcode 15+ e utilizzano xcrun devicectl internamente. Le funzionalità supportate includono rilevamento del dispositivo, installazione/disinstallazione/avvio/terminazione di app, elenco app, deep link e copia di file. Molte funzionalità che dipendono da simctl (screenshot, registrazione schermo, simulazione posizione, clipboard, aspetto, barra di stato, notifiche push) non sono disponibili sui dispositivi fisici iOS. I controlli non supportati vengono disabilitati con tooltip che spiegano il motivo. Le raccolte saltano automaticamente i passaggi che non si applicano ai dispositivi fisici.
MIT
| Comando | Descrizione |
|---|
simvyn | Avvia la dashboard (predefinito) |
simvyn device list | Elenca tutti i dispositivi |
simvyn device boot <device> | Avvia un dispositivo |
simvyn device shutdown <device> | Spegni un dispositivo |
simvyn device erase <device> | Cancella contenuto e impostazioni del dispositivo |
simvyn device create <name> <type> <runtime> | Crea un nuovo simulatore iOS |
simvyn device clone <device> <name> | Clona un simulatore iOS |
simvyn device rename <device> <name> | Rinomina un simulatore iOS |
simvyn device delete <device> | Elimina un simulatore iOS |
simvyn location set <device> <lat> <lng> | Imposta coordinate GPS |
simvyn location route <device> <file> | Riproduci un percorso GPX/KML |
simvyn location clear <device> | Cancella posizione simulata |
simvyn app list <device> | Elenca app installate |
simvyn app install <device> <path> | Installa un IPA, APK o .app di simulatore iOS |
simvyn app uninstall <device> <bundle-id> | Disinstalla un'app |
simvyn app launch <device> <bundle-id> | Avvia un'app |
simvyn app terminate <device> <bundle-id> | Termina un'app |
simvyn app info <device> <bundle-id> | Mostra dettagli app |
simvyn app clear-data <device> <bundle-id> | Cancella dati app (Android) |
simvyn logs <device> | Streaming dei log del dispositivo |
simvyn screenshot <device> | Acquisisci uno screenshot |
simvyn record <device> | Registra lo schermo |
simvyn link <device> <url> | Apri un deep link |
simvyn push <device> | Invia una notifica push |
simvyn fs ls <device> <bundle-id> [path] | Elenca file nella sandbox dell'app |
simvyn fs pull <device> <bundle-id> <path> | Scarica un file |
simvyn fs push <device> <bundle-id> <src> <dst> | Carica un file |
simvyn db list <device> <bundle-id> | Elenca database |
simvyn db query <device> <bundle-id> <db> <sql> | Esegui una query SQL |
simvyn db prefs <device> <bundle-id> | Visualizza SharedPreferences / NSUserDefaults |
simvyn keychain add <device> <cert> | Aggiungi un certificato radice |
simvyn keychain reset <device> | Reimposta il portachiavi |
simvyn collections list | Elenca tutte le raccolte |
simvyn collections show <id> | Mostra dettagli raccolta |
simvyn collections create <name> | Crea una nuova raccolta |
simvyn collections delete <id> | Elimina una raccolta |
simvyn collections duplicate <id> | Duplica una raccolta |
simvyn collections apply <name> <devices...> | Applica una raccolta ai dispositivi |
simvyn settings orientation <device> <orient> | Imposta orientamento dispositivo (Android) |
| macOS | Sì | Limitato | Sì | Sì |
| Linux | No | No | Sì | Sì |