daemon de background · windows

Um par de olhos em cada commit.

Code Watcher observa suas pastas de projeto em background e manda cada alteração — arquivo salvo, commit, pull request — para um LLM revisar. Os achados chegam num painel em tempo real, sem você pedir.

monitorando 13 pastas 285 revisões · 6 críticos hoje
o caminho de uma revisão

De um git commit a um achado acionável.

01

Detecta

Arquivo salvo com mudança não commitada, hash novo em .git/refs, ou PR aberto no GitHub.

02

Enfileira

Uma revisão por vez, com teto configurável de chamadas ao LLM por hora.

03

Varre

Scan local de segredos — chave em plaintext, token sem expiração — antes de qualquer envio.

04

Revisa

Claude Code CLI ou API da OpenAI, com um prompt de code review focado em bugs e risco.

05

Registra

Anexa ao review-log.md do projeto e publica um evento pro painel.

o painel

Quatro formas de olhar o mesmo histórico.

Tudo alimentado por um único log append-only. Nenhuma tela inventa dado — só reagrupa o que já aconteceu.

Feed

Revisões em tempo real

Mais recentes no topo, com etiqueta de origem (commit / PR) e severidade. Filtra por projeto, busca no texto, isola só as críticas.

Backlog

Achados que viram tarefa

Todo achado de severidade alta ou média entra numa fila acionável: resolver, dispensar ou reabrir — e o estado persiste entre reinícios.

Análise

Tendências ao longo do tempo

Severidade por dia, arquivos que mais voltam pra revisão, custo de LLM e volume por projeto, origem das alterações.

Mapa 3D

A cidade dos seus repos

Estilo Git City: cada projeto é um distrito, cada arquivo é um prédio, cada commit é um bloco empilhado. Prédio com achado crítico acende em vermelho.

Perguntar ao histórico — pergunta em linguagem natural sobre o review-log Resumo diário — standup do que mudou hoje / ontem / na semana Detectar padrões — achados que se repetem entre projetos
por dentro

Quatro decisões que mantêm tudo simples.

Uma ferramenta pequena não precisa de infra grande. Cada escolha aqui foi por menos partes móveis.

Sem banco de dados

Event sourcing num arquivo de texto

events.jsonl append-only é a fonte da verdade. No boot, o app relê o arquivo e reconstrói o estado na memória. Fácil de inspecionar, trivial de versionar.

Sem servidor

IPC por arquivos

control.json num sentido, events.jsonl no outro. Sem portas, sem sockets. Sobrevive ao reinício de qualquer um dos lados e dá o histórico de graça.

Sem build step

Offline-first de verdade

A interface é um ui.html — HTML/CSS/JS puro, sem framework, sem CDN. O único ponto que toca a rede é a chamada ao LLM.

Sem orquestrador

Um processo, várias threads

Janela, watcher, ícone da bandeja e o tail do log rodam no mesmo processo. O processo morrer encerra tudo — nada de órfão.

rodar localmente

Quatro comandos.

Precisa de Python 3.11+, git no PATH e um provedor de LLM — o Claude Code CLI, ou uma chave da OpenAI colada no painel.

powershell
$ git clone https://github.com/ndmg-dev/CodeWatcher.git$ cd CodeWatcher$ pip install -r requirements.txt  # watchdog, pywebview, pystray, Pillow$ pythonw watcher_gui.py --show

nota Windows apenas — a bandeja e a janela usam WebView2 + Win32. A revisão de PR é somente leitura: nada é postado de volta no GitHub.