CLI com IA que gera automaticamente mensagens de commit convencionais e descrições de pull request a partir dos seus diffs.
O que é o Aigh?
Aigh (AI + GitHub) é uma ferramenta de linha de comando que elimina o atrito de escrever mensagens de commit e descrições de pull request. Em vez de interromper o fluxo para criar o commit convencional perfeito ou um resumo detalhado de PR, você executa um único comando — aigh commit ou aigh pr new — e a IA elabora o texto em segundos.
Você mantém o controle. O Aigh sempre exibe o resultado gerado e pede confirmação antes de tocar no seu repositório. É IA como gerador de rascunhos, não como tomador de decisões.
O Problema que Resolve
Escrever mensagens de commit consistentes e significativas é cognitivamente custoso, especialmente sob pressão. Times que seguem o Conventional Commits se beneficiam de um histórico estruturado e changelogs automáticos, mas enforçar o formato manualmente cria fricção.
O Aigh remove essa fricção sem sacrificar qualidade ou disciplina.
Funcionalidades Principais
aigh commit — mensagens de commit com IA
O Aigh lê o seu diff staged e envia para o provedor de IA de sua escolha. A resposta é uma mensagem de commit convencional (feat:, fix:, chore:, etc.) que reflete exatamente o que foi alterado.
git add src/auth.ts
aigh commit
# ✔ Gerado: feat(auth): add JWT refresh token rotation
# Commitar com esta mensagem? (S/n)Use -e / --editor para abrir a mensagem no seu editor antes de commitar.
aigh pr new — descrições de PR com IA
O Aigh compara sua branch com a base, lê o .github/pull_request_template.md (se existir) e gera um título e corpo completos para o PR.
aigh pr new --base main --no-draft --webOpções:
| Flag | Descrição |
|---|---|
--base <branch> | Branch base para o diff (padrão: main) |
--no-draft | Criar PR como pronto para revisão |
--web | Abrir o PR criado no navegador |
-e / --editor | Editar título/corpo antes de criar |
Suporte multi-provedor de IA
Configure qualquer um dos três principais provedores:
| Provedor | Modelo padrão |
|---|---|
| OpenAI | gpt-4o |
| Anthropic Claude | claude-opus-4-5 |
| Google Gemini | gemini-pro |
Troque de provedor ou modelo a qualquer momento via aigh config set.
aigh config — configuração persistente
aigh config setup # assistente interativo
aigh config get # exibir todas as configurações
aigh config set provider openai
aigh config set model gpt-4oA configuração é armazenada em ~/.aigh/config.json. As chaves de API também podem ser definidas por variáveis de ambiente (OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_GENERATIVE_AI_API_KEY).
Como Funciona
diff staged / diff da branch
│
▼
provedor de IA (OpenAI / Claude / Gemini)
│
▼
saída estruturada (commit convencional ou título+corpo do PR)
│
▼
prompt interativo de confirmação
│
▼
git commit -m … / gh pr create …
A ferramenta é intencionalmente enxuta. Ela delega para git e para o CLI oficial gh — sem chamadas customizadas à API do GitHub, sem gerenciamento de credenciais, sem efeitos colaterais além do que você aprovar.
Instalação
npm install -g aighPré-requisitos: Node.js ≥ 18, git, e o CLI gh autenticado (gh auth login).
Stack Técnica
- TypeScript — modo strict, compilado com esbuild para um único
dist/cli.js - Vercel AI SDK — interface unificada para provedores OpenAI, Anthropic e Google
- execa — execução de processos para comandos
gitegh - inquirer — prompts interativos no terminal
- meow — parsing de argumentos CLI
- ora + chalk — spinner e saída colorida
Filosofia de Design
- IA rascunha, humano aprova — toda saída gerada passa por uma etapa de confirmação interativa
- Sem mágica — o Aigh encapsula
gitegh; não os reimplementa - Agnóstico a provedor — traga sua própria chave de API e modelo preferido
- Convenção em primeiro lugar — a saída segue o Conventional Commits e o estilo Angular de commits
Status
O Aigh está ativamente mantido na v1.1.0. As releases são automatizadas via semantic-release a partir de commits convencionais (claro). Os trabalhos futuros incluem um comando de revisão de código (aigh review), prompts customizáveis e coleta de contexto mais inteligente (nomes de arquivos, código ao redor).