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

@losthex/scribe

v0.2.0

Published

Lost Hex Scribe CLI

Readme

Scribe CLI

Lost Hex's command-line client for Scribe.

It exists for engagements Scribe has no repo access to: on those, the commits on your own machine are the only record of the work, so this CLI queues their metadata (repo, branch, sha, subject, timestamp, file count) and sends it to your own daily report. It never reads a diff, a file name or a message body.

Install

npm install --global @losthex/scribe

Setup

Two commands. The issuer URL is the only value anybody has to know:

scribe login --issuer https://auth.scribe.losthex.com
cd ~/dev/the-repo-you-work-in && scribe install

scribe install asks the server which engagements you are staffed to, and which of those have no server-side collector. It then tells you what it found and asks before it changes anything:

One of your engagements has no server-side collector, so this machine is
the only place its work is ever seen:

  que       Bonterra QUE (Bonterra)

Set this machine up for que? [Y/n]

What it works out for you:

  • which engagement — from your staffing. Several candidates means it shows them and asks; none means it says the CLI is unnecessary for you and installs nothing, rather than setting up something pointless
  • which repos to capture — org/repo read off this repository's origin. Narrow on purpose: nothing else on the laptop is ever looked at. Working on a second repo for the same engagement? Run scribe install in it too, and the patterns accumulate. --match <org> takes a whole org in one go
  • where to send — the /amend and MCP endpoints, named by the server itself

The issuer stays yours to supply, because it is the thing being trusted. Get it wrong and the sign-in still succeeds while every call afterwards is refused, so scribe install and scribe status say so when the issuer you are signed in against is not the one the server verifies.

Check it landed:

scribe status

Naming everything yourself

The flags still work, and still win over anything the server says — this is what a script or a provisioning step should use:

scribe install --project que --match bonterratech \
  --issuer https://auth.scribe.losthex.com \
  --amend-url https://scribe.losthex.com/amend \
  --yes

--yes accepts a single recommendation without a prompt; it will not choose between several. --offline skips asking the server at all.

Commands

scribe login [--issuer URL]      browser sign-in, tokens in the OS keychain
scribe install                   recommend an engagement, plant the hook
scribe capture                   queue the commit that just landed (the hook)
scribe flush                     push the queue to /amend
scribe amend "<note>"            one bullet on today's report
scribe mcp                       stdio proxy to the Scribe MCP server
scribe status                    auth, endpoints, engagements, hook, queue
scribe log                       everything ever sent
scribe uninstall                 remove the hook, keep the state

Using Scribe from an agent

Harnesses that speak remote-MCP OAuth take the URL directly — scribe status prints it. Everything else runs the stdio proxy:

{ "mcpServers": { "scribe": { "command": "scribe", "args": ["mcp"] } } }