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

mage-cli

v3.0.3

Published

Full-stack boilerplate manager and CLI.

Downloads

402

Readme

⚡ mage

The Centralized Full-Stack Boilerplate Manager.

🎯 The Problem

Every developer knows the pain of starting a new project:

  • "Which framework should I use this time?"
  • "How do I configure TypeScript and Linter again?"
  • "Where is that old project of mine so I can copy the database structure and Docker configurations?"

Configuration Fatigue makes us waste precious hours just preparing the ground, dealing with outdated documentation, and copying and pasting files from previous projects. This generates inconsistency in architecture, delays the start of real development, and demotivates the team.

🚀 The Solution: Mage CLI

Mage CLI was born to eliminate this friction. It works as a unified hub for all your boilerplates, whether they are frontend (React, Vue, Angular) or backend (Node.js, Python, Java, PHP).

Instead of memorizing repository URLs or keeping outdated "base project" folders on your machine, Mage allows you to start any architecture based on solid patterns in seconds, always downloading the latest version directly from the source. Best of all: it already renames the project and prepares the git repository for you!


💻 How it Works

1. Global Configuration (Only once)

Connect Mage to your menu file (where your boilerplates are mapped):

mage config set menu-url https://raw.githubusercontent.com/user/repo/main/menu.json

You can also toggle the wizard animation:

mage config set show-animation false # to disable
mage config set show-animation true  # to enable (default)

To see your current configuration:

mage config show

Help and Commands

Mage CLI is self-documented. You can always see the available commands and options by running:

mage --help
# Or for a specific command:
# mage config --help

2. Starting a New Project

Just run the main command in your terminal:

mage do

Mage will ask friendly and interactive questions:

  1. What do you want me to do? (You navigate through a menu with arrow keys: Frontend -> React, etc.)
  2. What is the name of the new project?

Once done, Mage clones the boilerplate in real-time, removes the original .git history, applies the new configured name to the files, and initializes the clean project for you to start programming immediately.

3. Project Commands (Project Scripts)

If you are inside a project that contains the magerc.json file, the mage do command enters local mode. It reads the project's standardized scripts and displays a quick execution menu, ideal for running workflows without having to remember the exact Makefile or npm commands:

⚡ mage Project Scripts
──────────────────────────────────────────────────
? What do you want me to do? (Use arrow keys)
❯ Start Development Server (make dev) 
  Run Tests (make test) 
  Generate CRUD (make generate) 

⚙️ How to configure your own Boilerplates

Mage is completely independent. For a boilerplate to take full advantage of the tool, just add a magerc.json file to the root of your repository:

Example of magerc.json:

{
  "scripts": [
    {
      "name": "Start Development Server",
      "command": "make dev"
    },
    {
      "name": "Run Tests",
      "command": "make test"
    }
  ],
  "replacements": [
    {
      "path": "package.json",
      "pattern": "backend-node"
    }
  ]
}
  • scripts: Maps the commands of that boilerplate (Make, npm, composer) to beautiful and navigable options in the menu.
  • replacements: Teaches Mage to find a specific literal string (such as the original name of the boilerplate, "backend-node") in a file and replace it with the name chosen by the user at the time of generation.

menu.json Structure

To organize your boilerplates, you must create a menu.json file. It supports nested categories for easy navigation.

Example of menu.json:

{
  "name": "My Boilerplates",
  "items": [
    {
      "name": "Frontend",
      "type": "category",
      "items": [
        {
          "name": "React + Vite",
          "type": "boilerplate",
          "url": "https://github.com/user/react-boilerplate"
        }
      ]
    },
    {
      "name": "Backend",
      "type": "category",
      "items": [
        {
          "name": "Node.js + Clean Architecture",
          "type": "boilerplate",
          "url": "https://github.com/user/node-boilerplate"
        }
      ]
    }
  ]
}

Tech Stack: TypeScript, Commander, Inquirer.