🤡 noob-commit
For developers who code like ninjas but commit like toddlers
English
The Problem 😅
How many times have you:
- Written commit messages like "fix stuff" or "idk it works now"?
- Forgotten to run
git add
before committing? - Rushed to get a new OpenAI API key because you accidentally committed it?
- Paid that shameful OpenAI bill after pushing your keys to GitHub?
No more! This tool is for developers who are amazing at coding but absolutely terrible at git.
What It Does 🎯
noob-commit automatically:
- Adds all your files (
git add .
) - because you always forget - Smart filtering - protects you from committing:
- 🔐 Security files (.env, credentials, secrets)
- 📦 Dependency folders (node_modules, venv, target)
- 🗑️ Build artifacts (pycache, .DS_Store, *.pyc)
- Generates intelligent commit messages using AI - no more "update stuff"
- Pushes to remote - because why not finish the job?
- Loads API keys smartly - from environment or .env file
Installation 🚀
Or build from source:
Setup ⚡
- Get an OpenAI API key at https://platform.openai.com/api-keys
- Set your environment variable:
- (Optional) Setup the
nc
alias for ultimate laziness:
Usage 🎮
Basic usage (does everything for you):
# or if you set up the alias:
Common options:
# See what it would commit without actually doing it
# YOLO mode - no confirmations asked
# Include .env files (living dangerously)
# Include dependency folders (WARNING: huge repo!)
# Include build artifacts (not recommended)
# Output the AI advice in Brazilian Portuguese
# Just commit, don't push
# Use a different AI model
# Let me edit the AI's commit message
# Limit the git diff size sent to AI (useful for huge diffs)
# Send full diff without any truncation
# Update to the latest version
Examples 💡
The lazy developer's workflow:
# Write amazing code
# Commit like a pro with zero effort
The anxious developer's workflow:
# Check what would happen first
# Looks good, now do it for real
The perfectionist's workflow:
# Let me review the AI's work
Working on a messy project:
# You have node_modules, __pycache__, .env files everywhere
# noob-commit filters them all automatically!
# Output:
# 🛡️ Protecting security file: .env
# 📦 Unstaged dependency folders: node_modules/
# 🗑️ Unstaged cache/build artifacts: __pycache__/
# ✅ Generated perfect commit message for your actual code changes
The "I know what I'm doing" workflow:
# Include EVERYTHING (use with caution!)
# Get advice in Portuguese (for BR devs)
Features 🔥
- 🤖 AI-powered commit messages - Actually descriptive commits
- 🛡️ Smart security filtering - Protects .env, credentials, secrets, SSH keys
- 📦 Dependency folder filtering - Keeps node_modules, venv, vendor out
- 🗑️ Build artifact filtering - No more pycache, .DS_Store, *.pyc
- ✂️ Input size limiting - Truncate huge diffs to save API costs
- ⚡ One command workflow - Add, commit, push in one go
- 🔑 Flexible API key loading - From environment or .env file
- 🎭 Self-deprecating humor - Because we're all noobs sometimes
- 🔧 Highly configurable - But works great out of the box
- 🚨 Noob-friendly errors - Helpful messages when things go wrong
- 🚀 Modern async implementation - Fast and efficient
Configuration 🛠️
All the knobs you might want to turn:
Flag | Description | Default |
---|---|---|
-m, --model |
🧠 AI model to use | gpt-4.1-nano |
-t, --max-tokens |
🤖 How much the AI can ramble (output tokens) | 2000 |
-i, --max-input-chars |
✂️ Maximum characters of git diff to send to AI (0 = unlimited) | 50000 |
-d, --dry-run |
🔍 Just show what would happen | false |
-f, --force |
⚡ Skip confirmations (YOLO mode) | false |
-r, --review |
✏️ Edit AI's message before committing | false |
-e, --ok-to-send-env |
🔓 Include .env files (dangerous!) | false |
-M, --yes-to-modules |
📦 Include dependency folders (huge repo!) | false |
-c, --yes-to-crap |
🗑️ Include build artifacts | false |
-b, --br-huehuehue |
🇧🇷 Output advice in Brazilian Portuguese | false |
-a, --no-f-ads |
🙊 Disable the silly post-commit tagline | false |
-p, --no-push |
📦 Commit but don't push | false |
-s, --setup-alias |
🛠️ Setup 'nc' alias | - |
-u, --update |
🚀 Update noob-commit to the latest version | - |
-v, --verbose |
📢 Increase verbosity (can be used multiple times) | - |
What Gets Filtered? 🚫
Security Files (use --ok-to-send-env
to include):
.env
,.env.local
,.env.production
, etc..npmrc
,.pypirc
credentials
,secrets.yml
,secrets.yaml
- SSH keys:
id_rsa
,id_ed25519
, etc.
Dependency Folders (use --yes-to-modules
to include):
node_modules/
,venv/
,.venv/
,vendor/
bower_components/
,jspm_packages/
target/
(Rust),Pods/
(iOS),.gradle/
(Android)build/
,dist/
(various build systems)
Build Artifacts (use --yes-to-crap
to include):
__pycache__/
,*.pyc
,*.pyo
.DS_Store
,Thumbs.db
,desktop.ini
*.swp
,*.swo
,*.swn
(editor files)*.log
,*.tmp
,*.cache
,*.bak
- Compiled files:
*.o
,*.a
,*.class
,*.so
,*.dll
Contributing 🤝
Found a bug? Want to add a feature? PRs welcome! Just remember:
- Keep the humor level high
- Keep the noob-friendliness higher
- Write tests (we're not complete noobs)
Português
O Problema 😅
Quantas vezes você:
- Escreveu commits tipo "arrumei uns bagui" ou "sei lá, agora funciona"?
- Esqueceu de rodar
git add
antes do commit? - Correu atrás de uma nova chave da OpenAI porque commitou ela sem querer?
- Pagou aquela conta vergonhosa da OpenAI depois de empurrar suas chaves pro GitHub?
Nunca mais! Esta ferramenta é para devs que são ninjas no código mas crianças no git.
O Que Faz 🎯
noob-commit automaticamente:
- Adiciona todos os arquivos (
git add .
) - porque você sempre esquece - Filtragem inteligente - te protege de commitar:
- 🔐 Arquivos de segurança (.env, credentials, secrets)
- 📦 Pastas de dependências (node_modules, venv, target)
- 🗑️ Artefatos de build (pycache, .DS_Store, *.pyc)
- Gera mensagens de commit inteligentes usando IA - chega de "update bagui"
- Faz push pro remoto - porque por que não terminar o serviço?
- Carrega chaves de API - do ambiente ou arquivo .env
Instalação 🚀
Ou compile do código:
Configuração ⚡
- Pegue uma chave da OpenAI em https://platform.openai.com/api-keys
- Configure sua variável de ambiente:
- (Opcional) Configure o alias
nc
para preguiça máxima:
Uso 🎮
Uso básico (faz tudo pra você):
# ou se configurou o alias:
Opções comuns:
# Ver o que commitaria sem fazer de verdade
# Modo YOLO - sem confirmações
# Incluir arquivos .env (vivendo perigosamente)
# Só commitar, não fazer push
# Usar um modelo de IA diferente
# Deixa eu editar a mensagem da IA
# Limitar o tamanho do diff enviado pra IA (útil para diffs gigantes)
# Enviar o diff completo sem truncar
Recursos 🔥
- 🤖 Mensagens de commit com IA - Commits realmente descritivos
- 🛡️ Filtragem inteligente de segurança - Protege .env, credentials, secrets, chaves SSH
- 📦 Filtragem de pastas de dependências - Mantém node_modules, venv, vendor fora
- 🗑️ Filtragem de artefatos de build - Sem mais pycache, .DS_Store, *.pyc
- ✂️ Limitação de tamanho de entrada - Trunca diffs gigantes para economizar na API
- ⚡ Fluxo de um comando só - Add, commit, push de uma vez
- 🔑 Carregamento flexível de API key - Do ambiente ou arquivo .env
- 🎭 Humor autodepreciativo - Porque todos somos noobs às vezes
- 🔧 Altamente configurável - Mas funciona bem direto da caixa
- 🚨 Erros amigáveis para noobs - Mensagens úteis quando dá ruim
- 🚀 Implementação async moderna - Rápida e eficiente
Acknowledgments 🙏
This project is built upon the excellent foundation of auto-commit by Miguel Piedrafita.
The original auto-commit was a brilliant tool for AI-powered commit messages. noob-commit extends it with:
- Auto-adding files (because we always forget
git add
) - Smart .env file filtering (security first!)
- Auto-pushing (complete the workflow!)
- Self-deprecating humor (because coding is hard enough)
- Noob-friendly error messages (we've all been there)
Huge thanks to Miguel for creating the original tool and providing such a solid foundation! 🎉
Made with ❤️ by Neurotic Coder
Assisted by Beloved Claude
Stop being a noob at git. Be a noob with style! 🎭