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

@perpetual-lm/uraniborg

v0.1.1

Published

A Local-first CLI for iterative peer-review and revision loops for research drafts.

Readme

Uraniborg

Uraniborg is a local-first CLI for deterministic draft improvement loops.

It takes a Markdown research draft, runs an independent review pass, revises the draft against that review, records structured memory about what changed, and repeats for a fixed number of iterations.

Core loop:

draft -> peer review -> refinement -> memory update -> repeat -> final draft

Status

The v1 implementation is complete against the locked OpenSpec change and the canonical specs now live under:

Automated validation is in place, but live UAT against a real external Feynman runtime and real provider credentials is still required.

What The CLI Supports

The current CLI surface is:

  • init
    • configure Uraniborg-owned refinement settings
  • doctor
    • validate environment readiness
  • models
    • inspect review and refine model availability
  • run <file>
    • create and execute a new run
  • resume <run-id>
    • resume an interrupted run
  • history
    • list prior runs

Project Layout

  • src/
    • CLI, orchestration, review, refine, memory, config, and run state code
  • tests/
    • automated unit and smoke coverage
  • openspec/specs/
    • canonical locked specs
  • openspec/changes/archive/2026-04-24-build-uraniborg-v1/
    • archived implementation change record
  • notes/uraniborg-v1-uat-plan.md
    • structured UAT plan
  • notes/uraniborg-v1-uat-instructions.md
    • step-by-step UAT execution guide

Requirements

  • Node.js >= 20
  • npm
  • a compatible external Feynman installation available as feynman on PATH
  • credentials for the Uraniborg-owned refine endpoint you configure during init

Uraniborg does not bundle, provision, or own Feynman. Install or expose Feynman separately before running review-dependent commands.

Install

Install the CLI from npm:

npm install -g uraniborg

Then check the local environment:

uraniborg doctor

If Feynman is missing or incompatible, uraniborg doctor, uraniborg models, and run preflight report prerequisite guidance. Review-model, AlphaXiv, and web-search setup problems remain Feynman readiness issues; they are reported separately from Feynman compatibility.

Local Development

Install dependencies:

npm install

Validate the codebase:

npm run validate

Build the project:

npm run build

Run the built CLI locally:

node dist/cli/main.js --help

Quickstart

  1. Install the CLI:
npm install -g uraniborg
  1. Check prerequisites:
uraniborg doctor
  1. Configure refinement:
uraniborg init
  1. Check model availability:
uraniborg models
  1. Run a draft:
uraniborg run path/to/draft.md --iterations 1
  1. Inspect prior runs:
uraniborg history
  1. Resume an interrupted run:
uraniborg resume <run-id>

Source Checkout Quickstart

  1. Build the CLI from source:
npm run build
  1. Configure refinement:
node dist/cli/main.js init
  1. Check readiness:
node dist/cli/main.js doctor
node dist/cli/main.js models
  1. Run a draft:
node dist/cli/main.js run path/to/draft.md --iterations 1
  1. Inspect prior runs:
node dist/cli/main.js history
  1. Resume an interrupted run:
node dist/cli/main.js resume <run-id>

Run Artifacts

Uraniborg stores app state under ~/.uraniborg/.

Each run persists local artifacts including:

  • run.json
  • config.snapshot.json
  • original.md
  • current.md
  • final.md
  • information-highway.md
  • iter-N/input.md
  • iter-N/review.md
  • iter-N/refined.md
  • iter-N/changes.md
  • per-step logs

UAT

For structured acceptance testing:

Packaging

Production builds emit the CLI entrypoint at dist/cli/main.js, matching the npm bin contract. The npm package is allowlist-based and ships only dist/**, package.json, README.md, and LICENSE.