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

duecard

v0.1.1

Published

A dated card with a pointer. The pointed-at thing can change. The reminder does not.

Readme

duecard

A dated card with a pointer. The pointed-at thing can change. The reminder does not.

CLI for follow-ups you meant to keep: old agent chats, x.com bookmarks, anything with a URL or session id.

Install

npm install -g duecard

Store: ~/.duecard/cards.jsonl (override with DUECARD_HOME).

From a checkout (development):

npm install
npm run build
npm link

Usage

duecard add "Check X post stats" --due 1d --url https://x.com/brooksy4503/status/2088193435140518024
duecard due
duecard list --status open
duecard show dc_01
duecard snooze dc_01 3d
duecard done dc_01
duecard drop dc_01
duecard open dc_01

--due accepts now, 2h, 1d, 3d, a calendar date (2026-08-16, local 09:00), or an ISO timestamp.

Human default is a short table. Agents pass --json.

Agent skill

Portable Agent Skill in skills/duecard/. Same SKILL.md format used by skills.sh: Claude Code, Cursor, Codex, Grok Build, and any other client that loads the open skill format.

npx skills add brooksy4503/duecard -g

# from this checkout
npx skills add ./ -g

The skill teaches the agent to call duecard … --json. The CLI must still be on PATH (npm install -g duecard). Use the CLI to change the store.

A session-start hook only needs duecard due --json (print at most 3 titles).

Agent contract

Full contract: AGENTS.md. Short version:

  • --json → stdout is only JSON
  • errors live in the JSON (ok, error); stderr only with --verbose
  • exit 0 = success and (for due) at least one card
  • exit 1 = success, nothing due / nothing found
  • exit 2 = hard error
  • no TTY prompts; never wait for stdin
  • ids are the only handle
duecard due --json

Tests

npm test

Runs against a temp DUECARD_HOME.

Plan

See PLAN.md. Phase 1 is this CLI. Phase 2 is the portable skill in skills/duecard/. A menubar wrap comes later, and only if this gets used.