Strict Pair Programmer CLI — AI-powered software architecture reviewer
Project description
🎩 Goodfella
Strict Pair Programmer CLI — Um assistente de IA focado estritamente em Engenharia de Software que atua como um Pair Programmer Rigoroso e Arquiteto de Software.
O que é?
O Goodfella analisa códigos, detecta violações de princípios (SOLID, Clean Architecture, DDD, etc.) e sugere melhorias. Ele não altera código diretamente — apenas aconselha.
Características
- 🔒 Local-First — Processamento padrão 100% local via Ollama
- ☁️ Multi-Provedor — Suporte a OpenAI, Anthropic, Gemini
- 🧠 RAG Inteligente — Base vetorial com ChromaDB embutido
- 📂 Isolamento por Projeto — Contextos independentes por diretório
- 💬 Chat Interativo — REPL fluido no terminal com Rich
Instalação
A maneira recomendada de instalar o Goodfella globalmente na sua máquina é utilizando o pipx (que instala a CLI em um ambiente isolado, evitando o erro de ambiente gerenciado externamente no Linux/Mac):
pipx install goodfella
Alternativamente, você pode instalar via pip tradicional:
pip install goodfella
Uso
Para iniciar o assistente, basta rodar o comando na raiz do diretório do seu projeto:
goodfella
Configurando o Provedor de IA (Local vs Cloud)
O Goodfella foi desenhado para ser Local-First. Por padrão, ele tentará se conectar ao Ollama rodando localmente na sua máquina (porta 11434). Essa é a recomendação para máxima privacidade, já que seu código nunca sai do seu computador.
Como usar com o Ollama (Padrão):
- Certifique-se de que o Ollama está instalado e rodando no seu terminal (
ollama serve). - Baixe o modelo padrão do Goodfella (Qwen 2.5 Coder):
ollama pull qwen2.5-coder:7b
- Rode o comando
goodfellano seu projeto e a CLI se conectará automaticamente.
Se você não possui uma GPU forte ou se deseja análises arquiteturais mais profundas usando outros modelos, o Goodfella possui integrações nativas com a nuvem.
Como habilitar e usar provedores Cloud:
Interativamente (via chat):
Inicie o Goodfella normalmente e digite o comando /setup. Um menu interativo guiará você na escolha do provedor e na inserção segura da sua chave de API.
Dica: Uma vez dentro do assistente, utilize o comando /status para auditar rapidamente qual provedor de IA e modelo específico estão assumindo o controle das respostas no momento.
Comandos Principais
| Comando | Descrição |
|---|---|
/review |
Revisão estrita de Clean Architecture/SOLID |
/deep-review |
Análise completa via modelo Cloud |
/setup |
Assistente de configuração de provedor |
/status |
Saúde do sistema e provedor ativo |
/rule add |
Adicionar regra customizada |
/rebuild |
Reconstruir banco vetorial do zero |
/quit |
Encerrar e salvar histórico |
Stack Técnica
- Python + uv
- LangChain — Orquestração de IA
- ChromaDB — Banco vetorial embutido
- Rich — Interface de terminal
- Ollama — LLM local (padrão)
Licença
Proprietary / All Rights Reserved
O código-fonte é disponibilizado apenas para visualização e fins educacionais. É estritamente proibido modificar, distribuir, sublicenciar ou utilizar este projeto (ou qualquer parte dele) para fins comerciais sem autorização prévia por escrito.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file goodfella-0.1.3.tar.gz.
File metadata
- Download URL: goodfella-0.1.3.tar.gz
- Upload date:
- Size: 287.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ece65a3eb8ede118c50af84811c03ad187d3bc47a27a051a430bbdf392460ccb
|
|
| MD5 |
89fad01c2fc05ee7272ebe87450107a6
|
|
| BLAKE2b-256 |
cf4cea23d770a83164fc018affd9eeae611cac3447fe993fff3b3913303dcf7a
|
Provenance
The following attestation bundles were made for goodfella-0.1.3.tar.gz:
Publisher:
publish.yml on BrunoSaintClair/goodfella-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
goodfella-0.1.3.tar.gz -
Subject digest:
ece65a3eb8ede118c50af84811c03ad187d3bc47a27a051a430bbdf392460ccb - Sigstore transparency entry: 1998911880
- Sigstore integration time:
-
Permalink:
BrunoSaintClair/goodfella-ai@05dea237a6dbf0686ce5e76a61630d4529f5c9e0 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/BrunoSaintClair
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@05dea237a6dbf0686ce5e76a61630d4529f5c9e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file goodfella-0.1.3-py3-none-any.whl.
File metadata
- Download URL: goodfella-0.1.3-py3-none-any.whl
- Upload date:
- Size: 34.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4101b10a795b017e7f61df8c5aa300b4ac3e53b407ddc2312320e97858baaa27
|
|
| MD5 |
68c72e00a9846f3c7d390630db2fc5ef
|
|
| BLAKE2b-256 |
fdae3c54bacaa3f880bc9732fd5f49a0add9f448cdefcef7ae3140aa101ab1da
|
Provenance
The following attestation bundles were made for goodfella-0.1.3-py3-none-any.whl:
Publisher:
publish.yml on BrunoSaintClair/goodfella-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
goodfella-0.1.3-py3-none-any.whl -
Subject digest:
4101b10a795b017e7f61df8c5aa300b4ac3e53b407ddc2312320e97858baaa27 - Sigstore transparency entry: 1998911947
- Sigstore integration time:
-
Permalink:
BrunoSaintClair/goodfella-ai@05dea237a6dbf0686ce5e76a61630d4529f5c9e0 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/BrunoSaintClair
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@05dea237a6dbf0686ce5e76a61630d4529f5c9e0 -
Trigger Event:
push
-
Statement type: