electron-drive-skill
Permite que seu agente interaja com um aplicativo. Ele pode clicar, digitar e verificar se tudo funciona como esperado na interface.
O que ela faz
Esta ferramenta permite controlar um aplicativo Electron. Você pode fazer cliques, digitar textos, tirar 'prints' da tela e executar código dentro do aplicativo para testá-lo.
Quando usar
- ✓Verificar se uma mudança visual no aplicativo funcionou.
- ✓Reproduzir um erro que acontece apenas na versão final do programa.
- ✓Testar as primeiras telas que o usuário vê ao abrir o app pela primeira vez.
Exemplo do que pedir para a IA
“Teste o botão 'Salvar' na tela de configurações.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta inicia o aplicativo em um ambiente isolado. Depois, você pode dar comandos como 'clique aqui' ou 'digite isso' para interagir com o aplicativo e ver se tudo funciona como esperado.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill electron-drive-skillOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/skills/electron-drive-skill/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Dirigindo o aplicativo Electron
Visão Geral
scripts/drive.mjs inicia o aplicativo Electron do projeto sob o Playwright em um
daemon em segundo plano e o mantém em execução entre os comandos, de modo que cada ação
(clicar, digitar, tirar instantâneo, capturar tela, avaliar) seja uma chamada rápida de shell. Cada inicialização
usa um perfil temporário, para que o agente possa verificar uma alteração na interface do usuário ou reproduzir um bug
no aplicativo real, não apenas em testes unitários, sem tocar nos dados do usuário.
Quando Usar Esta Habilidade
- Use quando precisar verificar uma alteração na interface do usuário no aplicativo Electron em execução.
- Use ao reproduzir um bug no renderizador ou na inicialização, ou uma falha que só aparece na compilação de produção (por exemplo, uma CSP mais rigorosa).
- Use ao verificar as telas de primeira execução, integração ou configurações.
- Use ao exercitar um recurso de ponta a ponta, incluindo IPC através da ponte de pré-carregamento ou código no processo principal.
- Não o use para aplicativos web sem Electron, ou para fluxos de várias janelas (veja Limitações).
Como Funciona
Etapa 1: Verificar pré-requisitos
scripts/drive.mjs, no diretório desta habilidade, encontra o projeto pelo
package.json mais próximo, então execute-o de qualquer lugar dentro do projeto. Defina DR
para seu caminho absoluto.
Ele precisa de electron e playwright-core (1.49 ou posterior) instalados no
projeto. Se start disser que um deles está faltando, informe o usuário em vez de instalá-lo
você mesmo. As configurações de inicialização vêm de drive.config.json na raiz do
projeto (veja Etapa 4); sem arquivo, ele executa electron ..
Etapa 2: Iniciar, olhar, agir, parar
DR=<this skill's directory>/scripts/drive.mjs
$DR start # last build, profile 'default'; prints status
$DR snapshot # accessibility tree: find what to click, by role and name
$DR click 'role=button[name="Get started"]'
$DR fill 'role=textbox[name="Email"]' 'test@example.com'
$DR wait 'text=Welcome'
$DR screenshot # prints a PNG path; Read it to see the window
$DR logs --lines 80 # main and renderer console, plus the config's logFile
$DR stop # ALWAYS, before finishing
- Opções de inicialização:
--build: execute o comandobuildda configuração primeiro. Necessário após qualquer alteração de origem se o aplicativo for executado a partir de uma compilação, porque a compilação está caso contrário, desatualizada;startimprime sua idade.--fresh: limpe o perfil temporário, o que lhe dá o estado de primeira execução do aplicativo.--profile <name>: um perfil temporário separado.--dev: veja Etapa 5.
- Alvos são seletores do Playwright. Prefira
role=button[name="…"]da saídasnapshot, depoistext=…, depois CSS. --encerra os sinalizadores. Coloque-o antes de texto que começa com hifens:$DR fill 'role=textbox[name="Args"]' -- --verbose.- Outros comandos:
select <target> <value|label>,press <key>,status,screenshot --selector <css>.$DR helplista tudo.
Etapa 3: Executar código no aplicativo
eval <js> é executado no renderizador, main <js> no processo principal
(electron e process estão em escopo, require não está). Use uma expressão simples, ou um corpo com return. - lê o código da entrada padrão, o que evita completamente as aspas. O resultado retorna como JSON, então retorne dados simples:
um nó DOM ou uma função retorna como undefined ou {}.
Para exercitar o IPC, chame o que a pré-carga do aplicativo expõe através de eval. Isso
passa pela ponte de pré-carga real, como o próprio código do renderizador do aplicativo faz.
Etapa 4: Configurar a inicialização (opcional)
drive.config.json na raiz do projeto; cada campo é opcional:
{
"build": "npm run build",
"args": ["."],
"env": { "APP_DATA_DIR": "{profile}/data" },
"logFile": "logs/main.log",
"dev": {
"args": ["."],
"env": { "ELECTRON_RENDERER_URL": "http://localhost:5173" },
"url": "http://localhost:5173"
}
}
args: com o que o Electron é iniciado: um diretório de aplicativo cujopackage.jsonmainé o ponto de entrada compilado, ou o próprio arquivo de entrada.env: adicionado ao ambiente do aplicativo.{profile}se torna o diretório do perfil temporário (apenas em valoresenv, não emargs). É assim que os dados mantidos fora deuserDatasão redirecionados:APP_DATA_DIRé apenas um exemplo de nome, e só tem efeito se o aplicativo o ler. Verifique o código-fonte do aplicativo para a variável que ele realmente usa.logFile: um arquivo de log relativo ao diretório do perfil, mostrado porlogs.
Se um projeto não tiver configuração e start falhar ou iniciar a coisa errada,
descubra esses valores a partir da configuração de compilação e do package.json do projeto,
então sugira um drive.config.json ao usuário.
…
Perguntas frequentes
O que é um 'perfil de rascunho' (scratch profile)?
É um ambiente temporário e isolado onde o aplicativo roda. Isso garante que os testes não afetem seus dados ou configurações normais.
Como a ferramenta sabe onde clicar ou o que digitar?
Ela usa 'seletores' que descrevem os elementos na tela, como botões ou campos de texto, de forma parecida com como um navegador encontra elementos em uma página web.
Posso testar qualquer tipo de aplicativo com isso?
Não, esta ferramenta é específica para aplicativos criados com Electron. Ela não funciona para aplicativos web comuns ou fluxos com várias janelas.
Detalhes
Descrição original do autor
Launch the project's Electron app on a scratch profile and drive it: click, type, screenshot, run renderer or main-process code, read logs. Use to verify UI changes end to end.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4659
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC