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

revis-cli

v0.1.1

Published

Passive distributed workspace coordination for coding agents

Readme

revis — distributed + multiplexed autoresearch

Install · Usage · How it works · License

Run parallel experiment loops across agents and machines. Commits relay to other agents in real time.

Inspired by karpathy/autoresearch. This is the next step.


Revis terminal demo


Revis is not an orchestrator, framework, or harness. Revis has no opinions about how your agents work. It just makes sure they can see each other's work and build on it.

How it works

Revis does 3 things:

  1. It creates isolated local clones with stable coordination refs like revis/alice/agent-3/work.
  2. It runs a daemon that pushes those refs, fetches everyone else's revis/* refs, and relays commit summaries into local tmux sessions.
  3. It promotes one chosen workspace into managed trunk or into a pull request.

The coordination loop looks like this:

┌───────────────────────┐   post-commit    ┌──────────────────────┐   push / fetch    ┌─────────────────────────┐
│ workspace clone       │ ───────────────► │ revis daemon         │ ◄──────────────►  │ revis/*/agent-*/work    │
│ tmux session + agent  │ ◄──── relay ──── │ local runtime state  │ ── rebase sync ─► │ remote coordination refs│
└───────────────────────┘                  └──────────────────────┘                   └─────────────────────────┘

Every workspace installs a post-commit hook that notifies the daemon immediately. The daemon baselines current local and remote heads on startup, so old history is not replayed, then it:

  • pushes each owned workspace HEAD to revis/<operator>/agent-<n>/work
  • fetches remote revis/*/agent-*/work refs
  • relays newly seen commit summaries into local tmux sessions
  • rebases owned workspaces onto the current sync target when trunk advances

For local revis-local coordination, that sync target is revis/trunk. For a real shared remote, it is the configured base branch.

Branch model

Each workspace has two branch concepts:

  • the stable coordination ref owned by Revis: revis/<operator>/agent-<n>/work
  • the workspace repo's current local branch, which the agent may change freely

Revis always publishes the workspace's current HEAD to the stable coordination ref. That keeps relay behavior consistent without forcing repo-specific branch naming.

The operator slug comes from local git identity:

  • first git config user.email local-part
  • then git config user.name
  • slugified to lowercase alphanumeric and hyphen

That lets multiple operators share one remote without colliding.

Promotion

revis promote <agent-id> is operator-only.

Before promotion, Revis pushes the workspace's current HEAD to its stable coordination ref.

  • In managed-trunk mode (revis-local), Revis merges that coordination ref into revis/trunk, then the daemon rebases other local workspaces onto the new trunk head.
  • Against a real shared remote, Revis pushes the coordination ref and opens or reuses a GitHub pull request targeting the configured base branch.

Runtime files

Revis keeps its local runtime state under .revis/:

.revis/
  config.json
  coordination.git/        # only in revis-local mode
  runtime/
    daemon.json
    relays.json
    events.jsonl
    workspaces/
    activity/
  workspaces/
    agent-1/
      repo/
        .revis/
          agent.json
          last-relayed-sha
          hook-client.cjs

These files are local operator state. revis init adds the local runtime paths to .gitignore.


Install

npm install -g revis-cli

Or run it directly:

npx revis-cli --help

After install, the command is still:

revis --help
npm install
npm run build
npm link

Requirements

  • Node 20+
  • git
  • tmux
  • gh on your PATH if you want PR-based promotion against a GitHub remote

Usage

1. Initialize coordination

revis init

revis init prefers origin, otherwise uses the only configured remote, otherwise creates .revis/coordination.git as a local bare coordination remote.

2. Spawn workspaces

revis spawn 4 --exec 'codex --yolo'

Use revis spawn N if you only want the workspaces and daemon. Use --exec '<command>' when you also want Revis to start something inside each workspace tmux pane.

Revis does not care whether that command is Codex, Claude, or anything else that makes sense in a tmux session.

3. Monitor and attach

  • revis status prints a compact table with workspace state and attach commands.
  • revis monitor opens an Ink TUI with workspace activity and event streams.
  • Enter or a attaches, j and k move, Tab or 1 and 2 switch panes, r refreshes, and q quits.

Development

npm install
npm run typecheck
npm test
npm run build

License

MIT