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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@mohammad-khiabani/get-hub

v2.0.1

Published

A Node.js CLI tool for browsing and downloading packages from your GitHub repositories.

Readme

⚙️ Get-hub CLI

Download your GitHub repositories right from the terminal — fast, smooth, and interactive.
A stylish command‑line tool built with Node.js to browse and clone repositories from your GitHub profile.


🚀 Features

✅ Version 1.0

  • 🎨 Clean, animated CLI interface using chalk and figlet
  • ⚡ Fast cloning via degit
  • 🧭 Interactive menu navigation with inquirer
  • 🧱 Modular architecture — clean code design
  • 🧹 Auto‑clears the terminal for a smooth UX
  • 💾 Downloads directly into the /downloads folder inside your project root

🆕 Version 2.0

  • 🔍 Allow entering any GitHub username to browse and download their repositories
  • 📁 Automatically saves each repository inside a folder named after its GitHub account

💡 About This Project

This CLI tool was created as a personal project to explore clean code practices and modular architecture in Node.js.
It’s a small step toward building more polished and developer‑friendly command‑line tools.


📦 Installation & Usage

Install Globally (Recommended)

npm install -g @mohammad-khiabani/get-hub
# Run the CLI from anywhere
get-hub

🛠 Manual Setup (from source)

# Clone the project
git clone https://github.com/Mohammad-Khiabani/Get-hub.git

# Navigate into the folder
cd Get-hub

# Install dependencies
npm install

# Run the CLI
-node ./bin/index.js

**Or
-npm start

🧩 Usage Example

? Select a project to download:
  Back
  Exit
> Get-hub
  Enigma-Machine

Your chosen repository will be downloaded into the /downloads folder — clean, fast, and ready to use.


🧠 Tech Stack

  • Node.js (ESM)
  • Inquirer – interactive CLI menus
  • Chalk / Chalk‑Animation – colors and animations
  • Figlet / Boxen – ASCII art and message boxes
  • Degit – lightweight GitHub repo downloader

🧱 Project Structure

bin/
 └── index.js            # Entry point (CLI startup)

src/
 ├── core/               # Logic flow (startup, main menu, command handlers)
 │    └── startup.js
 │    └── mainMenu.js
 │    └── commandHandler.js
 ├── ui/                 # Everything related to user interaction
 │    └── prompts.js     # Inquirer-based input (ask, select menus)
 │    └── display.js     # Output formatting, boxed messages, colors, logs
 │    └── ui.js          # UI DSL layer (ui.ask(), ui.menu(), ui.confirm())
 ├── services/           # GitHub API calls, repo listing, download logic
 │    └── githubService.js
 │    └── downloadService.js
 ├── utils/              # Small generic helpers (no UI, no API)
 │    └── clearScreen.js
 │    └── sleep.js
 │    └── fileHelpers.js
 └── constants/          # Static strings, config keys, reusable values
      └── messages.js
      └── choices.js

downloads/               # Where repositories get saved to local system

🔮 Roadmap

  • [x] Allow entering any GitHub username to browse and download their repositories
  • [x] Enable npm installation & global CLI access
  • [ ] Add support for GitLab / Bitbucket
  • [ ] Add search by keyword
  • [ ] Add dark/light CLI themes
  • [ ] Add multi‑language support (EN / FA)
  • [ ] Add pagination with a limit of 10 repositories per page
    repositories

🤝 Contributing

Contributions are welcome!
Fork this repository, create a new branch, and submit a PR.
Ideas, bug fixes, or UI tweaks — everything helps.


📜 License

This project is licensed under the MIT License.


Created by Mohammad Khiabani — exploring the beauty of simple, modular CLI design. ✨

Get-hub

A Node.js CLI tool for browsing and downloading packages from your GitHub repositories.