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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@jmoyson/coldr

v0.1.0

Published

Run Cold emails campaigns from your terminal.

Readme

🧊 Coldr

Ship cold email campaigns from your terminal: fast, safe, and open source.

Two commands. Full control. No dashboards.

npm version License: MIT


👉 Star the repo and follow @jeremymoyson for behind-the-scenes updates and launch notes.
💬 Join the discussion: Launch ThreadIdeas

TL;DR — try it in 10 seconds

npx @jmoyson/coldr@latest hello

Instant fake campaign preview. No setup, no key, just proof it works.

Requirements

  • Node.js 18 or newer (the CLI checks this at startup and guides you to upgrade if needed).
  • A Resend API key (optional for preview and dry-run, but required for sending real emails).

Want to send your own?

Init a campaign

npx @jmoyson/coldr@latest init
cd coldr-campaign

# Edit config.json, leads.csv, suppressions.json and template.html as you like

# Optional: preview a single email
npx @jmoyson/coldr@latest preview

# Dry-run first to check everything looks good
npx @jmoyson/coldr@latest schedule --dry-run

# Then run the campaign for real:
npx @jmoyson/coldr@latest schedule --resend-api-key <your-api-key>

That’s it! Your first campaign is live, now watch cold leads warm up 🔥.

Why Coldr

Cold outreach tools are bloated, pricey, and lock you into dashboards.

Coldr stays small, local, and transparent. Built for people who prefer shipping code over managing UIs.

  • ⚙️ Terminal-native - run everything from your CLI
  • 🧾 Plain files - CSV, HTML, JSON you can version and diff
  • 🧊 Safe by default - dry-run first, send explicit
  • 💸 Free and open source - no hidden fees, no lock-in (works with Resend’s free tier)

Built for builders who’d rather own their process than rent another dashboard.

What it does

Coldr gives you everything you need to run and test campaigns in minutes.

Two commands, no setup, no guessing.

  • ⚙️ Instant scaffolding - coldr init creates config, sample leads, template, and suppressions in one go
  • 🔍 Dry-run by default - preview every send safely, even without an API key
  • 🧩 CSV-based A/B testing - add variant, subject, intro, or cta columns and Coldr renders them automatically
  • 🧾 Automatic logging - scheduled_at, resend_id, and status get written back into leads.csv
  • ✉️ Resend integration - clean scheduling, safe throttling, and retry logic built in

Troubleshooting

  • Missing API key errors? schedule stays in dry-run until you pass --resend-api-key <key>.
  • leads.csv won't load? Save it as UTF-8 with a clean header row; no blank first line, no trailing commas.
  • Variables coming through blank? Ensure your template placeholders exactly match the CSV headers (case-sensitive, no spaces).
  • Sends firing at odd hours? Align workDays/workHours in config.json with your local timezone or set the TZ env var.
  • Retry loop or throttling warnings? Check throttle and maxAttempts in config.json; aggressive values slow delivery.
  • Still stuck? Ping me on X @jeremymoyson.

Next steps

  • ⭐️ Star this repo - support the project and get notified on updates
  • 🧊 Follow @jeremymoyson for launch threads, dev notes, and roadmap drops
  • 📘 Go deeper - read docs/usage.md or check the scaffold examples
  • 💡 Want to help? - open an issue, suggest an idea, or improve the docs.

☕️ Buy me a coffee - fuels open-source mornings.

License

MIT © 2025 Jérémy Moyson

Built for builders who ship fast and want their outreach to feel the same.