AI-friendly issue tracking, powered by git. Issues are markdown files with YAML frontmatter, synced via a dedicated git branch. No databases, no SaaS — just files and git.
Quick install (Linux/macOS — downloads a prebuilt binary):
curl -fsSL https://raw.githubusercontent.com/atemate/git-aint/main/scripts/install.sh | shVia cargo (from crates.io):
cargo install git-aintFrom source:
git clone https://github.com/atemate/git-aint.git
cd git-aint
cargo install --path .Verify it works:
git aint --versionGit discovers subcommands by looking for executables named git-<name> on your PATH — no plugin registry or configuration needed. The install script places the binary in ~/.local/bin; cargo installs to ~/.cargo/bin. Make sure the relevant directory is on your PATH.
# Initialize git-aint in your repo
git aint init
# Create an issue (called an "aint")
git aint create --title "Fix auth bug" --priority 1
# List open aints
git aint list
# See details
git aint get c9x8
# Pick up work (creates worktree + branch, sets status to active)
git aint pickup c9x8
# Push code and create a PR
git aint push c9x8
# Mark as done
git aint update c9x8 --status mergedAints live in .aint/aints/ — a git worktree on the aint-sync branch, gitignored from your main branch. Each aint is a markdown file named <status>.<id>.<slug>.md:
.aint/aints/
├── ci-setup/ # grouping directory
│ ├── summary.md # directory metadata
│ ├── active.c9x8.fix-auth.md # an aint (status.id.slug)
│ └── open.d4m1.add-cache.md
└── open.f6p3.standalone-task.md # aint at root level
- IDs are 4-character base-36 codes (e.g.
c9x8) - Statuses progress:
backlog→open→active→pushed→merged(orrejected) - Priority: 0 critical, 1 high, 2 medium, 3 low, 4 backlog
- Directories group related aints, with an optional
summary.mdfor metadata
The CLI auto-commits and pushes to aint-sync after each write. You can also edit files directly and run git aint sync to commit your changes.
| Command | Description |
|---|---|
init |
Set up git-aint in a repo (idempotent) |
list |
List aints with filters (--search, --view tree, --stats) |
get <ref> |
Show full details of an aint |
create |
Create a new aint |
update <ref> |
Update status, priority, tags, deps |
doctor |
Run health checks and validation (--fix to auto-repair) |
sync |
Pull, commit, and push .aint/ changes |
exec |
Run a command with {placeholder} expansion |
Aliases:
| Alias | Does |
|---|---|
pickup <ref> |
Create worktree + branch, set active |
push <ref> |
Push code, create PR, set pushed |
tree |
list --view tree |
summary |
Generate structured project status |
whats-next |
Suggest the next aint to work on |
All commands support --output json. Run git aint <command> --help for full options.
git-aint is designed to work with AI coding agents like Claude Code. Run git aint init to auto-detect and configure agent integrations (hooks, skills, instructions). See .aint/AGENTS.md for agent-specific usage instructions.