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

agent-pocket-protocol

v0.8.3

Published

Wire protocol, peer capabilities, and constants for the agent-pocket relay, daemon, and clients.

Readme

agent-pocket-protocol

CI codecov

Wire protocol, peer capabilities, and shared constants for the agent-pocket ecosystem. Consumed by:

  • The relay server
  • The agent-pocket Mac daemon
  • iOS and other future clients (via type generation)

Why a separate package

Both the relay and the daemon must agree on the wire format byte-for-byte. Keeping the protocol in its own versioned npm package means:

  • A protocol change is a single source of truth, not two copy-pasted directories.
  • Each consumer pins a semver range, so deploys can roll forward independently.
  • Version skew between relay and daemon is visible in lockfiles, not silent.

Workflow for protocol changes

  1. Edit protocol.ts / capabilities.ts / constants.ts / features.ts here.
  2. Run npm test locally. The contract tests verify capability/feature lists are well-formed; the wake-blob fixture tests verify the cross-language encrypted-payload format has not drifted.
  3. Bump version in package.json. Additive changes -> minor. Removals or incompatible shapes -> major, following the capability-deprecation pattern.
  4. Add the release notes to CHANGELOG.md and merge the change to main.
  5. Publish only through GitHub Actions: create and push a signed or annotated tag named vX.Y.Z from the release commit. The publish workflow verifies the tag matches package.json, runs build and tests, then publishes to npm with provenance.
  6. Do not run npm publish from a local machine. The repository secret NPM_TOKEN must be configured in GitHub for the workflow to publish.
  7. In each consumer (agent-pocket monorepo, agent-pocket-daemon repo), bump the agent-pocket-protocol dependency, then implement the new behavior.

Tests

npm install
npm test

Tests live alongside the source in test/, with synthetic fixtures in fixtures/. They are excluded from the published tarball — only the compiled dist/ ships to npm.

Install

npm install agent-pocket-protocol
import { PEER_CAPABILITIES, WIRE_VERSION_CURRENT } from 'agent-pocket-protocol';

License

MIT.