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

tui2web

v0.4.0

Published

Open any terminal program (like Claude Code) on your phone: tui2web claude

Readme

tui2web

Open any terminal program on your phone. It's built with Claude Code in mind.

npm install -g tui2web
tui2web claude --continue

Shell aliases and functions work too: with alias claw="claude --dangerously-skip-permissions", tui2web claw runs through your shell so the alias is found.

tui2web prints a link and a QR code. Open it on your phone to see the same terminal and type into it. Your laptop terminal keeps working normally, and both sides stay in sync.

Features

  • Works anywhere. Your computer dials out to the relay, so it works behind NAT or firewalls with no port forwarding.
  • Built for phones. There's a key row for Esc, Tab, Ctrl, arrows, ⇧Tab and ^C. A keys-only pad hides the phone keyboard for answering prompts.
  • Survives network drops and relay restarts. The session reconnects and repaints itself, and your link keeps working.

Security

The printed link contains a secret token. Opening it logs that browser in, then removes the token from the address bar. Anyone with the link can control your terminal, so treat it like a password.

To open sessions without the link (for example, by typing the URL on your phone), set a password:

tui2web set-password

Only a salted scrypt hash is stored in ~/.tui2web/config.json and sent to the relay.

Options

tui2web [options] <command> [args...]

--tailscale      Keep the session on your tailnet (this computer runs the relay)
--relay <url>    Relay server (default: $TUI2WEB_RELAY, `tui2web use`, or the public relay)
--no-password    Only accept the link's token for this session
--no-qr          Don't print a QR code
--no-wait        Start the command right away instead of waiting for Enter,
                 and connect to the relay in the background
--disconnected   Start without connecting to the relay; connect later (Ctrl+\, then c)
--connected      Connect as the session starts (the default)
--hotkey <key>   Key that shows the link again (default: ctrl-\; e.g. ctrl-^, ctrl-g, none)

Getting the link back

Full-screen programs clear the screen when they start, so tui2web keeps the link and QR code up until you press Enter. Ctrl+C cancels.

Once the program is running, there are two ways to get the link again:

  • Press Ctrl+\ to show the link and QR code over the program. Press any key to go back. The program keeps running meanwhile.
  • Run tui2web ls in another terminal to list your running sessions and their links.

The link is also printed again when the session ends.

Connect only when you leave

On the Ctrl+\ screen, press d to disconnect the session from the relay and c to connect it again. While disconnected, nothing about the session is on the relay, and your phone shows "disconnected" until you reconnect. The link and token stay the same, so a phone that was logged in picks up where it left off.

To start sessions disconnected and connect only when you head out, use --disconnected, or make it the default with tui2web autoconnect off (tui2web autoconnect on switches back). The link is shown up front either way, so you can scan it at your desk.

Private sessions with Tailscale

Don't want to go through the public relay? If your computer and phone are on Tailscale:

tui2web --tailscale claude

The session runs its own relay on your computer, reachable only from your Tailscale devices. Nothing goes through tui2web.com or the open internet. Make it the default with tui2web use tailscale (tui2web use public switches back).

Your own relay

Or run a relay yourself with tui2web relay (or on a server with Docker), and use tui2web --relay <url> (or tui2web use <url>). See the self-hosting guide.

Requires Node.js 16 or newer. Runs on macOS, Linux and Windows (x64 and arm64).