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

pump-clone

v0.1.11

Published

Watch pump.fun CREATE events, score them for net-new themes, and mirror the interesting ones 1:1 onto a protected-curve launchpad — with optional first buy and borrow.

Readme

pump-clone

Watch pump.fun CREATE events, score them for net-new themes, and mirror the interesting ones 1:1 onto a protected-curve launchpad.

Unaudited. Spends real money on tokens strangers just minted. Dry-run by default.

Why the naive version doesn't work

Counting word frequency over launch metadata ranks infrastructure noise above real memes — "deployed", "using", tracker handles appear in nearly every description. And "young + fast" as a novelty test badges launcher spam, because spam is always young and always fast.

So this classifies tokens into layers (grammar / chain / social / launcher / url / known-meme / signal), drops the first five, force-keeps known memes, and soft-suppresses ubiquitous words via IDF rather than banning them.

Two rules do most of the work:

  • Hapax floor. Every launch has a unique ticker. With df = 0 a burst ratio is infinite, so without a floor every token badges net-new and the bot clones the entire firehose. A theme must recur.
  • Lift, not raw count. Novelty is the token's share of recent creates over its share of the window — both are shares, so bucket sizes cancel. Comparing a 1h count against a 24h doc-frequency is just wrong.

Use

npm i -g pump-clone

pump-clone watch                    # stream + score. never spends.
pump-clone run                      # dry run: shows what it WOULD clone
pump-clone run --execute --max 0.01 --total 0.05

Spend safety

Two independent caps, both enforced in SpendGuard, not trusted to the caller:

| knob | meaning | |---|---| | maxEthPerClone | ceiling for any single clone | | maxEthTotal | ceiling for the whole process run | | cooldownSeconds | minimum gap between clones |

A per-clone cap alone is not a budget — a bot cloning every 10 minutes will spend it a hundred times. maxEthTotal is what bounds a runaway, and the last clone is truncated to whatever remains rather than overshooting.

firstBuy and borrow are off by default. borrow: true without firstBuy: true is rejected at config validation — there'd be nothing to borrow against.

Pair with nav-loop for the borrow leg.

MIT.