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

model-tides

v2.1.1

Published

Opt-in local model usage snapshots for Model Tides

Readme

Model Tides CLI

Run npx model-tides@latest upload with Node.js 24 or newer to discover local OpenCode, Codex, Claude Code, Pi, GitHub Copilot CLI/desktop, and VS Code built-in Copilot Chat history, review the exact weekly model counts, and create a personal chart link. Anyone with the link can view the weekly counts. A new upload does not enter the community aggregate. Use contribute after reviewing all stored counts to opt in; use withdraw to remove existing contributions without losing your chart. Reports created before this change stay in the aggregate until their owner withdraws. The CLI reads live OpenCode SQLite databases and old zstd-compressed Codex rollouts with Node built-ins; it needs neither Python nor a separate zstd command.

To export local history without sharing it, run npx model-tides@latest export --output model-tides.json. Export works offline and never overwrites an existing file. The v2 JSON holds model/day counts, without session IDs or exact times; keep it private. Pass it to upload --input model-tides.json or gist --input model-tides.json to review weekly active session-days before sharing. Old v1 event exports cannot recover this metric; rescan original history.

Nothing is uploaded until you type YES. The CLI sends Brotli-compressed week/model/count pairs and a coarse OS label for the uploading machine. The Worker records the uploading network's country if available; neither field identifies where the past activity happened. It never sends prompts, responses, exact event times, paths, session IDs, message IDs, or the source databases. Review the model names in the preview: historical names and provider-specific aliases are uploaded exactly as shown. Your contribution uses a separate local private key, kept under ~/.config/model-tides/contribution.json (or XDG_CONFIG_HOME/model-tides/contribution.json). To use Donate your data on your personal chart, run model-tides key in an interactive terminal, confirm with YES, and copy the key into the form. The command never sends it over the network or prints it when output is redirected. Keep it out of URLs.

An upload prints your personal chart link immediately. unshare hides it without changing the aggregate; share makes a hidden chart available again after reviewing all stored counts. link prints its address without scanning or contacting the site. Every opted-in model-week appears on the homepage. If gh is installed, the upload preview offers GIST instead of the site upload; gist also works as a separate command. A gist is unlisted, not private. Its modeltides.dev/gist#<owner>/<id> viewer fetches directly from GitHub; Model Tides receives neither the gist address nor its file until the viewer chooses to donate those counts.

Before share asks for YES, it shows every stored week, including weeks retained from earlier uploads. The Worker rejects sharing if counts change after review.

To use an exported daily JSON, run npx model-tides@latest upload --input model-tides.json. Run upload --rotate or upload --delete to manage the key or delete all stored counts. If you prefer a GitHub link for just the weekly counts, run npx model-tides@latest gist [--input model-tides.json] with an authenticated gh CLI. After YES, it creates an unlisted gist: anyone with the URL can read it, and GitHub keeps previous revisions. It never includes exact times or session IDs. Run npx model-tides@latest help for all commands. See the project documentation for details.