Problem Statement
Git is essential, but the workflow around it is unnecessarily painful — especially for developers still building confidence with it.
You have to remember the right sequence of commands, configure remotes, set upstream branches, handle authentication, and decode cryptic error messages when something goes wrong. Even experienced developers waste time on this. Forget to stage a file, push to the wrong branch, or hit a credential error and suddenly you're on Stack Overflow instead of writing code.
Existing solutions don't quite hit the mark. GUI clients are heavy and disconnect you from the terminal. Tools like lazygit are powerful but built for people who already know Git well. There's nothing lightweight, terminal-native, and genuinely approachable sitting in between.
That's the gap SwiftGit fills.
Proposed Solution
SwiftGit is a minimal terminal-based Git client that turns the most common Git workflows into a clean, keyboard-driven interface — without pulling you out of the terminal.
Open a folder, clone a repo, or continue a recent project from a simple dashboard. If the folder isn't a Git repository, SwiftGit initializes one automatically. Your changed files appear in a collapsible folder tree. Stage what you want, write your commit message inline, and push — all in a few keypresses. Authentication via GitHub PAT is configured once and never touched again.
When cloning, SwiftGit fetches the repository's full file tree before downloading anything. Instead of cloning an entire repo for one or two files, you pick exactly what you need. Full clone is still one keypress away.
Branch creation and switching are built in. An optional AI layer using Groq can generate commit messages from your diff, explain errors in plain English, and summarize file changes — useful for anyone still building their Git intuition.
Built with Ratatui in Rust. Fast, SSH-friendly, no mouse required.
Execution Plan
Phase 1 — Core Git Workflow
Getting the fundamental loop working reliably: open a repository, view file status, stage, commit, and push.
Delivered:
- Dashboard with Open Folder, Clone Repo, and Recent Projects
- File status view with stage / unstage per file
- Inline commit input and push with PAT authentication
- Auto
git initon new folders withmainas default branch
Phase 2 — GitHub Integration
Extending the clone flow with the GitHub API so users aren't forced to download everything.
Delivered:
- GitHub API file tree fetch on clone
- File picker UI with per-file selection and size info
- Selective download preserving directory structure
- One-key fallback to full clone
Phase 3 — Usability and Branch Management
Addressing friction points from testing and adding branch workflows.
Delivered:
- Branch creation and switching built into the interface
- Directory autocomplete with live dropdown in folder input
- Collapsible folder tree in repo view, collapsed by default
- First-push upstream handling so
git pushnever fails on a new branch - Spinner indicators on every async operation
mainas default branch throughout
Phase 4 — AI Assistance (In Progress)
Optional AI integration via Groq — fully additive, works without it if no key is configured.
Planned:
- Commit message generation from current diff
- Git error explanation in plain English
- File change summary on selected diff
Phase 5 — Advanced Features (Roadmap)
- Merge handling and basic conflict resolution
- Repository creation from the dashboard via GitHub API
- Stash management
- Multi-remote support

Log in or sign up for Devpost to join the conversation.