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

lobby-cli

v0.4.3

Published

A multiplayer lobby for your Claude Code session — open a lobby, friends join from any laptop, everyone shares the live TUI. tmux + SSH, no daemon.

Downloads

1,134

Readme

lobby

A multiplayer lobby for your Claude Code session. You open a lobby and send a six-character code; a friend joins from any laptop and lands in the same live Claude Code TUI — prompting the same agent, on your fully-configured machine. Like a game lobby, for AI pair programming.

No custom client, no daemon: tmux + tmate + SSH do the sharing. Full-trust by design — the host is present, and joiners are people you'd hand the keyboard to.

Prefer the browser? Lobby has a web version too — same room, joined from a tab: https://claudemultiplayer.com. This package is the terminal client.

Product rationale and journey live in the knowledge graph: knowledge/tech-pod/lobby/.

Install

npm install -g lobby-cli      # then: lobby open
# zero-install:   npx lobby-cli open
# from source:    npm install && npm run build && npm link

Hosts need tmux/tmate (auto-installed via Homebrew if missing). Friends need only SSH — or npx lobby-cli join <code> with nothing installed.

Usage

lobby open                    # fresh lobby + fresh Claude; dials out to the relay and
                              #   prints a 6-char code friends join from ANY network
lobby open --local            # keep the lobby on this machine (LAN / Tailscale), no relay
lobby join K7F2QX             # join a lobby by its 6-char code
lobby join ming@host          # join a --local lobby over LAN / Tailscale SSH
lobby invite                  # reprint the join command full-width + copy it
lobby who                     # who's in the lobby right now
lobby status                  # list running lobbies + collaborator counts
lobby close                   # end a lobby (occupied lobbies need --force)
lobby close --all             # sweep every lobby you have running

Every open starts a fresh lobby (lobby, lobby-2, …) running a fresh claude — resume a past conversation with /resume inside the session. --name <lobby> rejoins a specific lobby; --cmd "<command>" overrides what runs; --no-panel / --no-attach / --no-install are for scripting.

Sending a code (the default)

lobby open runs the session on tmate — both laptops dial out to Lobby's relay (relay.sharewithlobby.dev), so it works behind any NAT: no port-forwarding, no Remote Login, no key exchange. It registers a short code with the control-plane and copies it to your clipboard:

lobby join K7F2QX                           # your friend, from any laptop
https://sharewithlobby.com/j/K7F2QX         # …or a clickable link to paste in Slack / DM

The code is the credential — treat it like a secret; lobby close invalidates it (codes also expire on their own). Plain SSH works too for friends without the CLI — the join link shows the exact command. Add --read-only when joining to spectate.

The presence pane

open splits a narrow sidebar: live collaborator count, joiner names (each lobby join self-registers via the control-plane presence layer), the shared grid size, and the invite hint. Pure tmux, no daemon. --no-panel to disable; lobby who is the on-demand roster.

How it works

| Piece | Mechanism | |-------|-----------| | Shared view + input | one tmux session, multiple attached clients | | Cross-network reach (default) | tmate relay — both sides dial out, works behind NAT | | Short codes | a control-plane maps a 6-char code → the relay target | | LAN / Tailscale (--local) | direct SSH to the host's tmux | | Read-only | tmux attach -r / tmate's ro-… token |

Layout

src/
  cli.ts            entry: parse argv + dispatch
  commands/         one file per verb: open, join, close, status, invite, who, panel
  lib/              proc, args, config, controlplane, cpstate, deps, tmux, tmate,
                    roster, termsize, clipboard

Develop

npm run dev -- open --no-attach    # run from source via tsx
npm test                           # unit tests
npm run typecheck