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

@marrowid/cli

v0.1.4

Published

Command-line client for Marrow hosted API ingest, query, and usage workflows

Readme

Marrow CLI

The Marrow CLI is a hosted API client for the public account workflow. It keeps the surface small: configure a key, ingest a source, check job status, query evidence, and manage keys.

Install

npm view @marrowid/cli version
npm install -g @marrowid/cli
marrow --help

Continue only after the version lookup returns a version. If the package is not available to your registry yet, wait for access before running the install command.

The package installs the marrow command and requires Node.js 20 or newer. If your shell cannot find marrow after a global install, check that your npm global bin directory is on PATH:

npm config get prefix

You can still run the installed package through npm:

npm exec -- marrow --help

Before continuing, verify the three discovery commands work:

marrow --help
marrow api --help
marrow api configure --help

Configure

Create an account at console.marrow.id, copy the one-time API key from the console, and store it locally:

marrow api configure
marrow api config

The hosted API endpoint is https://api.marrow.id by default. Use --api-base-url or MARROW_API_BASE_URL only when Marrow support gives you a different endpoint.

api configure stores the hosted API endpoint and API key in ~/.marrow/config.json with file mode 0600. It uses a hidden prompt by default and never prints the stored key back. For non-interactive automation, set MARROW_API_KEY for that one setup command only, then unset it.

api config reads the local configuration and reports the config path, endpoint, and whether a key is present. It never prints the key.

Set MARROW_CONFIG_PATH=/path/to/config.json for isolated test or CI runs that must not read or write your normal ~/.marrow/config.json.

Ingest

Preview a public URL before writing anything:

marrow api ingest-url --dry-run --dated-at 2026-05-16 https://example.com/my-bio

Queue the live ingest when the preview looks right:

marrow api ingest-url \
  --dated-at 2026-05-16 \
  https://example.com/my-bio

For a local Markdown, text, PDF, HTML, or JSON file:

marrow api ingest-file --dry-run --dated-at 2026-05-16 ./source.md
marrow api ingest-file --dated-at 2026-05-16 ./source.md

Live ingest requires a source date. Use the authored, published, or otherwise source-relevant date for the material.

If the file is writing you authored in your own voice, add --style-sample to the dry run and live ingest commands. Do not use that flag for third-party articles, interviews, transcripts, scraped pages, or material written by someone else.

Ingest commands print a short human-readable status by default. Add --json only when an integration needs the structured API response.

Job Status

Queued ingest appears in the recent jobs list. Poll until the job reaches succeeded, failed, or quarantined:

marrow api ingest-jobs --limit 5
marrow api ingest-job <job_id>

Use --json on the live ingest command when an integration needs the returned job id for marrow api ingest-job <job_id>.

Query

After an ingest succeeds, ask one concrete evidence question:

marrow api query "What evidence supports my current work?" --limit 5 --evidence-limit 3

The default output is a compact extractive answer with numbered citations and source excerpts. It is not a generated chat answer. Add --json only when an integration needs the structured API response.

Usage

Check credits and request limits from the CLI:

marrow api usage

The default output is human-readable and shows remaining credits, request limits, and UTC reset dates. The command uses the public /v1/account/usage endpoint and works with account, ingest, or query scoped keys. Add --json only when an integration needs the structured response.

API Keys

List keys, create a replacement, or revoke an old key:

marrow api api-keys
marrow api create-api-key --name "Laptop CLI"
marrow api create-api-key --name "Query only" --scope query
marrow api create-api-key --name "Ingest and query" --scope ingest --scope query
marrow api revoke-api-key <api_key_id>
marrow api rotate-api-key <api_key_id>
marrow api delete-api-key <api_key_id>

Omit scope flags to create an ingest,query key. Repeat --scope to add one or more explicit public scopes. Existing automation may keep using the legacy comma-separated --scopes ingest,query form.

Add account only for keys that need account overview or API key lifecycle access. Do not use any scopes outside account, ingest, and query; the public CLI rejects them.

Scope summary:

| Scope | Use for | | :-------- | :------------------------------------------------------------- | | account | Account overview, key listing, key creation, rotation, revoke | | ingest | Source submission and ingest job status | | query | Source-backed evidence retrieval |

marrow api usage works with account, ingest, or query scoped keys. Key management commands require the current key to include account. If your current key does not include account, create the replacement in the console or configure an account-scoped key first.

revoke-api-key disables a key so it can no longer authenticate. Use it for lost, rotated, or retired keys. delete-api-key only removes an already revoked or expired key record from the account list; it is not a substitute for revocation.