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

@claycoleman/gt-wrapper

v1.1.1

Published

Enhanced Graphite CLI with custom sync/submit commands - drop-in replacement for gt/graphite

Readme

GT - Enhanced Graphite CLI

The Graphite CLI provides amazing abilities to work on your Git repo using stacked diffs. However, they paywall off some of the best features: sync (which pulls the trunk branch and restacks all local branches) and submit (which pushes your stack to the remote and adds stack PRs). This wrapper adds these features back in without paywall.

It does this by wrapping the original Graphite CLI with a python script that adds the sync and submit commands, and passes through all other commands to the original Graphite CLI – similar to how gt will pass through commands to git as well!

Installation

If you have the original Graphite CLI installed, uninstall it first:

# npm: npm uninstall -g @withgraphite/graphite-cli
# brew: brew uninstall withgraphite/tap/graphite

Requirements: Node.js 14+, Python 3, Git, GitHub CLI

Install:

npm install -g @claycoleman/gt-wrapper

Recommended Workflow

The power of stacked diffs comes from building incremental changes that depend on each other, making code review more focused and manageable. Here's the typical development flow (or check out Graphite's article):

  1. Create your feature branch:

    gt create -m "feat: some feature branch"
  2. Stack additional branches on top: You can create branches that build on previous work, creating a logical stack of changes:

    gt create -m "feat: add validation to feature"
    gt create -m "docs: update feature documentation"
  3. Submit your entire stack:

    gt submit

    This pushes your stack to GitHub and creates PRs for each branch. GT automatically adds threaded comments linking the PRs together, making it easy for reviewers to navigate the entire stack and understand dependencies.

  4. Sync as PRs get merged:

    gt sync

    As team members merge your PRs, run gt sync to:

    • Check out main and pull latest changes
    • Prompt you to delete outdated/merged branches
    • Automatically restack any remaining branches on top of the updated main

This workflow keeps your development organized, makes reviews more focused, and maintains a clean git history.

Usage

Enhanced Commands

# Smart sync with branch cleanup
gt sync

# Intelligent stack submission
gt submit

# Diff against Graphite parent
gt df

All Original Commands Work

gt co # shows your local branches
gt create -a -m "feat: this is my feature"
gt restack # moves stack onto the latest local commit of trunk
gt move --onto main # moves a branch and its upstacked branches onto main, but could be any branch
# ... everything else works exactly the same

What's Enhanced

  • sync: Pulls main, identifies merged branches, prompts cleanup, restacks
  • submit: Analyzes stack, offers submission modes, manages PR stack references with threaded comments
  • df: Shows git diff against Graphite parent branch (vs git diff which compares to HEAD)
    • Default: Shows all changes (committed + staged + unstaged) unique to current branch
    • -nw / --no-working: Show only committed changes
    • -s / --staged: Include staged changes but exclude unstaged
    • -wo / --working-only: Show only uncommitted changes
  • Everything else: Identical to original Graphite CLI v1.4.3

Uninstall

npm uninstall -g @claycoleman/gt-wrapper