AI-Powered Git Workflow Automation
Geeto automates your entire Git workflow — from staging to cleanup — with AI-powered branch naming, commit messages, release management, and Trello integration. Supports Gemini, GitHub Copilot, OpenRouter, and Groq.
- AI-Powered — Branch names, commit messages, and release notes generated by Gemini, GitHub Copilot, OpenRouter, or Groq
- Full Git Workflow — Stage → Branch → Commit → Push → Merge → Cleanup in one command
- Release Manager — Semver bumping (stable + alpha/beta/rc), CHANGELOG.md, RELEASE.MD, GitHub/GitLab Releases, tag recovery
- Trello Integration — Link branches to cards, generate AI agent task lists
- GitHub + GitLab — Pull Requests / Merge Requests, Issues, repo settings, all from the terminal
- Git Toolkit — Branch cleanup, switcher, compare, cherry-pick, stash, amend, undo, stats, history
- Checkpoint Recovery — Resume interrupted workflows from any step
- Cross-Platform — macOS, Linux, Windows
brew tap rust142/geeto
brew install geetoARCH="$(dpkg --print-architecture)"
case "$ARCH" in
amd64|arm64) ;;
*) echo "Unsupported architecture: $ARCH"; exit 1 ;;
esac
DEB_URL="$(
curl -fsSL https://api.github.com/repos/rust142/geeto/releases/latest \
| grep -Eo "https://github.com/rust142/geeto/releases/download/[^\"]+/geeto_[^\"]+_${ARCH}\.deb" \
| head -n 1
)"
[ -n "$DEB_URL" ] || { echo "Could not find latest Geeto .deb for ${ARCH}"; exit 1; }
curl -fL "$DEB_URL" -o geeto.deb
sudo dpkg -i geeto.deb
rm geeto.debnpm install -g geeto
# or
bun install -g geetoDownload from Releases:
| Platform | Binary |
|---|---|
| macOS x64 | geeto-mac |
| macOS ARM | geeto-mac-arm64 |
| Linux x64 | geeto-linux |
| Linux ARM | geeto-linux-arm64 |
| Windows x64 | geeto-windows.exe |
curl -fsSL https://github.com/rust142/geeto/releases/latest/download/geeto-linux -o geeto
chmod +x geeto
sudo mv geeto /usr/local/bin/To install a specific prerelease version (alpha, beta, or rc):
# Replace TAG with the version, e.g. v0.7.0-beta.1
curl -fsSL https://github.com/rust142/geeto/releases/download/TAG/geeto-linux -o geeto
chmod +x geeto
sudo mv geeto /usr/local/bin/Browse all prereleases at Releases.
curl -fsSL https://raw.githubusercontent.com/rust142/geeto/main/tools/install.sh | bashThe installer shows step-by-step progress, detects existing installs, and verifies the installation.
Prerequisites (depends on install method):
- Homebrew / APT / Binary — just Git ≥ 2.0 (runtime is bundled)
- NPM — Node.js ≥ 18 + Git ≥ 2.0
- Bun / From Source — Bun ≥ 1.0 + Git ≥ 2.0
Choose one method based on how you installed:
| Method | Command |
|---|---|
| Homebrew | brew uninstall geeto && brew untap rust142/geeto |
| APT | sudo dpkg -r geeto |
| NPM/Bun | npm uninstall -g geeto |
| Binary | sudo rm /usr/local/bin/geeto |
| Source | curl -fsSL https://raw.githubusercontent.com/rust142/geeto/main/tools/uninstall.sh | bash |
The uninstall script supports flags:
--force— skip confirmation prompt--purge— also remove config directory (~/.geeto/)
Choose one method based on how you installed:
| Method | Command |
|---|---|
| Homebrew | brew update && brew upgrade geeto |
| APT | Re-download the latest .deb from Releases and run sudo dpkg -i geeto.deb |
| NPM/Bun | npm update -g geeto |
| Binary | Download the latest binary from Releases |
| Source | curl -fsSL https://raw.githubusercontent.com/rust142/geeto/main/tools/update.sh | bash |
The update script auto-detects your install method and guides you to the right upgrade path.
geetoOn first run, Geeto guides you through AI provider setup:
| Provider | Setup |
|---|---|
| Gemini | Enter API key from Google AI Studio |
| OpenRouter | Enter API key from OpenRouter |
| GitHub Copilot | Uses Copilot REST API via GitHub CLI token — requires Copilot access (free or paid). |
| Groq | Free API key from console.groq.com/keys — free models: Llama, Gemma, Mixtral. |
All config is saved locally in .geeto/.
Geeto walks you through 6 steps in sequence:
- Stage — Select files to commit
- Branch — AI generates a branch name from your changes
- Commit — AI generates a conventional commit message
- Push — Push to remote with progress bar
- Merge — Merge to target branch
- Cleanup — Delete merged branches
Each step can also be run individually.
| Command | Description |
|---|---|
geeto |
Full workflow (all 6 steps) |
geeto -s, --stage |
Stage files interactively |
geeto -sa, -as |
Stage all changes automatically |
geeto -c, --commit |
Create commit with AI message |
geeto -b, --branch |
Create branch with AI name |
geeto -p, --push |
Push current branch to remote |
geeto -m, --merge |
Merge branches interactively |
| Command | Description |
|---|---|
geeto -cl, --cleanup |
Clean up local & remote branches |
geeto -sw, --switch |
Switch branches with fuzzy search |
geeto -cmp, --compare |
Compare current branch with another |
geeto -cp, --cherry-pick |
Cherry-pick from another branch |
geeto -lg, --log |
View commit history with timeline |
geeto -sh, --stash |
Manage stashes interactively |
geeto -am, --amend |
Amend the last commit |
geeto -rw, --reword |
Edit past commit messages |
geeto -u, --undo |
Undo the last git action safely |
geeto -rv, --revert |
Revert the last commit (soft reset) |
geeto -al, --alias |
Install shell aliases for geeto |
geeto -sts, --stats |
Repository statistics dashboard |
geeto -st, --status |
Pretty git status overview |
geeto -pl, --pull |
Pull from remote interactively |
geeto -ft, --fetch |
Fetch latest from remote |
geeto --abort |
Abort in-progress operation |
geeto --prune |
Remove stale remote branches |
| Command | Description |
|---|---|
geeto -pr, --pr |
Create a Pull Request (GitHub) or Merge Request (GitLab) |
geeto -i, --issue |
Create an Issue |
geeto -t, --tag |
Release & tag manager (semver + prerelease, changelog, Releases) |
geeto -rp, --repo |
Update repo description, topics & homepage (AI-powered) |
| Command | Description |
|---|---|
geeto -tr, --trello |
Open Trello menu |
geeto -tl, --trello-list |
List boards and lists |
geeto -tg, --trello-generate |
Generate AI agent task list |
| Command | Description |
|---|---|
geeto --setup-gemini |
Configure Gemini AI |
geeto --setup-openrouter |
Configure OpenRouter AI |
geeto --setup-copilot |
Configure GitHub Copilot |
geeto --setup-github |
Configure GitHub token |
geeto --setup-gitlab |
Configure GitLab token |
geeto --setup-trello |
Configure Trello integration |
geeto --change-model |
Switch AI provider / model |
geeto --sync-models |
Fetch latest model list |
geeto --separator |
Set branch name separator |
| Command | Description |
|---|---|
geeto -f, --fresh |
Start fresh (ignore checkpoint) |
geeto -r, --resume |
Resume from last checkpoint |
geeto -dr, --dry-run |
Simulate commands without executing |
geeto -v, --version |
Show version |
geeto -h, --help |
Show help |
Generate task instruction files for AI coding agents:
geeto --trello-generateCreates .github/instructions/tasks.instructions.md with structured task lists from your Trello cards — including step-by-step instructions, implementation checklists, and per-task confirmation flows.
v0.10.0+ —
.geeto/is the only supported config location. Any config from previous versions outside this directory is no longer read.
Geeto supports two config locations with local priority:
| Location | Scope | Priority |
|---|---|---|
.geeto/ |
Project-local | Higher — overrides global |
~/.geeto/ |
Global (all projects) | Fallback when no local config found |
Set up once globally, every new project picks it up automatically. Override per-project by creating a local .geeto/ config.
New project setup: run any --setup-* command and choose "Save globally" when prompted — no copy-paste needed.
Already have local config? Open Settings (geeto --settings or via main menu) → AI → Save AI config globally (~/.geeto/) — moves all local AI config files to global in one step.
The .geeto/ folder is automatically added to .gitignore on first run (never committed). ~/.geeto/ lives outside any repo.
| File | Created by | Purpose |
|---|---|---|
gemini.toml |
--setup-gemini |
Gemini API key |
openrouter.toml |
--setup-openrouter |
OpenRouter API key |
groq.toml |
--setup-groq |
Groq API key |
github.toml |
--setup-github |
GitHub personal access token |
gitlab.toml |
--setup-gitlab |
GitLab token + instance URL |
trello.toml |
--setup-trello |
Trello API key, token, board ID |
branch-strategy.toml |
--separator / first run |
Branch separator char and last naming strategy (project-only, not global) |
These are always project-local — not read from ~/.geeto/.
| File | Created by | Purpose |
|---|---|---|
geeto-state.json |
Automatically | Checkpoint state for workflow recovery (-r, --resume) |
openrouter-model.json |
--sync-models |
Persisted OpenRouter model list (filtered, text/code only) |
gemini-model.json |
--sync-models |
Persisted Gemini model list |
groq-model.json |
--sync-models |
Persisted Groq model list |
copilot-model.json |
--setup-copilot / --sync-models |
Persisted GitHub Copilot model list |
last-ai-suggestion.json |
Every AI call | Last raw AI response — inspect when branch/commit suggestions look wrong |
git clone https://github.com/rust142/geeto.git
cd geeto
bun install
bun run build # Build
bun run dev # Development mode (run from source)
bun run check:fast # Quick lint
bun run check:full # Full typecheck + lintSee CONTRIBUTING.md for detailed guidelines.
- Fork the repository
- Create a branch:
dev#your-feature - Make your changes
- Run checks:
bun run check:fast && bun run check:full - Submit a Pull Request to
developbranch
See CONTRIBUTING.md for details.
If Geeto helps your workflow, consider supporting:
- ☕ Buy me a coffee on Saweria
- ⭐ Star this repository
- 🐛 Report bugs or suggest features
- 📢 Share with fellow developers
MIT — see LICENSE for details.
