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

@neverending/gitmirror

v1.0.2

Published

Command line tool for mirroring one or more git repositories

Readme

GitMirror

Cross-platform command line utility for maintaining Git mirrors

The GitMirror project is a lightweight script for maintaining mirrors of git repositories on multiple different servers.

Installation

npm install @neverending/gitmirror
# or
yarn add @neverending/gitmirror
# or
pnpm add @neverending/gitmirror

GitMirror also provides a command line interface (CLI) that can be installed globally by passing the -g flag when installing.

Configuration

Execution of the sync script requires a configuration file in JSON format. By default, the script will look for a file called mirrors.json in the current working directory. The schema for the configuration file is as follows:

{
  "repo": {
    "origin": "URL to repository being mirrored",
    "mirrors": {
      "mirror": {
        "url": "URL to repository to mirror to",
        "push": ["list of branches to push [optional]"],
        "fetch": ["list of branches to fetch for two-way sync [optional]"]
      }
    }
  }
}

Origins

The top-level object contains the list of repositories to mirror. Any number of repositories may be given and the key for each will be used as the folder name for the clone and as the keyword for the --repos argument when explicitly syncing repositories.

Mirrors

Within the repository object, two keys must be provided: origin and mirrors. The origin key's value is the URL of teh repository being mirrored. The mirrors key's value is an object where each key in the object is a remote repository to mirror to. The keys in mirrors are used as the keyword for the --mirrors argument when explicitly syncing mirrors.

Within the mirror object, one key is required: url. The url key's value is the location of the repository to mirror to. There are also two optional keys: push and fetch. The push key is a list of branches to push to the mirror (if not given, all branches are pushed). The fetch key is a list of branches to fetch from the mirror and push back to the origin (if not given, no branches will be fetched from the mirror).

Execution

Typically, all that needs to be done is to execute the gitmirror command. Any errors that occur will have to be handled independently. Additional help on executing the script can be output by passing any of three arguments to the script: -h, --help, or -?.

Example Execution

The following are a few examples of executing the script:

  1. Display help and exit: gitmirror -?
  2. Sync everything: gitmirror
  3. Only sync repo1 and repo2: gitmirror -r repo1 repo2
  4. Only sync mirror1 and mirror2: gitmirror -m mirror1 mirror2
  5. Only sync repo1 to mirror1: gitmirror -r repo1 -m mirror1
  6. Supply location of config file: gitmirror -i myconfig.json