npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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.

Readme

EasyGit 🚀

NPM Version NPM Downloads License Node.js PRs Welcome

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/cli

Then 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.email interactively
  • 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:

  1. What is Git? — Core concepts simply explained
  2. Saving Your Work — Staging and committing
  3. Working with Branches — The branch workflow
  4. GitHub & Remotes — Push, pull, syncing
  5. Using Stash — Save work without committing
  6. 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.js

What 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

  1. Forkgithub.com/Tanay2920003/easygit
  2. Create a branch: git checkout -b feat/my-feature
  3. Commit your changes with a clear message
  4. Push and open a Pull Request against main
  5. Describe what your PR does and why

Code style

  • ES Modules (import/export) — no CommonJS
  • chalk for all terminal colours
  • @inquirer/prompts for all interactive prompts (input, checkbox)
  • ora for spinners on async operations
  • Numbered 1/2/3 menus with 0 = back/exit — no rawlist or confirm
  • 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.