aysdog docs
Everything you need to run, host, and contribute to aysdog tools. No fluff, no 47-step onboarding, no mandatory account creation.
Philosophy
Every tool we ship follows the same rules. If it breaks any of them, we don't ship it.
- Zero telemetry. We genuinely don't want to know you exist.
- Self-hostable forever. Your laptop, a $5 VPS, an air-gapped server in a bunker — all valid.
- Single binary when possible. No npm circus. No multi-stage Docker nonsense. Drop it and run.
- Zero external dependencies when we can get away with it. Pure stdlib. Auditable in an afternoon.
What's here
- commitdog — git workflow CLI. commit messages, sync, stash, revert, release. one binary.
Installation
Binary tools install with a single command. No package manager, no sudo, no drama. Web apps need no install — open the link and use them.
commitdog — Linux / macOS
commitdog — Windows
Verify
commitdog v0.2.5
A zero-dependency CLI that handles your entire git workflow. Commit, branch, log, PR, release — all from the terminal. Pure Go stdlib. No AI. No telemetry. Single binary.
Install
| platform | command |
|---|---|
| Linux / macOS (curl) | curl -fsSL https://aysdog.com/install-commitdog.sh | sh |
| macOS (Homebrew) | brew tap aysdog/commitdog && brew install commitdog |
| Arch Linux (AUR) | yay -S commitdog-bin |
| Windows (PowerShell) | irm https://aysdog.com/install-commitdog.ps1 | iex |
| Windows (winget) | winget install aysdog.commitdog |
First run
Run setup once to save your GitHub noreply email and classic PAT. After that, commitdog works fully offline for every commit and revert.
Generate a GitHub token
commitdog needs a classic Personal Access Token to create repos, open PRs, and create releases. Fine-grained tokens will not work.
- Go to github.com/settings/tokens
- Click Generate new token → Generate new token (classic)
- Give it a name — e.g.
commitdog - Set expiration to your preference (90 days or no expiry)
- Check three scopes:
repo,write:org, andread:user - Click Generate token — copy it immediately, GitHub will not show it again
- Run
commitdog setupand paste it when prompted
~/.config/commitdog/config.toml with 0600 permissions. Only your user can read it. Never leaves your machine except when calling the GitHub API.
Commands
| command | what it does |
|---|---|
commitdog | stage all, suggest 4 conventional commit messages, pick, commit, push |
commitdog <file> | stage a specific file only, then suggest + commit + push |
commitdog log | interactive git log with colored branch graph — j/k scroll, a show all, q quit |
commitdog pr | on feature branch: diff viewer → create PR. on main: list PRs, review, merge, close |
commitdog release | bump version, build 5 binaries, changelog, tag, push, GitHub release + checksums |
commitdog release --changelog-only | preview grouped changelog since last tag, no release |
commitdog release --init-ci | generate .github/workflows/release.yml for your project language |
commitdog status | project dashboard — latest commits, open PRs, branches, version, issues |
commitdog branch | interactive branch menu — switch, create, delete |
commitdog switch | jump straight to branch switcher |
commitdog branch create | create new branch with optional base, push with upstream |
commitdog branch ls | list all local and remote branches |
commitdog branch delete | delete branch locally + optionally remote, warns on unmerged |
commitdog merge | merge a branch into current with diff preview |
commitdog sync | fetch + pull rebase + push — auto-fixes conflicts, auth errors, non-fast-forward |
commitdog stash | save, pop, or drop stashes interactively |
commitdog revert | pick from last 5 commits, revert, handles merge commits with branch picker |
commitdog init | create GitHub repo via API, git init, first commit, first push — no browser |
commitdog setup | save GitHub noreply email and classic PAT |
commitdog --update | update to latest release automatically |
commitdog --version | print version with ascii art and command panel |
commitdog --help | print help |
Daily workflow
Stage everything and get smart conventional commit suggestions based on what actually changed — function names, file types, scope inference.
If you pick e, your $EDITOR opens with the suggestion pre-filled. Edit and save — commitdog uses whatever you write.
Secret detection
Before showing you any commit suggestions, commitdog silently scans your staged diff for secrets. If it finds one, it blocks the commit and shows you exactly where.
Catches AWS keys, GitHub tokens, private keys, Stripe keys, Slack tokens, generic passwords and API keys. Skips _test files automatically. You can override with y — it's a warning, not a hard block.
git filter-repo or BFG Repo Cleaner. commitdog will tell you this if you type N.
Sync with auto-recovery
Fetch, pull rebase, and push in one command. If anything goes wrong, commitdog diagnoses the error and offers a fix — it doesn't just print the raw git message and exit.
If push fails with HTTPS auth, commitdog detects it and offers to switch your remote to SSH automatically:
Other auto-recoveries: non-fast-forward (pull and retry), stale remote tag (delete and retry), missing upstream (set upstream and push).
Git log with branch graph
Interactive terminal log with a colored multi-lane branch graph. Each branch gets its own RGB color.
Controls: j / k or arrow keys to scroll, a to toggle all commits (default shows 20), q to quit.
Pull requests
On a feature branch — interactive diff viewer, then prompts for PR title and description, opens the PR on GitHub. On main — lists all open PRs, pick one to review, merge, or close.
After merge, the remote branch is deleted automatically. Supports merge, squash, and rebase strategies.
Release with atomic rollback
Every release step registers an undo. If anything fails — network cut, GitHub API down, build error — commitdog walks back every completed step in reverse. Your repo is always left in a clean state.
Auto-detects Go, Node.js, Rust, Python. If the build fails halfway, version bump is reverted, tag is deleted locally and remotely, release is deleted from GitHub. Nothing is left in a half-released state.
v0.2.3 but the latest git tag is v0.2.5, commitdog warns before touching anything. You decide whether to proceed.
Changelog preview
Preview the grouped changelog since your last tag without triggering a release.
Generate CI workflow
Auto-detects your project language and writes a GitHub Actions workflow that builds binaries and creates a release on every tag push.
Supports Go (cross-compiled 5 platforms + checksums), Node.js, Rust, Python, and a generic fallback.
Project status dashboard
Two-column terminal dashboard. Left: recent commits and open PRs. Right: project info, current version, branch list, open issues. Reads live from your local git repo and GitHub API.
Uninstall
How to contribute
Open an issue first. Describe what you want to fix or add. If it fits the philosophy — zero telemetry, minimal deps, self-hostable — we'll merge it.
- Fork the repo on GitHub.
- Make your changes in a new branch.
- Open a PR with a clear description of what changed and why.
- Don't add telemetry. Seriously.
Roadmap
No promises, no timelines. Things shipped and things coming.
Version history
| version | what shipped |
|---|---|
v0.2.5 | native Go SHA256 checksums · clean release body · packagemanagers.go separated |
v0.2.4 | secret detection · atomic release rollback · detectAndRecover (8 error patterns) · version drift check · changelog.go · packagemanagers.go |
v0.2.3 | initial rollback chain · sync hardened · recover.go introduced |
v0.2.2 | commitdog status dashboard · log graph renderer · auto-changelog · SHA256 checksums · Homebrew + AUR automation |
v0.2.1 | Homebrew tap · AUR · winget · smart version init for unknown project types |
v0.2.0 | commitdog pr · commitdog release with binary uploads |
v0.1.9 | HTTPS→SSH auto-fix · merge commit revert with branch picker |
v0.1.8 | commitdog log with colored branch graph |
v0.1.4 | branch / switch / merge / sync / stash / revert |
Shipped features
- commitdog log — interactive git log with RGB-colored multi-lane branch graph.
v0.1.8 - commitdog merge — merge with interactive diff preview.
v0.1.4 - commitdog branch / switch / sync / stash / revert — full git workflow.
v0.1.4 - HTTPS remote auto-fix — detects push auth failure, converts to SSH, retries.
v0.1.9 - merge commit revert — branch picker instead of crashing on merge reverts.
v0.1.9 - commitdog pr — interactive diff viewer, create PR, list/review/merge from main.
v0.2.0 - commitdog release — bump version, build 5 binaries, tag, push, GitHub release.
v0.2.0 - Homebrew tap —
brew tap aysdog/commitdog && brew install commitdog.v0.2.1 - AUR —
yay -S commitdog-bin.v0.2.1 - winget —
winget install aysdog.commitdog.v0.2.1 - commitdog status — project dashboard with commits, PRs, branches, version.
v0.2.2 - auto-changelog — grouped conventional commit changelog on every release.
v0.2.2 - SHA256 checksums — checksums.txt uploaded to every release.
v0.2.2 - secret detection — scans staged diff before every commit, catches 10 secret patterns.
v0.2.4 - atomic release rollback — every release step has an undo, full rollback on any failure.
v0.2.4 - detectAndRecover — 8 git error patterns mapped to auto-fixes.
v0.2.4 - version drift check — warns before release if version file and git tag don't match.
v0.2.4 - release --changelog-only — preview changelog without releasing.
v0.2.4 - release --init-ci — generate GitHub Actions release workflow.
v0.2.4 - native SHA256 — pure Go crypto/sha256, no shell dependency.
v0.2.5
Up next
- GitHub OAuth device flow — zero-friction setup, no manual PAT copy-paste.
- commitdog today — daily summary: recent commits, open PRs, stash list, pending diff.
- better stack detection — Next.js, Remix, SvelteKit, Astro via package.json.
- secret history scan — scan full commit history, not just staged diff.
- aysdog Managed — optional hosted layer for teams. central secret rotation, signed binary provenance.