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

ghflow

v0.3.2

Published

CLI tool for handling GitFlow branches with publishing GitHub Releases

Readme

GitHub based Git Flow helper

The goal of this utility is to provide alias commands of creating release branches and merging them quickly back to the parent branch and master (trunk). Additionally, we will create a GitHub Release of master after the merge occurs, and send an email notification to inform others of these actions.

This is based on a typical git-flow setup is in use, with a single trunk (defaulting to 'master') branch is used, with a development stream branch known by default as 'dev'.

After a release branch is merged back into development and master, a GH release will be created on GitHub.

The first time you run this utility, a configuration file (~/.ghflow/config) will be generated. See the configuration section for options supported.

Configuration

Most command options can be provided as CLI parameters, but a GitHub auth token is needed and can be read from the configuration file located at ~/.ghflow/config.

In the configuration file, the following can be adjusted:

  • githubToken - GitHub Authorization token see [https://github.com/settings/tokens] for more information. This token permits access to the repository.
  • tagNameFormat - Controls the format of the tag name when applied as a GitHub Release
     Default: rel_%version%_%releaseBranch%

     %version% will be substitued with the supplied version
     %releaseBranch% will be substitued with the supplied Release Branch name
  • tagDescriptionFormat - Controls the format of the tag description when applied as a GitHub Release
     Default: Release %version% for %date%

     %version% will be substitued with the supplied version
     %date% will be substitued with the current date

General Usage

  Usage: ghflow [options] [command]

  Options:

    -h, --help                                  output usage information

  Commands:

    create-release|cr [releaseBranch]           Create a new release branch
    merge-release|mr [releaseBranch]            Merge a release branch
    help [cmd]                                  display help for [cmd]

Sub-commands

The utility uses sub-commands in the style of git itself, where the 2 main functions are 'creating a release' branch, and 'merging a release branch' back into the trunk.

Create Release

ghflow create-release <branch_name> will create a branch based off of a source branch, which defaults to a branch in the repository named 'dev'. The following commands are all equal, showing the various options supported

ghflow create-release rc1234
ghflow create-release rc1234 -s dev
ghflow create-release rc1234 --source dev
ghflow cr rc1234
ghflow cr rc1234 -s dev
ghflow cr rc1234 --source dev

Merge Release

ghflow merge-release <branch_name> -v <version_name> will merge the named branch into both upstream branches following the typical git-flow approach. The default target branch names for the merge is 'dev' and 'master'. The provided version flag allows for naming the version which is used to produce the tag applied to the target trunk branch in GitHub as a release.

The name of the tag is created as: rel_<version_name>_<branch_name>

If the version is omitted, the utility will interactively prompt the user for the version name!

The following commands are all equal, showing the various options supported

ghflow merge-release rc1234 -v 11.0
ghflow merge-release rc1234 --version 11.0
ghflow merge-release rc1234 -v 11.0 -t master
ghflow merge-release rc1234 --version 11.0 -d dev
ghflow merge-release rc1234 -v 11.0 --tagtarget master
ghflow merge-release rc1234 --version 11.0 --devbranch dev

ghflow mr rc1234 -v 11.0
ghflow mr rc1234 --version 11.0
ghflow mr rc1234 -v 11.0 -t master
ghflow mr rc1234 --version 11.0 -d dev
ghflow mr rc1234 -v 11.0 --tagtarget master
ghflow mr rc1234 --version 11.0 --devbranch dev

Global Options

There are a few provided global options that can be added to any of the previous commands

-e, --email       Email Address for completion notification email
-q, --quiet       Do not send completion notification