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

@vanam/postfile

v0.1.0

Published

Authenticated binary file sharing for agents.

Readme

postfile

Upload one immutable file and return a share URL. This package belongs to Postfile, the binary-sharing fork of Postplan. Its credentials live separately in ~/.postfile.

Build/pack from the workspace with pnpm pack:cli. Until npm publication is configured, install postfile-cli.tgz locally or run the built executable:

node packages/cli/dist/postfile.js auth set <postfile-key>
node packages/cli/dist/postfile.js upload ./capture.png --kind screenshot --json

After installation, use postfile directly. The default API origin is https://postfile.martinvana.com. POSTFILE_API_KEY and POSTFILE_API_URL override saved credentials. --api-url overrides the URL; a saved key is sent only to its saved origin. Environment-provided keys are sent to the selected origin. HTTPS is required outside loopback. For local development, set POSTFILE_API_URL=http://127.0.0.1:8787. POSTFILE_HOME isolates local credential/retry state for tests.

postfile check ./capture.png --kind screenshot --json
postfile upload ./capture.png --kind screenshot --json
postfile upload ./recording.webm --kind recording --disposable --json
postfile upload ./sensitive.png --kind screenshot --private --json
postfile upload ./important.png --kind screenshot --pin --json
postfile list --json
postfile usage --json
postfile status <file-id> --json
postfile pin <file-id>
postfile unpin <file-id>
postfile private <file-id>
postfile unlisted <file-id>
postfile retain <file-id>
postfile disposable <file-id>
postfile delete <file-id>
postfile key create agent --json
postfile key revoke <key-id>
postfile auth clear

Unlisted links are readable by anyone with the URL. Private links require owner credentials. For browser previews, authenticate at the server's /auth route using username postfile and the key as the password, then open the private file. Never paste the key into a URL. Browsers cache Basic credentials until their authentication cache is cleared or the session ends. Revocation is checked on every private read.

Screenshots default to disposable only with explicit --kind screenshot. Other files, including GIFs and recordings, default to retained. --retain, --disposable, and --pin control cleanup independently of visibility. Eligible captures can be removed under storage pressure after seven days; this is not a promised expiry.

Limits are decimal 20 MB raster image, 50 MB GIF, and 90 MB video/other. --mime-type declares a MIME claim that must agree with the bytes to receive a preview. HTML/SVG and conflicting/unknown formats download as attachments. --metadata <json-file> adds up to 8 KB owner-only JSON.

check never reserves space. An unauthenticated check validates locally with offline: true and quotaReady: null; upload requires credentials. JSON errors are written to stdout and exit with status 1.

After a timeout, repeat the identical upload command. Pending retry state retains the idempotency key and recovers a committed receipt. Each invocation after a completed upload creates a new immutable file. --idempotency-key <key> explicitly controls retries and remains bound to the account and full manifest. A terminal failure needs a fresh key. Folder inputs are rejected. list --cursor <cursor> continues pagination.

The bundled postfile agent skill documents capture sharing, privacy, retention, and retry handling. The distributable bundles its client dependencies and shared contracts; it requires no workspace packages at runtime. The default Cloudflare service is deployed; npm publication remains a separate setup step.