Trigger

Extensão para VS Code e qualquer IDE compatível (Cursor, VSCodium, Windsurf, Code - OSS e outras baseadas no VS Code). Serve para ligar, parar, agendar e acompanhar vários robôs Python sem abrir um terminal por processo.

Os processos sobem soltos do editor. Se você recarregar a janela ou fechar a IDE, o robô continua. Ao reabrir, o painel reconhece o PID e mostra o status. O agendador também dispara sozinho no horário, com a sessão do computador ativa.
A dor que o Trigger resolve
Quem opera vários robôs no dia a dia acaba assim:
- um terminal (ou várias abas) por automação, sem saber qual PID é de quem
- “está rodando?” só se descobre olhando o Chrome, o CSV ou o log no disco
- para parar, precisa caçar processo no sistema — e o Chrome do Selenium fica órfão
- para ligar de manhã, alguém precisa estar na frente da máquina
.env, pasta do código e log ficam espalhados, longe do fluxo de trabalho
O Trigger junta isso numa sidebar e numa tela de execução: status, start/stop, grupos, agenda, log, .env e transmissão ao vivo do Chrome do robô.
Como usar
- Instale o VSIX na IDE que você usa (veja Instalar) e rode Developer: Reload Window.
- Na barra de atividades (logo do robô verde), abra o Trigger.
- Clique em Adicionar e escolha o arquivo que inicia o robô (
main.py, app.py, bot.py ou qualquer .py). Dá para selecionar vários de uma vez. Para cadastrar uma árvore inteira, use o comando Trigger: Adicionar automações (pasta).
- Escolha o grupo (um grupo novo, um existente, ou grupo não definido).
- Use Iniciar / Parar no card. Para acompanhar o Chrome e o tracking, clique em Ver execução.

O título mostra quantas automações estão rodando. A lista pode ser agrupada (padrão) ou plana.
Botões do cabeçalho

| Botão |
O que faz |
| Lupa |
Abre o campo de busca. Filtra por nome, pasta ou grupo. Clicar de novo fecha e limpa o filtro. |
| Novo grupo |
Pede um nome e cria o grupo vazio. Depois use a lista ao lado do lápis para colocar automações nele. |
| Agrupar |
Liga/desliga a visão por grupos. Com o ✓, os cards ficam dentro dos grupos que você criou. |
| Adicionar |
Abre o seletor de arquivos. Escolha o .py (ou .sh) que inicia a automação; a pasta de trabalho é a do arquivo. Depois escolha o grupo. |

Card da automação
Cada robô é um card: nome, bolinha de status (verde = rodando, cinza = parado, vermelho = erro), tempo de execução, PID, agenda (se houver) e pasta.

| Botão |
O que faz |
| Iniciar (verde) |
Sobe o comando da automação (python3 <arquivo>), em processo destacado. Grava log no storage da extensão. |
| Parar (vermelho) |
Encerra o processo e o grupo (incluindo o Chrome do Selenium). Se houver agenda no horário, ela é pausada até o fim da janela para não religar na hora. |
| Ver execução (azul) |
Abre o painel ao lado: Chrome ao vivo, KPIs do tracking, processo atual e log. |
| Calendário |
Abre o modal de agendamento. |
| Seta circular |
Reinicia (para e sobe de novo). |
| Bloco de notas |
Expande o log no próprio card. |
.env |
Abre (ou cria) o .env da pasta do robô no editor. Se o processo estiver no ar, reinicie para as variáveis valerem. |
| Pasta |
Abre a pasta da automação numa nova janela da IDE. |
| Lixeira |
Remove o cadastro da lista (pede confirmação e para o processo). O código no disco não é apagado. |
Log no card

Com o log aberto aparecem:
| Botão |
O que faz |
| Ver arquivo log |
Abre o .log completo no editor. |
| Limpar log |
Apaga o conteúdo do log (pede confirmação). |
Grupos
Os grupos organizam a sidebar. grupo não definido fica por último e só aparece se alguma automação não tiver grupo. Esse grupo especial não pode ser excluído.
No cabeçalho de cada grupo:
| Botão |
O que faz |
| Nome / chevron |
Recolhe ou expande os cards. |
| Lápis |
Renomeia o grupo. |
| Lista |
Abre o modal para marcar quem pertence ao grupo. |
| Lixeira vermelha |
Exclui o grupo. As automações vão para grupo não definido. |

