Pular para o conteúdo
Skillpedia
Testes48 mil · #4659

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/skills/electron-drive-skill/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/skills/electron-drive-skill/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-skill

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/skills/electron-drive-skill/SKILL.md -o SKILL.md
Conteú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 comando build da 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; start imprime 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ída snapshot, depois text=…, 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 help lista 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 cujo package.json main é 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 valores env, não em args). É assim que os dados mantidos fora de userData sã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 por logs.

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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4659
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas