Skip to main content
commitdog is a command-line tool that covers your full Git workflow: it suggests commit messages from your actual diff, manages branches interactively, opens and merges pull requests, syncs with auto-recovery, and publishes releases with atomic rollback. It works with GitHub, GitLab, Gitea, and Forgejo — and runs entirely on your machine, with no AI and no telemetry of any kind.

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

Running commitdog 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 via git 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.