@easygit/cli
v1.3.9
Published
An interactive terminal GUI for Git — stage, commit, push, branch, stash and more with numbered menus. No git commands needed.
Maintainers
Readme
EasyGit 🚀
EasyGit is an interactive, user-friendly Terminal GUI for Git — built for everyone from beginners to pros.
Tired of forgetting complex Git commands? Scared of messing up your repository? EasyGit gives you a beautiful, fully interactive menu right in your terminal. Every action shows the equivalent Git command so you learn as you go.
🎯 Who is this for?
| User | Why EasyGit | |------|-------------| | 🧑🎓 Beginners & Students | Visual menus + built-in tutorial — no Git knowledge required | | 🎨 Designers & Artists | Push assets without ever memorising command-line syntax | | ⚡ Pro Developers | Faster workflow — no typing, just pick and go |
📥 Installation
Prerequisites: Node.js ≥ 18 and Git installed.
npm install -g @easygit/cliThen run from any folder:
easygit(On Mac/Linux, if you get a permissions error: sudo npm install -g @easygit/cli)
🛠️ Usage
______ _______ __
/ ____/___ ________ __/ ____(_) /_
/ __/ / __ `/ ___/ / / / / __/ / __/
/ /___/ /_/ (__ ) /_/ / /_/ / / /_
/_____/\__,_/____/\__, /\____/_/\__/
/____/
Git, made easy for everyone.
🔐 GitHub: logged in as Tanay (@Tanay2920003)
What would you like to do?
1. 📋 Check Git Status 2. ➕ Stage Files (Add)
3. ✅ Commit Changes 4. ⬆️ Push to Remote
5. ⬇️ Pull from Remote 6. 🌿 Branch Manager
7. 📊 View Branch Graph 8. 📜 View Recent Commits
9. ↩️ Undo / Revert 10. 📦 Stash Manager
11. 🌐 Clone a Repository 12. 🎮 Demo / Playground Mode
13. 🎓 Tutorial — Learn Git with EasyGit 14. 🛠️ Setup / Configuration
15. ⚙️ Settings & Updates
0. 🚪 Exit EasyGit
✔ Enter choice:✨ Features
🚀 First-Run Onboarding Wizard
When you launch EasyGit for the first time it automatically checks your setup and walks you through:
- Git installation — detects if Git is missing and tells you exactly how to install it
- Git identity — configures
user.name&user.emailinteractively - GitHub login — one-time device-flow OAuth, no password ever needed again
🔐 GitHub Login (Device Flow OAuth)
Log in to your GitHub account directly from EasyGit — no browser redirects, no passwords.
- Enter a 6-digit code at
github.com/login/device(shown in the terminal) - Token is saved locally in
~/.easygit.json - Works for public and private repos
- SSH URLs are auto-converted to HTTPS + token
🌐 Clone a Repository — Seamlessly
When logged in, you never need to paste a URL again:
? How do you want to clone?
1) ⭐ Browse my GitHub repositories (pick from a list)
2) 🔗 Paste a URL (any git host)Pick from a live list of all your repos — private, public, organisations — sorted by recently pushed.
📋 Git Status, Staging & Committing
- See all modified, new, and deleted files at a glance
- Stage files with checkboxes — no more
git add .accidents - Smart Push: guides you to commit before pushing if there are unsaved changes
- Every action prints
↳ running: git <command>so you learn Git as you work
🌿 Branch Manager
Create, switch, delete, and merge branches from a simple numbered list.
📊 Visual Branch Graph
See your full branch + commit history graph right in the terminal (git log --graph).
📜 Commit Log & Revert
- View the last 10 commits with hash, author, and date
- Revert any specific commit — EasyGit shows you the files it touched before you confirm
↩️ Undo / Revert
- Undo last commit (keeps your changes)
- Revert a specific commit safely (creates a new undo-commit)
- Unstage all files
- Discard all changes (with a danger confirmation)
📦 Stash Manager
Save unfinished work with a label, list all stashes, and pop the latest with one keypress.
🛠️ Setup Tools
| Tool | What it does |
|------|-------------|
| .gitignore Generator | Templates for Node.js, Flutter, Python, Java |
| Git Identity | Set user.name & user.email globally or per-repo |
| Git LFS | Init LFS and track large file extensions |
| Init Repository | Start a fresh Git repo from EasyGit |
🏥 Health Check
Settings → 🏥 Health Check runs a full system report:
════════════════════════════════════════════════════
🏥 EasyGit Health Check
════════════════════════════════════════════════════
System
✅ Git installed git version 2.39.2
✅ Git identity Tanay <[email protected]>
EasyGit
✅ Installed version v1.3.8
✅ Up to date v1.3.8
GitHub
✅ Logged in Tanay (@Tanay2920003)
════════════════════════════════════════════════════
🚀 All systems go!
════════════════════════════════════════════════════⚙️ Settings & Updates
- Auto-update check on every launch (toggleable)
- Manual update check + one-click install
- Full changelog viewer
🎮 Demo / Playground Mode
Practice Git in a sandboxed fake repo — no real files touched, 100% safe.
🎓 Built-in Tutorial
New to Git? The interactive tutorial (no browser needed) covers:
- What is Git? — Core concepts simply explained
- Saving Your Work — Staging and committing
- Working with Branches — The branch workflow
- GitHub & Remotes — Push, pull, syncing
- Using Stash — Save work without committing
- Undoing Mistakes — Safely recover from errors
🤝 Contributing
Contributions are very welcome! Whether it's a bug fix, a new feature, a new .gitignore template, or a better tutorial lesson — every PR is appreciated.
Getting started
# 1. Fork the repo on GitHub, then clone your fork
git clone https://github.com/<your-username>/easygit.git
cd easygit
# 2. Install dependencies
npm install
# 3. Run locally
node index.js
# 4. Make your changes, then test them
node index.jsWhat to contribute
| Area | Ideas |
|------|-------|
| 🆕 New features | Remote manager, tag support, git diff viewer |
| 🎨 UI polish | Better colours, animations, layout improvements |
| 📄 Templates | More .gitignore templates (Rust, Go, Swift, etc.) |
| 🎓 Tutorial | Add more lessons or improve existing ones |
| 🐛 Bug fixes | Check open issues |
| 📝 Docs | Improve this README, add screenshots, add a wiki |
Submitting a Pull Request
- Fork → github.com/Tanay2920003/easygit
- Create a branch:
git checkout -b feat/my-feature - Commit your changes with a clear message
- Push and open a Pull Request against
main - Describe what your PR does and why
Code style
- ES Modules (
import/export) — no CommonJS chalkfor all terminal colours@inquirer/promptsfor all interactive prompts (input,checkbox)orafor spinners on async operations- Numbered 1/2/3 menus with
0= back/exit — norawlistorconfirm - Keep each feature in its own file (
gitActions.js,menus.js,settings.js, etc.)
Reporting bugs
Open an issue at github.com/Tanay2920003/easygit/issues with:
- Your OS and Node.js version
- Steps to reproduce
- What you expected vs what happened
📝 License
This project is licensed under the ISC License.
