██████╗ ██╗████████╗ ██████╗ ██████╗ █████╗ ██████╗██╗ ██╗
██╔════╝ ██║╚══██╔══╝██╔════╝██╔═══██╗██╔══██╗██╔════╝██║ ██║
██║ ███╗██║ ██║ ██║ ██║ ██║███████║██║ ███████║
██║ ██║██║ ██║ ██║ ██║ ██║██╔══██║██║ ██╔══██║
╚██████╔╝██║ ██║ ╚██████╗╚██████╔╝██║ ██║╚██████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
Interactive Git assistant that prevents mistakes before they happen.
Git is powerful but brutal to beginners. Cryptic error messages, lost work from uncommitted changes, fear of breaking everything.
GitCoach is different:
- Prevents mistakes BEFORE they happen - Warns about uncommitted changes, detached HEAD, force push risks
- Educational - Shows every Git command being executed so you learn while you use it
- Adapts to your level - Beginner (verbose), Intermediate (balanced), Expert (minimal)
- Multilingual - Works in English, French, and Spanish
- 5 AI integrations - GitHub Copilot CLI for commit messages, Git Q&A, diff summaries, error explanations, and conflict resolution — or plug in a local Ollama model (works without any of them too)
Built for the GitHub Copilot CLI Challenge 2026.
npm install -g gitcoach-cli
gitcoach
That's it. GitCoach guides you from there.
Windows: Download from nodejs.org (LTS version)
Mac:
brew install node
Linux (Ubuntu/Debian):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
Windows: Download from git-scm.com
Mac:
brew install git
Linux (Ubuntu/Debian):
sudo apt-get install git
For AI-powered features (commit messages, Q&A, diff summaries, error explanations, conflict resolution):
npm install -g @github/copilot
copilot login
GitCoach works perfectly fine without Copilot CLI — all core features are available without it.
Navigate Git with simple menus instead of memorizing commands.
? Main Menu
> [S] Status - View current changes
[A] Add - Stage files for commit
[C] Commit - Save your changes
[P] Push - Upload to remote
[L] Pull - Download changes
[B] Branch - Manage branches
[R] Remote - Configure remote repository
[U] Undo - Undo actions (incl. reflog recovery)
[H] History - View commit history
[W] Stash - Save work temporarily
[G] Config - Settings & AI provider
[T] Stats - View your statistics
[?] Help - Ask Git questions
[Q] Quit - Exit GitCoach
GitCoach adapts to your skill level:
| Level | Menu Labels | Confirmations | Warnings | Explanations |
|---|---|---|---|---|
| Beginner | Full descriptions | All | All | Shown |
| Intermediate | Short descriptions | All | Most | Hidden |
| Expert | Git commands | Destructive only | Critical only | Hidden |
GitCoach warns you BEFORE you make mistakes:
- Uncommitted changes — warns before branch switching
- Detached HEAD — detects and offers recovery options (create branch, return to main, stash)
- Force push — requires explicit confirmation
- Merge conflicts — guides you through resolution step by step
- Missing git identity — configures
user.name/user.emailbefore your first commit fails - Secrets & large files — warns before staging
.env, keys,node_modules, or files over 50 MB - Lost commits — recover them from the reflog via the Undo menu (creates a rescue branch)
Every action shows the Git command being executed:
? Stage all files? Yes
> git add -A
5 file(s) staged successfully.
You learn Git while using GitCoach. Eventually, you won't need it anymore. That's the goal.
GitCoach uses Copilot CLI in 5 distinct ways. All are optional — the tool works without Copilot.
Copilot analyzes your staged diff and suggests a conventional commit message:
Suggested: feat(auth): add OAuth2 authentication
? Use this message? (Y/n)
Ask any Git question in natural language from the Help menu:
? Your question: What's the difference between merge and rebase?
MERGE creates a merge commit, preserving history.
REBASE rewrites history by moving commits.
Use merge for shared branches, rebase for local cleanup.
Before committing, Copilot summarizes your staged changes so you can review the intent of your work before saving it:
+-------------- Summary of Changes ---------------+
| |
| Modified auth module: added OAuth2 flow with |
| token refresh. Updated user model to store |
| refresh tokens. |
| |
+--------------------------------------------------+
When a Git operation fails, Copilot explains the error in plain language alongside GitCoach's built-in help:
Error: failed to push some refs to 'origin/main'
+--------------- AI Explanation ------------------+
| |
| Your local branch is behind the remote. Pull |
| the latest changes first with 'git pull', then |
| try pushing again. |
| |
+-------------------------------------------------+
When merge conflicts occur, GitCoach shows both versions and offers 5 options — including asking Copilot for a recommendation:
Your version (local):
name: master-version
Remote version:
name: feature-version
? What do you want to keep?
> Keep my version (local)
Keep the remote version
Keep both (combine)
Edit manually in my editor
Ask Copilot AI
Copilot suggests: CUSTOM
Neither version alone is correct. The optimal solution
is to keep a merged version that maintains backward
compatibility while accommodating the feature.
? Accept this suggestion? (Y/n)
All Copilot responses respect your language configuration (English, French, or Spanish).
The AI layer is provider-agnostic. GitHub Copilot CLI is the default, but you can switch to a local Ollama model (no API key, fully offline) from Settings → AI Provider — useful for privacy or working without Copilot.
Create, switch, merge, and delete branches with guidance:
? Select an option
> Create a new branch
Switch branch
Merge a branch
Delete a branch
Back
English, French, and Spanish. Localized confirmations:
- English:
(Y/n) - French:
(O/n) - Spanish:
(S/n)
| Command | Description |
|---|---|
gitcoach |
Launch interactive menu |
gitcoach quick |
Fast commit + push (expert mode) |
gitcoach init |
First-time setup |
gitcoach config |
Change settings |
gitcoach stats |
View your statistics |
- TypeScript - Type-safe code
- Inquirer.js - Interactive prompts
- simple-git - Git operations
- cross-spawn - Safe, shell-free AI CLI calls
- i18next - Internationalization
- Chalk - Terminal styling
- Jest - 557 tests
git clone https://github.com/DNSZLSK/gitcoach-cli.git
cd gitcoach-cli
npm install
npm run build
npm test
npm link
gitcoach
gitcoach-cli/
├── bin/ # CLI entry point
├── src/
│ ├── commands/ # CLI commands
│ ├── config/ # Configuration management
│ ├── i18n/ # Translations (en, fr, es)
│ ├── services/ # Git ops + AI providers (ai/: Copilot, Ollama)
│ ├── ui/
│ │ ├── components/ # Reusable UI components
│ │ ├── menus/ # Interactive menus
│ │ └── themes/ # Color themes
│ └── utils/ # Helpers, validators
├── test/ # 557 tests
└── docs/ # Documentation
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- npm: npmjs.com/package/gitcoach-cli
- GitHub: github.com/DNSZLSK/gitcoach-cli
- DEV.to: GitCoach — GitHub Copilot CLI Challenge
- Issues: github.com/DNSZLSK/gitcoach-cli/issues
DNSZLSK — CDA Student at AFPA, France
Built for the GitHub Copilot CLI Challenge 2026.
MIT