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

tmux-mobile

v0.0.8

Published

Mobile-first tmux web interface over cloudflared

Readme

tmux-mobile

tmux-mobile banner

Control your AI agents from anywhere. Mobile-first tmux web client that lets you wrangle Claude Code, agentic workflows, and persistent terminal sessions from your phone.

Inspiration strikes unexpectedly—often when you're away from your desk. With tmux-mobile, your development environment travels with you. Access it locally or over a secure Cloudflare tunnel.

Why tmux + mobile matters now:

  • Claude Code Teams and emerging agentic workflows run in tmux sessions
  • Persistent sessions survive disconnects—your AI agents keep working even when you close the browser
  • Zero tmux knowledge required—if you can tap a screen, you can use it
  • Born from necessity—this project literally came to life on the toilet, because sometimes the best ideas (and urgent debugging) can't wait

Screenshot

Amber theme

tmux-mobile screenshot

Midnight theme

tmux-mobile midnight screenshot

Prerequisites

  • Node.js 20 or newer is required.
  • tmux must be installed on the machine running tmux-mobile.
  • tmux project: tmux/tmux
  • Install with Homebrew (macOS):
brew install tmux
  • Recommended: enable tmux mouse mode so you can switch panes by tapping in the mobile UI.
echo 'set -g mouse on' >> ~/.tmux.conf
tmux source-file ~/.tmux.conf

Quick Start

Run without cloning (recommended)

npx tmux-mobile

The CLI prints:

  • Local URL: ...?token=...
  • Tunnel URL: ...?token=... (when tunnel is enabled)
  • Password: ... (when password auth is enabled)

Open either URL directly on your phone.

Run from source

npm install
npm start

Security Defaults

  • Password authentication is enabled by default.
  • If you do not provide --password, a random password is generated.
  • Password is printed separately (not in URL query parameters).
  • You can disable password checks for trusted local workflows with --no-require-password.
  • Full security architecture, risk model, and operational guidance: SECURITY.md

Versioning

  • The project intentionally stays on 0.0.x while the interface and operational behavior are still being refined.

CLI

tmux-mobile [options]

Options:
  -p, --port <port>                Local port (default: 8767)
  --password <pass>                Authentication password (optional; auto-generated by default)
  --[no-]require-password          Toggle password requirement (default: true)
  --no-tunnel                      Don't start cloudflared tunnel
  --session <name>                 Default tmux session name (default: main)
  --scrollback <lines>             Default scrollback capture lines (default: 1000)
  --debug-log <path>               Write backend debug logs to a file

Optional environment variables:

  • TMUX_MOBILE_SOCKET_NAME: use a dedicated tmux socket name (tmux -L) for isolation
  • TMUX_MOBILE_SOCKET_PATH: use an explicit tmux socket path (tmux -S)
  • TMUX_MOBILE_DEBUG_LOG: alternative way to enable debug log file output
  • TMUX_MOBILE_FORCE_SCRIPT_PTY=1: force the Unix script(1) PTY fallback

Local Development

npm run dev

Quality gate:

npm run typecheck
npm test
npm run test:e2e
npm run build

Test Harness

The automated harness avoids manual QA by validating the tmux protocol flow end-to-end:

  • FakeTmuxGateway: in-memory tmux session/window/pane state machine
  • FakePtyFactory: captures terminal writes/resizes and emits PTY output
  • Integration tests for auth, attach flow, session picker, mutations, scrollback capture, and terminal I/O bridge
  • Playwright browser tests for attach + terminal rendering, drawer behavior, and session selection regression coverage
  • Optional real tmux smoke test:
npm run test:smoke

Acknowledgements