Bartle helps teams write clean, consistent commit messages across repositories.
A lightweight Git companion built for developers and teams who care about clean history.
- Single source of truth 🧩
.bartle.yamldefines commit rules for your team - Git-integrated ⚙️ runs automatically via
commit-msghook - Conventional or JIRA styles 🔍 out of the box
- Fast failure 🚫 reject invalid commits before they hit your repo
# build from source
git clone https://github.com/RyanTalbot/bartle.git
cd bartle
go build -o bartle .Get up and running with Bartle in under a minute.
bartle initThis will create a .bartle.yaml file in your project root.
# .bartle.yaml
style: conventional
ai:
enabled: false
provider: openai
model: gpt-5
api_key: env:OPENAI_API_KEY
temperature: 0.2
rules:
scope_required: true
max_line_length: 72
lowercase_start: false
types: [feat, fix, docs, refactor, test, chore]
hook:
auto_apply: false
block_on_fail: truebartle install-hookThis adds a commit-msg hook to your repository, so every commit is validated automatically.
Bad commits will be rejected, and valid commits will be accepted.
git commit -m "this is a bad commit"
# ❌ Invalid commit message:
# - missing ':' separator (e.g., type(scope): subject)
git commit -m "feat(ui): add button"
# ✅ Commit message is valid!You can run the linter manually to check your commit messages first.
bartle lint -m "feat(api): add pagination"
# ✅ Commit message is valid!
bartle lint -m "wrong format"
# ❌ Invalid commit message:
# - not conventional format (e.g., type(scope): subject)You can uninstall the hook at any time.
bartle uninstall-hook