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

opencode-scriptbox

v0.1.2

Published

Closed-world registry of reusable agent utility scripts for OpenCode: descriptive names plus one-line purpose headers, listed on demand.

Downloads

269

Readme

opencode-scriptbox

A closed-world registry of reusable agent utility scripts for OpenCode. Scripts run via shell — this plugin exposes them, never executes.

Built on the OpenCode 2.x plugin API only. No 1.x support.

Every session rediscovers the same helpers — the PNG diff, the log census, the report shaper — and each time they come back slightly different, living in /tmp or inlined into a heredoc that vanishes with the turn. Past sessions evaporate, so agents reinvent instead of reuse. Scriptbox gives those helpers one canonical home: a user-level directory where each script carries a header contract, gets indexed on every read, and shows up on demand as a single purpose line. Nothing enters context by merely being on disk — only scripts with a valid name and header are visible, and everything else in the directory stays private by default.

Filenames are lowercase alphanumeric-and-hyphens with a .py or .sh suffix, descriptive enough to read (png-compare.py, never tmp-1.py). The leading header carries a purpose: one-liner of at most 140 characters plus an optional usage: line:

"""purpose: Compare baseline vs verify screenshots, print bbox diff.
usage: python3 png-compare.py BASE VERIFY [--json]
reads: two PNG files. writes: stdout only.
"""

Shell scripts say the same with # purpose: and # usage: comment lines. Anything without a valid name or header is ignored by the indexer, silently and completely.

Three tools in the scriptbox namespace work the registry. save takes a filename and content, validates both against the contract, and stores the script in one step — rejection happens before anything touches disk. list returns the compact catalog of name plus purpose from a live disk scan, which is the check to run before reaching for an ad-hoc heredoc. show gives back usage, path, and last-used for one script. Alongside them, a tool.execute.before hook watches shell invocations that reference registry scripts and bumps their lastUsed, quietly feeding future pruning. It never blocks or alters a call.

{ "package": "[email protected]", "options": {} }

Two options exist: { "dir": "/custom/registry/dir" } (the default home is ~/.config/opencode/scripts) and { "metrics": true }, which keeps session-aggregated counters — save, list and show calls, per-script uses and shell matches — in the registry's usage.json, capped at twenty sessions with cumulative totals. Only counts, never commands or contents, and it defaults to off.

Development

npm install --no-audit --no-fund
npm test
npm run typecheck

License

MIT.