{"id":42875363,"url":"https://github.com/DNSZLSK/gitcoach-cli","last_synced_at":"2026-02-10T06:01:08.446Z","repository":{"id":334288229,"uuid":"1140843728","full_name":"DNSZLSK/gitcoach-cli","owner":"DNSZLSK","description":"Git CLI tool with educational guidance and optional AI commit messages. Built for the GitHub Copilot CLI Challenge 2026.","archived":false,"fork":false,"pushed_at":"2026-02-06T00:09:13.000Z","size":350,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-09T22:47:53.318Z","etag":null,"topics":["ai","beginner-friendly","cli","copilot","education","git","github-copilot","multilingual","nodejs","typescript"],"latest_commit_sha":null,"homepage":"https://dev.to/dnszlsk/gitcoach-the-git-mentor-that-teaches-you-while-you-work-github-copilot-cli-challenge-1708","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DNSZLSK.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-23T20:38:16.000Z","updated_at":"2026-02-06T18:11:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/DNSZLSK/gitcoach-cli","commit_stats":null,"previous_names":["dnszlsk/git-sense"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/DNSZLSK/gitcoach-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DNSZLSK%2Fgitcoach-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DNSZLSK%2Fgitcoach-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DNSZLSK%2Fgitcoach-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DNSZLSK%2Fgitcoach-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DNSZLSK","download_url":"https://codeload.github.com/DNSZLSK/gitcoach-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DNSZLSK%2Fgitcoach-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29292053,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T03:42:42.660Z","status":"ssl_error","status_checked_at":"2026-02-10T03:42:41.897Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","beginner-friendly","cli","copilot","education","git","github-copilot","multilingual","nodejs","typescript"],"created_at":"2026-01-30T14:00:23.139Z","updated_at":"2026-02-10T06:01:08.421Z","avatar_url":"https://github.com/DNSZLSK.png","language":"TypeScript","readme":"# GitCoach\n\n```\n    ██████╗ ██╗████████╗ ██████╗ ██████╗  █████╗  ██████╗██╗  ██╗\n   ██╔════╝ ██║╚══██╔══╝██╔════╝██╔═══██╗██╔══██╗██╔════╝██║  ██║\n   ██║  ███╗██║   ██║   ██║     ██║   ██║███████║██║     ███████║\n   ██║   ██║██║   ██║   ██║     ██║   ██║██╔══██║██║     ██╔══██║\n   ╚██████╔╝██║   ██║   ╚██████╗╚██████╔╝██║  ██║╚██████╗██║  ██║\n    ╚═════╝ ╚═╝   ╚═╝    ╚═════╝ ╚═════╝ ╚═╝  ╚═╝ ╚═════╝╚═╝  ╚═╝\n```\n\n**Interactive Git assistant that prevents mistakes before they happen.**\n\n[![npm version](https://img.shields.io/npm/v/gitcoach-cli)](https://www.npmjs.com/package/gitcoach-cli)\n[![GitHub](https://img.shields.io/github/stars/DNSZLSK/gitcoach-cli?style=social)](https://github.com/DNSZLSK/gitcoach-cli)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n---\n\n## Why GitCoach?\n\nGit is powerful but brutal to beginners. Cryptic error messages, lost work from uncommitted changes, fear of breaking everything.\n\n**GitCoach is different:**\n\n- **Prevents mistakes BEFORE they happen** - Warns about uncommitted changes, detached HEAD, force push risks\n- **Educational** - Shows every Git command being executed so you learn while you use it\n- **Adapts to your level** - Beginner (verbose), Intermediate (balanced), Expert (minimal)\n- **Multilingual** - Works in English, French, and Spanish\n- **5 Copilot CLI integrations** - AI commit messages, Git Q\u0026A, error explanations, diff summaries, conflict resolution (works without it too)\n\nBuilt for the **GitHub Copilot CLI Challenge 2026**.\n\n---\n\n## Quick Start\n\n```bash\nnpm install -g gitcoach-cli\ngitcoach\n```\n\nThat's it. GitCoach guides you from there.\n\n---\n\n## Prerequisites\n\n### 1. Node.js (version 18 or higher)\n\n**Windows:**\nDownload from [nodejs.org](https://nodejs.org/) (LTS version)\n\n**Mac:**\n```bash\nbrew install node\n```\n\n**Linux (Ubuntu/Debian):**\n```bash\ncurl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -\nsudo apt-get install -y nodejs\n```\n\n### 2. Git\n\n**Windows:**\nDownload from [git-scm.com](https://git-scm.com/download/win)\n\n**Mac:**\n```bash\nbrew install git\n```\n\n**Linux (Ubuntu/Debian):**\n```bash\nsudo apt-get install git\n```\n\n### 3. GitHub Copilot CLI (Optional)\n\nFor 5 AI-powered integrations (commit messages, Git Q\u0026A, error explanations, diff summaries, conflict resolution):\n\n```bash\nnpm install -g @github/copilot\ncopilot login\n```\n\nGitCoach works perfectly fine without Copilot CLI - all core features are available.\n\n---\n\n## Features\n\n### Interactive Menus\n\nNavigate Git with simple menus instead of memorizing commands.\n\n```\n? Main Menu\n\u003e [S] Status   - View current changes\n  [A] Add      - Stage files for commit\n  [C] Commit   - Save your changes\n  [P] Push     - Upload to remote\n  [L] Pull     - Download changes\n  [B] Branch   - Manage branches\n  [U] Undo     - Undo actions\n  [H] History  - View commit history\n  [W] Stash    - Save work temporarily\n  [G] Config   - Configure GitCoach\n  [?] Help     - Ask Git questions\n  [Q] Quit     - Exit GitCoach\n```\n\n### Experience Levels\n\nGitCoach adapts to your skill level:\n\n| Level | Menu Labels | Confirmations | Warnings | Explanations |\n|-------|-------------|---------------|----------|--------------|\n| **Beginner** | Full descriptions | All | All | Shown |\n| **Intermediate** | Short descriptions | All | Most | Hidden |\n| **Expert** | Git commands | Destructive only | Critical only | Hidden |\n\nExample in Expert mode:\n```\n? Main Menu\n\u003e [S] git status\n  [A] git add\n  [C] git commit\n  [P] git push\n  [L] git pull\n```\n\n### Error Prevention\n\nGitCoach warns you BEFORE you make mistakes:\n\n**Uncommitted changes:**\n```\n+------------------- Warning --------------------+\n|                                                |\n|  You have uncommitted changes!                 |\n|  Switching branches will lose your work.       |\n|                                                |\n+------------------------------------------------+\n```\n\n**Detached HEAD:**\n```\n+--------------- Detached HEAD ------------------+\n|                                                |\n|  You are in detached HEAD state.               |\n|  Your commits may be lost if you switch        |\n|  branches without creating a new branch.       |\n|                                                |\n+------------------------------------------------+\n\n? How do you want to resolve this?\n\u003e [C] Create a new branch\n  [M] Return to main branch\n  [S] Stash changes and return\n  [I] Ignore (advanced users)\n```\n\n**Force push:**\n```\n? You are about to FORCE PUSH. This rewrites remote history.\n? Are you absolutely sure? (yes/no)\n```\n\n### Educational Mode\n\nEvery action shows the Git command being executed:\n\n```\n? Stage all files? Yes\n  \u003e git add -A\n  5 file(s) staged successfully.\n```\n\nYou learn Git while using GitCoach.\n\n### Smart Commits (Optional AI)\n\nIf you have GitHub Copilot CLI installed, GitCoach can generate commit messages:\n\n```\n? Generate message with AI? Yes\n  Generating...\n\n  Suggested: feat(auth): add OAuth2 authentication\n\n? Use this message? (Y/n)\n```\n\nWithout Copilot CLI, you write commit messages manually (conventional commits format suggested).\n\n### Git Q\u0026A (Optional AI)\n\nAsk Git questions if Copilot CLI is installed:\n\n```\n? Your question: What's the difference between merge and rebase?\n\n  MERGE creates a merge commit, preserving history.\n  REBASE rewrites history by moving commits.\n  Use merge for shared branches, rebase for local cleanup.\n```\n\n### Staged Diff Summary (Optional AI)\n\nBefore committing, Copilot summarizes your staged changes in plain language:\n\n```\n  Analyzing changes...\n\n  +-------------- Changes summary ---------------+\n  |                                               |\n  |  auth.ts: Added OAuth2 login flow             |\n  |  config.ts: New env variable for API key      |\n  |  utils.ts: Refactored error handling          |\n  |                                               |\n  +-----------------------------------------------+\n```\n\n### Contextual Error Explanation (Optional AI)\n\nWhen a Git command fails, Copilot explains the error and suggests a fix:\n\n```\n  +----------------- Error ----------------------+\n  |  fatal: not a git repository                  |\n  +-----------------------------------------------+\n\n  Copilot explains:\n  You are not inside a Git repository. Navigate to\n  a folder that contains a .git directory, or run\n  \"git init\" to create a new repository here.\n```\n\n### AI-Assisted Conflict Resolution (Optional AI)\n\nDuring merge conflicts, ask Copilot to analyze both versions and suggest a resolution:\n\n```\n  ? How to resolve conflict in auth.ts?\n  \u003e Keep local version\n    Keep remote version\n    Keep both versions\n    Edit manually\n    Ask Copilot AI        \u003c-- NEW\n    Back\n\n  Copilot suggests: LOCAL\n  The local version has the latest bug fix that\n  should be kept.\n\n  ? Accept this suggestion? (Y/n)\n```\n\nCopilot returns a structured recommendation (LOCAL / REMOTE / BOTH / CUSTOM) with an explanation.\n\n### Branch Management\n\nCreate, switch, merge, and delete branches with guidance:\n\n```\n? Select an option\n\u003e Create a new branch\n  Switch branch\n  Merge a branch\n  Delete a branch\n  Back\n```\n\n### Multilingual Support\n\nEnglish, French, and Spanish. Localized confirmations:\n- English: `(Y/n)`\n- French: `(O/n)`\n- Spanish: `(S/n)`\n\n---\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `gitcoach` | Launch interactive menu |\n| `gitcoach init` | First-time setup |\n| `gitcoach config` | Change settings |\n| `gitcoach stats` | View your statistics |\n\n---\n\n## Tech Stack\n\n- **TypeScript** - Type-safe code\n- **Inquirer.js** - Interactive prompts\n- **simple-git** - Git operations\n- **i18next** - Internationalization\n- **Chalk** - Terminal styling\n- **Jest** - 522 tests\n\n---\n\n## Development\n\n```bash\ngit clone https://github.com/DNSZLSK/gitcoach-cli.git\ncd gitcoach-cli\nnpm install\nnpm run build\nnpm test\nnpm link\ngitcoach\n```\n\n---\n\n## Project Structure\n\n```\ngitcoach-cli/\n├── bin/              # CLI entry point\n├── src/\n│   ├── commands/     # CLI commands\n│   ├── config/       # Configuration management\n│   ├── i18n/         # Translations (en, fr, es)\n│   ├── services/     # Git operations, Copilot integration\n│   ├── ui/\n│   │   ├── components/   # Reusable UI components\n│   │   ├── menus/        # Interactive menus\n│   │   └── themes/       # Color themes\n│   └── utils/        # Helpers, validators\n├── test/             # 522 tests\n└── docs/             # Documentation\n```\n\n---\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'feat: add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n---\n\n## Links\n\n- **npm:** [npmjs.com/package/gitcoach-cli](https://www.npmjs.com/package/gitcoach-cli)\n- **GitHub:** [github.com/DNSZLSK/gitcoach-cli](https://github.com/DNSZLSK/gitcoach-cli)\n- **Issues:** [github.com/DNSZLSK/gitcoach-cli/issues](https://github.com/DNSZLSK/gitcoach-cli/issues)\n\n---\n\n## Author\n\n**DNSZLSK** - CDA Student at AFPA, France\n\nBuilt for the [GitHub Copilot CLI Challenge 2026](https://dev.to/challenges/github).\n\n---\n\n## License\n\nMIT","funding_links":[],"categories":["ai"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDNSZLSK%2Fgitcoach-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDNSZLSK%2Fgitcoach-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDNSZLSK%2Fgitcoach-cli/lists"}