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

@veriova/ctxlint

v0.1.5

Published

Lint your AI coding context: find drift, bloat, staleness and gaps across CLAUDE.md, .cursor/rules, AGENTS.md and copilot-instructions. The free CLI from Veriova.

Readme

ctxlint

Lint your AI coding context. The free CLI from Veriova.

Your team runs Claude Code, Cursor and Copilot, each reading its own instruction files (CLAUDE.md, .cursor/rules, AGENTS.md, copilot-instructions.md). Engineers edit one and forget the others. Files bloat past the token budget where models stop following them. Rules go stale while the codebase moves on. Result: every AI tool on your team works from different, outdated instructions, and ships code that ignores your standards.

ctxlint finds that rot in seconds:

npx @veriova/ctxlint
ctxlint: AI context report

Found 6 context files:
  CLAUDE.md                       [Claude Code]   ~9,210 tokens
  .cursor/rules/base.mdc          [Cursor]        ~2,140 tokens
  apps/api/CLAUDE.md              [Claude Code]   ~1,830 tokens  204d stale
  ...

Findings:
  ▲ [token-bloat] CLAUDE.md is ~9,210 tokens: above the ~8,000-token budget where rule-following degrades.
  ▲ [drift] CLAUDE.md and .cursor/rules/base.mdc cover the same scope for different tools but share <20% of rules.
  ▲ [stale] apps/api/CLAUDE.md last changed ~204 days before the repo's latest commit.
  ℹ [coverage] "apps/web" has Cursor rules but no CLAUDE.md: Claude Code users there get no instructions.

What it checks

| Rule | What it catches | |---|---| | token-bloat | Context files past the ~8k-token attention budget (models skim or ignore the rest) | | stale | Rules untouched for 90+ days while the repo keeps moving | | drift | Same scope, different tools, almost no shared rules: your AIs disagree | | duplication | Near-identical rules copy-pasted across tools: divergence waiting to happen | | coverage | A directory instructs one tool but leaves the others blind | | legacy | Deprecated formats (.cursorrules) |

CI

ctxlint exits non-zero on errors, so it drops straight into CI:

- run: npx @veriova/ctxlint

Supported files

CLAUDE.md / CLAUDE.local.md · .cursor/rules/**/*.{md,mdc} · .cursorrules · AGENTS.md · .github/copilot-instructions.md · GEMINI.md · .windsurfrules Found at the repo root and nested (monorepos welcome).

From the CLI to your whole team

ctxlint finds the rot in one repo, on one machine, for free. It stays free.

But the rot is an org problem: every repo, every engineer, every AI tool drifting apart. Fixing it once locally does not keep it fixed across the team. That is what Veriova does: it hosts one source of truth for your organization's AI context, generates the per-tool files from it, keeps them in sync across repos and people, and gives you an audit trail of what changed and why.

  • ctxlint (this CLI): scan and lint, free, local and CI.
  • ctxlint compile: one canonical source, generated per-tool files, so you never hand-edit a generated file again. (Coming next.)
  • Veriova: the same thing for the whole org. Shared context, team sync across repos, drift checks on PRs, and a record of every change.

MIT. Built by Veriova.