
Ferramenta móvel universal para Agentes e Humanos - controle simuladores iOS, emuladores Android e dispositivos reais a partir de um único painel e CLI
<p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12264/e081fb1d4bcaa6556ff10e722d1ff25449288b68ce1aad9ac3b5ecc047ccf5fb.png" width="180" alt="simvyn" /> </p> <h1 align="center">simvyn</h1> <p align="center"> Ferramenta universal de desenvolvimento mobile — controle Simuladores iOS, Emuladores Android e dispositivos reais a partir de um único painel e CLI </p> <p align="center"> <a href="https://www.npmjs.com/package/simvyn"><img src="https://img.shields.io/npm/v/simvyn?color=cb3837&logo=npm" alt="npm version" /></a> <a href="https://www.npmjs.com/package/simvyn"><img src="https://img.shields.io/npm/dm/simvyn?color=cb3837&logo=npm" alt="npm downloads" /></a> <a href="https://github.com/pranshuchittora/simvyn/actions/workflows/ci.yml"><img src="https://github.com/pranshuchittora/simvyn/actions/workflows/ci.yml/badge.svg" alt="CI status" /></a> <a href="https://github.com/pranshuchittora/simvyn/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/simvyn?color=blue" alt="MIT License" /></a> <a href="https://nodejs.org"><img src="https://img.shields.io/node/v/simvyn?color=5FA04E&logo=node.js&logoColor=white" alt="Node version" /></a> </p> <p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12264/bff45a80ced8a6cba77f5bab23f21607fb310862cbc838179d9ce714a1d4d6b6.png" alt="simvyn dashboard" /> </p> <p align="center"> <img src="https://raw.githubusercontent.com/pranshuchittora/simvyn/main/assets/demo.gif" alt="simvyn demo" /> </p> ## Índice - [Início Rápido](#quick-start) - [Instalação](#installation) - [Agentes de Codificação com IA](#ai-coding-agents) - [Funcionalidades](#features) - [Demonstrações dos Módulos](#module-showcases) - [Guia de Coleções](#collections-guide) - [Referência da CLI](#cli-reference) - [Como Funciona](#how-it-works) - [Plataformas Suportadas](#supported-platforms) - [Contribuição](#contributing) - [Segurança](#security) - [Licença](#license) ## Início Rápido```bash npx simvyn ``` Inicia o servidor local, abre o painel web no seu navegador e descobre automaticamente todos os simuladores, emuladores e dispositivos físicos conectados via USB. ## Instalação **Instalação global:**```bash npm install -g simvyn ``` **Uso único (sem instalação):**```bash npx simvyn ``` **Requisitos:** - Node.js 22 (22.14.0+) ou 24+ - macOS (suporte completo a iOS + Android) ou Linux (apenas Android) ## Agentes de Codificação com IA O simvyn inclui uma [Agent Skill](https://github.com/pranshuchittora/simvyn/blob/main/skills/simvyn/SKILL.md) portátil para descobrir dispositivos, executar comandos CLI suportados, capturar screenshots, inspecionar dados de aplicações e recolher logs limitados. Ensina um agente a usar a CLI com IDs de dispositivo explícitos e limites de plataforma. A skill utiliza a ferramenta de terminal existente do agente; não regista um servidor MCP nem novas ferramentas de agente. **Pi:** o pacote npm é um [pacote Pi](https://pi.dev/packages/simvyn). Juntamente com a skill, adiciona as ferramentas `simvyn`, `simvyn_screenshot`, `simvyn_logs` e `simvyn_record`, um comando `/simvyn` que executa o dashboard, e os templates de prompt `/simvyn-repro`, `/simvyn-screen` e `/simvyn-logs`. Requer Pi 0.74 ou posterior:```bash pi install npm:simvyn ``` **Outros agentes compatíveis:** instale a skill portátil do GitHub, selecionando seu agente, e instale a CLI simvyn separadamente:```bash npm install -g simvyn npx skills add pranshuchittora/simvyn --skill simvyn --agent codex --yes ``` O comando GitHub exige que estes arquivos de skill estejam presentes no branch padrão; o comando Pi exige os recursos do Pi na versão publicada do npm. Para alterações não lançadas, use as [instruções de checkout local](https://github.com/pranshuchittora/simvyn/blob/main/docs/agents.md#test-an-unreleased-checkout). Consulte o [guia de configuração e fluxo de trabalho do agente](https://github.com/pranshuchittora/simvyn/blob/main/docs/agents.md) para o launcher incluído, saídas suportadas, operação não interativa e limitações atuais. Um [índice de documentação](https://github.com/pranshuchittora/simvyn/blob/main/llms.txt) compacto também está disponível para ferramentas que aceitam URLs de documentação. ## Recursos - **Gerenciamento de Dispositivos** — Descubra, inicialize, desligue, apague, crie e clone simuladores, emuladores e dispositivos físicos com fixação de favoritos - **Gerenciamento de Apps** — Instale, inicie, encerre e desinstale apps via arrastar e soltar ou CLI - **Visualizador de Logs** — Streaming em tempo real com filtragem por nível, busca na página (Cmd+F), busca por regex, paginação e exportação - **Simulação de Localização** — Defina coordenadas GPS, reproduza rotas GPX/KML com controle de velocidade, salve favoritos - **Configurações do Dispositivo** — Modo escuro, localidade, orientação, permissões, substituições da barra de status, predefinições de acessibilidade - **Capturas de Tela e Gravação** — Capture screenshots e grave vídeo da tela com histórico - **Deep Links** — Abra URLs e esquemas personalizados, salve favoritos por app - **Inspetor de Banco de Dados** — Navegue por tabelas SQLite, execute consultas SQL, visualize SharedPreferences e NSUserDefaults - **Navegador de Arquivos** — Navegue pelos sandboxes dos apps, faça upload/download de arquivos, edite texto inline - **Notificações Push** — Componha payloads JSON, envie para simuladores iOS, biblioteca de templates - **Coleções** — Agrupe ações de dispositivos em sequências reutilizáveis, aplique a vários dispositivos de uma vez - **Logs de Crash** — Relatórios de diagnóstico do iOS e crashes de logcat/tombstone do Android - **Área de Transferência** — Leia e escreva o conteúdo da área de transferência do dispositivo - **Mídia** — Envie fotos e vídeos para os rolos de câmera e galerias do dispositivo - **Configurações da Ferramenta** — Configuração do servidor, gerenciamento de armazenamento, diagnósticos e relatórios de depuração - **Suporte a Dispositivos Reais** — Conecte dispositivos Android e iOS físicos via USB com descoberta automática - **Painel Web** — Design Apple Liquid Glass com paleta de comandos, navegação por teclado - **CLI Completa** — Todos os recursos funcionam de forma headless via `simvyn <command>` ## Demonstrações dos Módulos ### Gerenciamento de Dispositivos Descubra todos os Simuladores iOS, Emuladores Android e dispositivos físicos conectados via USB em uma única lista unificada. Inicialize, desligue e apague dispositivos sem tocar no Xcode ou Android Studio. Crie novos simuladores iOS escolhendo um tipo de dispositivo e runtime, ou clone um existente para criar duplicatas rapidamente. Dispositivos físicos aparecem automaticamente quando conectados e são agrupados separadamente no seletor de dispositivos. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/2b85641878f6015c248311700a1a87a20476ade6c930273a3e47f288a82d6d2e.png" alt="Device Management" width="700" /></p> - Liste todos os simuladores, emuladores e dispositivos físicos disponíveis entre plataformas - Inicialize, desligue e apague dispositivos com um clique ou comando CLI - Crie novos simuladores iOS com seleção de tipo de dispositivo e runtime - Clone e renomeie simuladores existentes - Fixe dispositivos favoritos no topo do seletor de dispositivos - Atualizações de estado do dispositivo em tempo real via WebSocket ### Gerenciamento de Apps Instale, inicie, encerre e desinstale apps em qualquer dispositivo conectado. Arraste e solte bundles IPA, APK ou .app de simulador iOS diretamente no painel. Visualize informações detalhadas do app e limpe dados do app sem comandos manuais de adb ou simctl. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/17757b1ca8ddd41d43ac3a159260598308da6c3f759e1c9d730f61498e18ce8a.png" alt="App Management" width="700" /></p> - Instalação de IPA, APK e .app de simulador iOS via arrastar e soltar - Inicie, encerre e desinstale apps por bundle ID - Visualize detalhes do app, incluindo versão, tamanho e permissões - Limpe dados do app em dispositivos Android - Liste todos os apps instalados com filtragem por busca ### Visualizador de Logs Transmita logs do dispositivo em tempo real com filtragem poderosa. Filtre por nível de log, pesquise com padrões regex e filtre por nome de processo. Use a busca na página (Cmd+F) para destacar entradas específicas sem ocultar o contexto ao redor. Exporte logs filtrados para compartilhamento ou arquivamento. O histórico paginado permite rolar por milhares de entradas sem problemas de desempenho. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/b909b3515637b4059ebf210c56599f2f022506f09ee35a11e812bd8368d3750e.png" alt="Log Viewer" width="700" /></p> - Streaming de logs em tempo real via WebSocket - Filtre por nível: debug, info, warning, error, fatal - Busca na página (Cmd+F) com destaque de correspondências, navegação e contador - Busca por regex e filtragem por nome de processo - Histórico paginado com rolagem virtual - Exporte logs filtrados para arquivo - Pause/retome o streaming de logs preservando o estado entre limpezas ### Localização Defina coordenadas GPS precisas em qualquer dispositivo usando um mapa interativo ou entrada manual. Reproduza arquivos de rota GPX e KML com controle de velocidade ajustável. Salve localizações usadas com frequência como favoritos para acesso rápido. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/47842dfa878ffbc80bd5bb32d83e820e7ed7dd56a4d63368ca6e823ef72889d4.png" alt="Location" width="700" /></p> - Mapa interativo com coordenadas definidas por clique - Reprodução de arquivos de rota GPX e KML com controle de velocidade - Localizações favoritas salvas por dispositivo - Transmissão de localização para vários dispositivos - Geocodificação reversa para endereços legíveis por humanos ### Configurações do Dispositivo Alterne o modo escuro, mude a localidade, rotacione a orientação do dispositivo (Android), gerencie permissões de apps e substitua a aparência da barra de status. Aplique predefinições de acessibilidade para testar seu app em diferentes condições. Todas as alterações de configuração entram em vigor imediatamente no dispositivo de destino. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/d3f6a33c17b773560072f7b94b71abd5ebc82786c073bdeb6d25f828c3f214fa.png" alt="Device Settings" width="700" /></p> - Alterne entre modo escuro/claro - Mude a localidade do dispositivo - Gerencie permissões de apps - Substitua a barra de status (hora, bateria, sinal) - Predefinições de acessibilidade (texto em negrito, aumentar contraste, tamanho do conteúdo) ### Capturas de Tela e Gravação Capture screenshots e grave vídeo da tela em qualquer dispositivo. Todas as capturas são salvas com timestamps e organizadas em um histórico navegável. Baixe ou exclua capturas diretamente do painel. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/58ed8f25d148ed53f39066e42be730f255235dbec47539bbec826c455cba7936.png" alt="Screenshots and Recording" width="700" /></p> - Captura de screenshot com um clique - Gravação de tela com controles de iniciar/parar - Histórico de capturas com timestamp - Baixe e exclua capturas do painel ### Deep Links Abra URLs e esquemas de URI personalizados em qualquer dispositivo. Salve deep links usados com frequência como favoritos organizados por app. Teste o tratamento de deep links do seu app sem digitar URLs manualmente em um terminal. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/3a990ef7c74f83c93b63c1654f74b3fa952b0b41abd31fe688cdaf2e29570f62.png" alt="Deep Links" width="700" /></p> - Abra qualquer URL ou esquema personalizado em um dispositivo - Salve deep links favoritos por app - Histórico de links com ordenação dos mais recentes primeiro - Funciona com iOS e Android ### Inspetor de Banco de Dados Navegue por bancos de dados SQLite dentro do sandbox de qualquer app. Visualize esquemas de tabelas, execute consultas SQL arbitrárias e inspecione SharedPreferences (Android) ou NSUserDefaults (iOS). Edite valores inline sem escrever scripts. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/4884b688dbbee5f1a34b0454950f4d6562e74efdbbb3b84ca5c626835b4b7d37.png" alt="Database Inspector" width="700" /></p> - Navegue por tabelas SQLite com colunas ordenáveis - Execute consultas SQL arbitrárias - Visualize e edite SharedPreferences e NSUserDefaults - Edição de células inline com detecção de tipo ### Navegador de Arquivos Navegue pelo sistema de arquivos do sandbox de qualquer app instalado. Navegue por diretórios, faça upload e download de arquivos e edite arquivos de texto inline. Transfira arquivos entre sua máquina e o dispositivo sem comandos manuais de adb pull/push. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/7b7ba540ad5de8b575da4f9bb28694dc68f5ffce51225a388788b8ef2f4767a0.png" alt="File Browser" width="700" /></p> - Navegue por diretórios do sandbox do app - Faça upload e download de arquivos - Edição de arquivos de texto inline - Funciona com contêineres de apps iOS e Android ### Notificações Push Componha payloads JSON de notificação push e envie-os para simuladores iOS. Use a biblioteca de templates integrada como ponto de partida ou escreva payloads do zero. A validação JSON em tempo real destaca erros antes do envio. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/f640654be67c24c7248806987e62908316407c18648fc145109118f260443f7d.png" alt="Push Notifications" width="700" /></p> - Componha e envie payloads push para simuladores iOS - Biblioteca de templates de payload integrada - Validação JSON em tempo real - Direcione apps específicos por bundle ID ### Coleções Crie conjuntos reutilizáveis de ações de dispositivos e aplique-os a vários dispositivos de uma vez. As coleções agrupam etapas como definir localização, alternar modo escuro e instalar um app em um único fluxo de trabalho repetível. Três predefinições iniciais acompanham o simvyn para você começar. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/fbf2ddbba1d3725321c80a914bf5b71ea6a2fc605fddbb73abd0b28385488af6.png" alt="Collections" width="700" /></p> - Crie, duplique e gerencie coleções nomeadas - Navegue pelo catálogo de ações categorizadas em todos os módulos - Reordenação de etapas via arrastar e soltar - Aplique a vários dispositivos com verificação de compatibilidade - Três predefinições iniciais integradas ### Logs de Crash Visualize relatórios de diagnóstico do iOS (arquivos .ips) e logs de crash do Android de dumps de logcat e tombstone. Navegue por entradas de crash com timestamps e informações de processo. Inspecione detalhes completos de crash sem vasculhar os sistemas de arquivos do dispositivo. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/8f74a799448050bc37eace1d43865b13f3f47a0997c01dba650fd21e94f09ebf.png" alt="Crash Logs" width="700" /></p> - Análise de relatórios de diagnóstico do iOS (.ips) - Agrupamento de crashes do logcat do Android por PID e tag - Recuperação de dumps de tombstone do Android - Lista de crashes com timestamp e visualização de detalhes ### Área de Transferência Leia e escreva a área de transferência do dispositivo pelo painel ou CLI. Útil para colar rapidamente dados de teste em apps ou inspecionar o que um app copiou. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/db889032abeb5f1d511dcfeb8c06c215bda851436f198a63db97f595b50853d6.png" alt="Clipboard" width="700" /></p> - Leia o conteúdo atual da área de transferência - Escreva texto na área de transferência do dispositivo - Funciona com Simuladores iOS e Emuladores Android ### Mídia Envie fotos e vídeos diretamente para o rolo de câmera ou galeria de um dispositivo. Solte arquivos no painel para injetá-los sem cabos, e-mail ou transferências na nuvem. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/c63ce5411dc17b5d329c2af381c035d86164f5544928b0c76fe7d05346473561.png" alt="Media" width="700" /></p> - Adicione fotos e vídeos à galeria do dispositivo via arrastar e soltar - Suporta arquivos grandes de até 500 MB - Funciona com Simuladores iOS e Emuladores Android ### Configurações da Ferramenta Configure o servidor simvyn, gerencie o armazenamento e visualize diagnósticos. Inclui um gerador de relatório de depuração para abrir issues. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/7ba043d473d21d4bb5477582539ffd9a4c57600ec20c22ee9d7e63146cbbfbb2.png" alt="Tool Settings" width="700" /></p> - Configuração de porta do servidor, abertura automática e intervalo de polling - Visão geral do uso de armazenamento com opção de limpar dados - Diagnósticos: versão do Xcode, disponibilidade do devicectl, versão do adb - Relatório de depuração com um clique para abrir bugs ## Guia de Coleções As coleções permitem agrupar várias ações de dispositivos em uma sequência reutilizável e aplicá-las a qualquer combinação de dispositivos com um clique. ### Criando uma Coleção Abra o painel de Coleções na barra lateral. Clique em **New Collection** e dê um nome a ela. A coleção começa vazia — você adicionará etapas a partir do catálogo de ações. ### Adicionando Etapas Clique em **Add Step** para navegar pelo catálogo de ações categorizadas. As ações são organizadas por módulo — Configurações do Dispositivo, Localização, Gerenciamento de Apps e mais. Selecione uma ação, configure seus parâmetros inline (coordenadas, bundle IDs, valores de alternância) e ela aparecerá na sua coleção. Arraste as etapas para reordená-las. ### Aplicando uma Coleção Clique em **Apply** para abrir o modal de aplicação. Selecione um ou mais dispositivos de destino na lista de dispositivos. Um resumo de compatibilidade mostra quais etapas serão ignoradas em plataformas incompatíveis (por exemplo, ações exclusivas do iOS em um dispositivo Android). Pressione **Cmd+Enter** para executar. Uma matriz de status ao vivo mostra o progresso por etapa e por dispositivo em tempo real. ### Integração com a Paleta de Comandos As coleções salvas aparecem na paleta de comandos (**Cmd+K**). Pesquise uma coleção por nome e aplique-a diretamente com o seletor de dispositivos — não é necessário navegar até o painel de Coleções. ### Coleções Iniciais Três predefinições integradas acompanham o simvyn: - **Dark Mode + Japanese Locale** — Ativa o modo escuro e define a localidade para japonês - **Screenshot Setup** — Configura substituições da barra de status para screenshots limpas da App Store - **Reset Device State** — Limpa a localização, redefine configurações e apaga dados do app ### Uso da CLI```bash simvyn collections list # List all collections simvyn collections apply <name> <devices...> # Apply a collection to devices ``` ## Referência da CLI Todos os recursos são acessíveis pela linha de comando. Execute `simvyn` sem argumentos para iniciar o dashboard, ou use qualquer comando abaixo para operação headless. | Comando | Descrição | | ------------------------------------------------- | ------------------------------------------ | | `simvyn` | Iniciar o dashboard (padrão) | | `simvyn device list` | Listar todos os dispositivos | | `simvyn device boot <device>` | Iniciar um dispositivo | | `simvyn device shutdown <device>` | Desligar um dispositivo | | `simvyn device erase <device>` | Apagar conteúdo e configurações do dispositivo | | `simvyn device create <name> <type> <runtime>` | Criar um novo simulador iOS | | `simvyn device clone <device> <name>` | Clonar um simulador iOS | | `simvyn device rename <device> <name>` | Renomear um simulador iOS | | `simvyn device delete <device>` | Excluir um simulador iOS | | `simvyn location set <device> <lat> <lng>` | Definir coordenadas GPS | | `simvyn location route <device> <file>` | Reproduzir uma rota GPX/KML | | `simvyn location clear <device>` | Limpar localização simulada | | `simvyn app list <device>` | Listar apps instalados | | `simvyn app install <device> <path>` | Instalar um IPA, APK ou .app de simulador iOS | | `simvyn app uninstall <device> <bundle-id>` | Desinstalar um app | | `simvyn app launch <device> <bundle-id>` | Iniciar um app | | `simvyn app terminate <device> <bundle-id>` | Encerrar um app | | `simvyn app info <device> <bundle-id>` | Mostrar detalhes do app | | `simvyn app clear-data <device> <bundle-id>` | Limpar dados do app (Android) | | `simvyn logs <device>` | Transmitir logs do dispositivo | | `simvyn screenshot <device>` | Capturar uma screenshot | | `simvyn record <device>` | Gravar a tela | | `simvyn link <device> <url>` | Abrir um deep link | | `simvyn push <device>` | Enviar uma notificação push | | `simvyn fs ls <device> <bundle-id> [path]` | Listar arquivos no sandbox do app | | `simvyn fs pull <device> <bundle-id> <path>` | Baixar um arquivo | | `simvyn fs push <device> <bundle-id> <src> <dst>` | Enviar um arquivo | | `simvyn db list <device> <bundle-id>` | Listar bancos de dados | | `simvyn db query <device> <bundle-id> <db> <sql>` | Executar uma consulta SQL | | `simvyn db prefs <device> <bundle-id>` | Visualizar SharedPreferences / NSUserDefaults | | `simvyn keychain add <device> <cert>` | Adicionar um certificado raiz | | `simvyn keychain reset <device>` | Redefinir o keychain | | `simvyn collections list` | Listar todas as coleções | | `simvyn collections show <id>` | Mostrar detalhes da coleção | | `simvyn collections create <name>` | Criar uma nova coleção | | `simvyn collections delete <id>` | Excluir uma coleção | | `simvyn collections duplicate <id>` | Duplicar uma coleção | | `simvyn collections apply <name> <devices...>` | Aplicar uma coleção a dispositivos | | `simvyn settings orientation <device> <orient>` | Definir orientação do dispositivo (Android) | ## Como Funciona O simvyn encapsula `xcrun simctl` (Simuladores iOS), `xcrun devicectl` (dispositivos iOS físicos) e `adb` (Android) por trás de uma interface unificada. Nenhum SDK necessário — funciona com qualquer app, sem necessidade de alterações no código. A arquitetura é construída em torno de um sistema de módulos onde cada recurso (localização, logs, gerenciamento de apps, etc.) é um plugin autocontido que registra suas próprias rotas de API, comandos de CLI e handlers de WebSocket. O dashboard web se comunica com um servidor Fastify local por meio de uma única conexão WebSocket multiplexada para estado do dispositivo em tempo real e streaming de logs. Recursos que não estão disponíveis em um determinado tipo de dispositivo são automaticamente desabilitados com indicadores claros na interface. ## Plataformas Suportadas | Plataforma | Simuladores iOS | Dispositivos iOS | Emuladores Android | Dispositivos Android | | -------- | -------------- | ----------- | ----------------- | --------------- | | macOS | Sim | Limitado | Sim | Sim | | Linux | Não | Não | Sim | Sim | ### Suporte a Dispositivos Reais Dispositivos físicos conectados via USB são descobertos automaticamente junto com simuladores e emuladores. O dashboard os agrupa em seções separadas (Físicos / Simuladores / Emuladores) e mostra um toast quando um dispositivo é desconectado. **Dispositivos Android físicos** suportam quase todos os recursos — gerenciamento de apps, deep links, logs, screenshots, inspetor de banco de dados, navegador de arquivos e mais. Alguns recursos exclusivos de emulador (simulação de localização via `adb emu geo`, simulação de bateria) não estão disponíveis e são claramente marcados na interface. **Dispositivos iOS físicos** requerem Xcode 15+ e usam `xcrun devicectl` internamente. Os recursos suportados incluem descoberta de dispositivos, instalação/desinstalação/inicialização/encerramento de apps, listagem de apps, deep links e cópia de arquivos. Muitos recursos que dependem do `simctl` (screenshots, gravação de tela, simulação de localização, área de transferência, aparência, barra de status, notificações push) não estão disponíveis em dispositivos iOS físicos. Controles não suportados são desabilitados com tooltips explicando o motivo. As coleções pulam automaticamente etapas que não se aplicam a dispositivos físicos. ## Contribuindo Contribuições são bem-vindas — correções de bugs, novos módulos, cobertura de plataformas e documentação. Comece pelo **[Guia de Contribuição](https://github.com/pranshuchittora/simvyn/blob/main/CONTRIBUTING.md)**, que aborda configuração de desenvolvimento, a estrutura do projeto, como adicionar um módulo e as verificações que a CI executa. - [Reportar um bug](https://github.com/pranshuchittora/simvyn/issues/new?template=bug_report.yml) - [Solicitar um recurso](https://github.com/pranshuchittora/simvyn/issues/new?template=feature_request.yml) - [Código de Conduta](https://github.com/pranshuchittora/simvyn/blob/main/CODE_OF_CONDUCT.md) - [Changelog](https://github.com/pranshuchittora/simvyn/blob/main/CHANGELOG.md)```bash git clone https://github.com/pranshuchittora/simvyn.git cd simvyn npm install npm run dev ``` ## Segurança simvyn é uma ferramenta de desenvolvedor local e não foi projetada para ser exposta a redes não confiáveis. Por favor, reporte vulnerabilidades de forma privada através do [GitHub Security Advisories](https://github.com/pranshuchittora/simvyn/security/advisories/new) em vez de como uma issue pública. Consulte a [Política de Segurança](https://github.com/pranshuchittora/simvyn/blob/main/SECURITY.md) para o escopo e o que incluir. Cada release é publicada no npm com [provenance](https://docs.npmjs.com/generating-provenance-statements) via trusted publishing, para que você possa verificar um tarball de volta ao commit que o construiu:```bash npm audit signatures ``` ## Licença [MIT](https://github.com/pranshuchittora/simvyn/blob/main/LICENSE) © [Pranshu Chittora](https://github.com/pranshuchittora)