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

cache-guard

v0.1.1

Published

CI guard for LLM prompt-cache prefixes — fails the build when a system prompt or tool list changes unintentionally.

Readme

cache-guard

CI guard for LLM prompt-cache prefixes — fails the build when a system prompt, tool list, or first message changes unintentionally.

Why: providers (Anthropic, OpenAI, Gemini, Grok) serve repeated prompt prefixes from cache at ~10% of list price. One "harmless" edit to a system prompt silently invalidates that cache in production and 10x-es the token bill. cache-guard pins the cache-relevant prefix blocks of your prompt fixtures and turns that silent regression into a red build.

Usage

Keep one or more request-body fixtures (Anthropic Messages API shape) in your repo, then:

npx cache-guard snapshot fixtures/*.json   # write .cacheguard.json baseline
npx cache-guard check    fixtures/*.json   # exit 1 if any prefix hash changed

In CI:

- run: npx cache-guard check fixtures/*.json

When a change is intentional, refresh the baseline with snapshot and commit .cacheguard.json.

  • CACHE_GUARD_FILE — override the baseline path (default .cacheguard.json)
  • Hashes cover the blocks that decide cache hits: tools, system, and the first message. Nothing else in the fixture matters to the guard.

Made by Caching.ai — a drop-in proxy that watches, protects, and keeps your LLM prompt cache warm.