your entire git workflow.
one binary.

reads your staged diff, suggests conventional commits, handles branching, sync, revert, and releases.

$ curl -fsSL https://aysdog.com/install-commitdog.sh | sh
Manual Downloads
bash — commitdog
aysdog
~/commitdog
main
works with your existing git servers
smart commit messages
reads your staged diff, suggests 4 conventional commits. purely deterministic — no AI, no hallucinations, no API keys.
[1] feat(api): add login handler
[2] feat(api): implement user auth
[3] refactor(api): update auth flow
[4] feat: add login endpoint
 
pick [1-4]: 1
✓ committed · ✓ pushed
zero telemetry
we genuinely don't want to know you exist. no analytics, no pings, no background processes.
no analytics no crash reports no usage stats no phoning home
single binary
drop it and run. no runtime, no npm circus, no Docker. copy to any machine and it works.
~7 MB
Linux · macOS · Windows
one command release
bump version, cross-compile 5 binaries, tag, push, create GitHub release, upload all assets. auto-detects Go, Rust, Node.js, Python.
v0.2.8 → v0.2.9
build linux-amd64 · linux-arm64 · darwin-arm64 · darwin-amd64 · windows-amd64.exe
commit · tag v0.2.9 · push
github release created · 5 binaries uploaded
pure Go stdlib
zero third-party packages. the entire source fits in ~20 files. auditable in an afternoon.
0 dependencies MIT licensed open source
self-hostable forever
your laptop, a $5 VPS, an air-gapped server. clone the repo and run it yourself — that's a hard requirement, not a feature.
no cloud required no account
daily use
commitdog
read staged diff → suggest 4 commit messages → you pick → push
commitdog sync
fetch + rebase + push in one shot, conflict-aware
commitdog branch
switch, create, or delete branches interactively
commitdog stash
save, pop, or drop stashes — goes straight to save if none exist
commitdog log
interactive git log with branch graph, j/k to scroll
less often
commitdog revert
pick from last 5 commits and cleanly undo it
commitdog merge
merge a branch into current with diff preview
commitdog pr
create PR from feature branch, or review and merge open PRs from main
setup & release
commitdog init
create github repo, stage, commit, push — all in one command
commitdog release
bump version, build 5 binaries, tag, push, create github release
commitdog setup
save github token for init and pr — run once
meta
commitdog --update
update to latest release
commitdog --version
print version and command reference
security
no shell injection
every git command uses exec.Command with explicit args — no shell interpolation, ever. input is sanitized before it touches anything.
exec.Command("git", "commit", "-m", msg)
token storage
GitHub token saved to ~/.config/commitdog/config.toml with 0600 permissions — only your user can read it.
network calls
zero on normal commits, log, and reverts. only init, pr, and release call the GitHub API. no background pings, ever.
diff size cap
diffs are capped at 200KB — no memory spikes on massive changesets, no surprise hangs.
200 KB
MIT licensed
open source. fork it, break it, ship your own version.