Installation
Install commitdog on Linux, macOS, or Windows in under a minute.
Setup
Configure your platform token and email to get started.
Commit
Stage changes and pick a commit message generated from your diff.
Releases
Bump versions, build binaries, and publish releases with one command.
Key features
Smart commit messages
Runningcommitdog stages your changes, analyzes the diff — function names, file types, scope — and presents four conventional commit message suggestions. No network call is made. Pick one, edit it, or quit.
Secret detection
Before showing any suggestions, commitdog silently scans your staged diff for leaked credentials. If it finds something — AWS keys, GitHub tokens, private keys, Stripe keys, Slack tokens, generic passwords, and more — it shows you exactly where and blocks the commit. Test files are skipped automatically.Branch management
commitdog branch gives you an interactive menu to switch, create, and delete branches. commitdog switch takes you straight to the branch picker. Branch names can be suggested from your staged diff.
Sync with auto-recovery
commitdog sync runs fetch, pull rebase, and push in sequence. If the push fails — HTTPS auth expired, non-fast-forward, stale remote tag, missing upstream, protected branch — commitdog detects the cause and offers to fix it automatically.
Pull requests
On a feature branch,commitdog pr opens an interactive diff viewer and creates a PR. On main, it lists all open PRs so you can review, merge (merge, squash, or rebase), or close them. The remote branch is deleted after merge.
Releases with atomic rollback
commitdog release detects your project language, lets you choose a semver bump, previews a grouped changelog, builds cross-platform binaries, tags, pushes, and creates a release with checksums — all in one command. Every step registers an undo. If anything fails, commitdog rolls back every completed step in reverse and leaves your repository clean.
Multi-platform support
All commands work across GitHub, GitLab, Gitea, and Forgejo. You can store tokens for all four platforms at the same time. Per-platform email is applied per-repo viagit config --local so your global Git config stays untouched.
commitdog collects zero telemetry — not anonymous pings, not usage stats, nothing. Your data stays on your machine and only leaves it when you explicitly call a platform API.