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

@johnhenry/objectify-cli

v0.0.2

Published

Persistent, versioned JSON objects backed by SQLite — a stateful, agent-friendly CLI.

Readme

@johnhenry/objectify-cli

npm version

objectify — persistent, versioned JSON objects backed by SQLite. A stateful, agent-friendly CLI: create an object, use it to read/write state, log / diff / rewind through its version history, fork an independent copy.

Full CLI reference, architecture notes, and "designed for agents" docs live at https://opensource.johnhenry.me/objectify/.

This is the first npm distribution of the objectify CLI. The CLI has existed as a cargo build --release / GitHub-release binary before now — this package (and its five per-platform siblings) is a new packaging story, not an import of a previously-published npm package. Versioning starts at 0.0.0, matching this project's usual convention for a package's first appearance under the @johnhenry scope, extended here to cover "first npm appearance at all," since there's no prior npm version to restart from. Named objectify-cli rather than plain objectify because @johnhenry/objectify is this project's TypeScript adapter package — the CLI command you actually run is still objectify, only the npm package name differs.

Install

npm install -g @johnhenry/objectify-cli

or run it without installing:

npx @johnhenry/objectify-cli --help

How this works

This package is a thin ~100-line Node.js shim (bin/objectify.js). It ships no compiled code itself — it detects your OS/architecture at runtime and delegates to the real binary, which lives in one of six tiny per-platform packages:

| Package | Platform | |---|---| | @johnhenry/objectify-cli-darwin-arm64 | macOS, Apple Silicon | | @johnhenry/objectify-cli-darwin-x64 | macOS, Intel | | @johnhenry/objectify-cli-linux-x64 | Linux, x64 (glibc) | | @johnhenry/objectify-cli-linux-arm64 | Linux, arm64 (glibc) | | @johnhenry/objectify-cli-linux-x64-musl | Linux, x64 (musl, e.g. Alpine) | | @johnhenry/objectify-cli-win32-x64 | Windows, x64 |

npm install only downloads the one matching your machine — it's listed as an optionalDependency with os/cpu fields, which is how npm decides which optional dependencies to actually fetch. This is the same pattern used by esbuild, @swc/core, and turbo. No postinstall script runs and no network request happens beyond npm's own package resolution — see bin/objectify.js for the full resolution logic and error messages if the right platform package didn't get installed.

Platform support

Linux x64/arm64 builds target glibc. Linux x64 also has a separate musl build for Alpine-based images; bin/objectify.js detects musl at runtime (via process.report, falling back to ldd --version) and picks it automatically. There is no arm64 musl build yet; Alpine on arm64 is unsupported.

Integrity

Every package published from CI carries an npm provenance attestation (Sigstore-backed, tying the published package back to the exact GitHub Actions run, commit, and source repo that built it) — check with npm audit signatures after installing.

On top of that, this package ships a checksums.json manifest pinning the expected SHA-256 of each platform binary for this version. Before executing anything, bin/objectify.js hashes the resolved binary and compares it against the pinned value, refusing to run on a mismatch. This is defense-in-depth on top of provenance, not a replacement for it — see bin/objectify.js (verifyChecksum) for details.

License

MIT — see LICENSE.