Desmarcar uma automação neste modal a envia para grupo não definido.
Agendar
O calendário no card abre este modal. O robô sobe sozinho no horário, mesmo com a IDE fechada, enquanto a sessão do computador estiver ativa (systemd de usuário, ou um processo de agendador no login).

| Campo |
O que faz |
| Ativar agendamento |
Liga ou desliga a regra. Desmarcado, o robô só sobe na mão. |
| Uma vez |
Data e hora pontuais. |
| Recorrente |
Dias da semana + horário de início e fim. |
| Parar automaticamente no horário de fim |
Encerra o processo no fim da janela. |
| Salvar |
Grava a regra e garante que o agendador esteja ativo. |
No card, a agenda ativa aparece em azul (ex.: Seg Ter Qua Qui Sex · 08:00–18:00).
Ver execução
Painel que abre ao lado do editor. Serve para ver o robô trabalhando, não só o log.

Topo

| Botão |
O que faz |
| Parar / Iniciar |
Igual ao card, neste robô. |
| Reiniciar |
Para e sobe de novo. |
.env |
Abre as variáveis da pasta. |
| Abrir na IDE |
Nova janela da IDE na pasta do robô. |
Números (tracking)

Lidos do processos_tracking.csv da pasta do robô, quando existir:
- Processos — total no arquivo
- Sucesso — concluídos
- Erro — falhas
- Em andamento — ainda no fluxo
Chrome ao vivo e processo atual

| Área |
O que mostra |
| AO VIVO |
Transmissão em tempo real da janela do Chrome da automação (mesmo em headless, via DevTools). |
| Tela cheia |
Amplia só a transmissão. Esc sai. |
| Processo atual |
Número do processo no tracking e o passo (Iniciado, Validado, Minuta, …). |
| Tabela |
Últimos processos com passo e horário. |
Embaixo, o Log da execução tem de novo Ver arquivo log e Limpar log.
Barra de status e comandos
Na barra inferior da IDE: Trigger: N rodando ou Trigger: parado. Clique para focar a sidebar.
Na paleta (Ctrl+Shift+P):
| Comando |
Função |
| Trigger: Adicionar automação |
Escolhe o arquivo que inicia o robô e o grupo. |
| Trigger: Adicionar automações (pasta) |
Varre uma árvore e cadastra cada pasta que tiver um script de entrada (main.py, app.py, bot.py, run.py ou um único .py). |
| Trigger: Ver execução |
Abre o painel do robô em execução (ou o primeiro da lista). |
| Trigger: Editar .env |
Abre o .env da automação. |
| Trigger: Limpar log |
Limpa o log (pede confirmação). |
| Trigger: Ativar agendador |
Garante o serviço/processo que dispara os horários. |
| Trigger: Atualizar status |
Recarrega PIDs e estados. |
Onde ficam os dados
Catálogo, PIDs, agendas e logs ficam no storage global da extensão, na pasta da IDE que você usa. Exemplos:
- VS Code:
~/.config/Code/User/globalStorage/victorgabrielqs.trigger/
- Cursor:
~/.config/Cursor/User/globalStorage/victorgabrielqs.trigger/
- VSCodium:
~/.config/VSCodium/User/globalStorage/victorgabrielqs.trigger/
O código dos robôs não é copiado para lá. Só o cadastro aponta para a pasta original.
Instalar
A extensão é um VSIX padrão do VS Code. Instale na IDE que quiser:
npm install
npx @vscode/vsce package --allow-missing-repository --no-rewrite-relative-links --skip-license
# VS Code
code --install-extension trigger-0.7.2.vsix
# Cursor
cursor --install-extension trigger-0.7.2.vsix
# VSCodium
codium --install-extension trigger-0.7.2.vsix
Ou, na própria IDE: Ctrl+Shift+P → Extensions: Install from VSIX…
Depois: Ctrl+Shift+P → Developer: Reload Window.
Para desenvolver com F5: abra a pasta da extensão na IDE, npm run compile, e inicie Run Extension.