Understand the change once. Preserve that understanding. Reuse it everywhere.
Most AI tools generate a commit message and stop there — useful for a moment, then gone. gitaiflow reads your actual git diff and keeps what it learns: a structured, timestamped artifact that can become your commit, your changelog, your release notes, and input for the next tool in line — using whatever AI provider you already trust, from a free model to one running entirely on your own machine.
gitaiflow is an AI-powered binary application designed around a Bring Your Own Key (BYOK) architecture.
gitaiflow does not require the application owner to host or operate an AI model. Instead, the developer provides the AI provider configuration that gitaiflow should use. The current AI integration contract is:
AI_PROVIDER=custom AI_BASE_URL=<endpoint> AI_API_KEY=<key> AI_MODEL=<model>
This architecture allows gitaiflow to work with:
For more details, refer to the documentation.
| Env Variable | Default | Notes |
|---|---|---|
| AI_PROVIDER | Required | Label for the provider you’re using, e.g. gemini, ollama, openai, custom. Only affects display/usage-log grouping — it does not select a base_url or model for you. |
| AI_API_KEY | Required | API key for your provider. Even a provider that ignores it (e.g. a local Ollama/vLLM server) still needs some non-empty value here. |
| AI_BASE_URL | Required | Full OpenAI-compatible chat-completions base URL, e.g. https://generativelanguage.googleapis.com/v1beta/openai |
| AI_MODEL | Required | Model name/id exactly as your provider expects it, e.g. gemini-flash-lite-latest, llama3.2:3b, gpt-4.1-min |
Ships as a single ahead-of-time (AOT) compiled binary for every major platform — compiled straight to native machine code, so there's no interpreter, no dependency tree, and no runtime to install.
Installs the ahead-of-time (AOT) compiled binary directly — no build step, no Python interpreter required on the target machine. Omit the version to install the latest release; pass a version tag to pin an exact version instead.
curl -fsSL https://install.djangoplay.org/gitaiflow | bash
irm https://install.djangoplay.org/gitaiflow.ps1 | iex
curl -fsSL https://install.djangoplay.org/gitaiflow | bash -s -- v1.0.0
$env:GITAIFLOW_VERSION = "v1.0.0"; irm https://install.djangoplay.org/gitaiflow.ps1 | iex
--path PATHFile or directory to summarize (default: current directory).--remote / --base-branchOverride the comparison remote (defaults to the branch’s upstream, then origin) and base branch (defaults to the remote’s detected default branch, falling back to main).--skip [paths...]Exclude directories, exact file paths, or file-type patterns (e.g. *.svg) from the diff.-o, --output-dir DIRCustom root for change-summary output (default change-summary/); reuse the same value with --changelog.--markdownAlso render a human-facing Markdown view alongside the JSON artifact.--no-chunkSend the whole diff as a single AI request instead of per-directory chunks.--change-summaryPrint just the generated commit title + body to stdout (pipeable into git commit -F).--last-summaryPrint the most recently generated change-summary straight from disk — no git diff, no AI call, no new run.--regenerate-summaryForce a fresh AI summary for every group, even if an identical diff was already summarized on a previous day.--show-analysisWith --change-summary, also print the model’s raw reasoning that preceded its answer (debugging).--allow-billingSkip the free-model pricing guard and proceed even if the configured model may be billed.--changelog --since ... [--until ...]Generate/prepend a CHANGELOG.md entry for a date range, grouped by conventional-commit type.--release-notesGenerate or overwrite RELEASE_NOTES.md from the current version’s CHANGELOG.md entry (run --changelog first if it doesn’t exist yet).--list-models [--free-only] [--json]List OpenRouter’s live model catalog; no API key required.--usage [version | --since --until]Query the local usage log for the last run, a specific version, or a custom date range.--telemetry enable|disable|status|historySet or inspect the durable, locally saved telemetry consent, independent of the current session.--uninstallCompletely remove the gitaiflow binary and local state files.Understand the change once.
Preserve that understanding.
Reuse it everywhere.
AI-powered. Provider-independent. Local-first. Built for automation.