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

conduit-mobile

v0.1.3

Published

Run Claude Code from your phone. A secure terminal bridge with mobile web UI.

Readme

Conduit

Run Claude Code from your phone.

No app install. No third-party chat relay. Just your terminal, in your browser, wherever you are.

License: MIT Node.js PRs Welcome Platform


What is this?

You're deep in a Claude Code session, away from your desk. Your phone is the only screen you have.

Conduit is a tiny Node.js server you run on your laptop. It manages your terminal sessions and serves a mobile-optimised web app. Your phone connects over an encrypted WebSocket tunnel — you see live terminal output, type your message, hit Send, and it lands straight in the terminal. Multiple sessions, tabbed. Special keys toolbar for navigating prompts. Speech input built in.

Close your laptop lid. Lock your screen. The server keeps running.

No WhatsApp. No Telegram. No API keys for a relay service. Just a URL and a token.


How it works

┌──────────────────────────────────────────────────────────────────┐
│  Your Laptop                                                     │
│                                                                  │
│   node-pty  ──► terminals.js ──► WebSocket server (port 3131)   │
│   (Claude Code, bash, etc.)            │                         │
│                                        │                         │
│                              Cloudflare Tunnel                   │
│                                        │                         │
└────────────────────────────────────────┼─────────────────────────┘
                                         │  WSS / HTTPS
                              ┌──────────▼───────────────┐
                              │      Your Phone           │
                              │                           │
                              │  ┌─────────────────────┐  │
                              │  │ [tab1] [tab2]  [+]  │  │
                              │  ├─────────────────────┤  │
                              │  │                     │  │
                              │  │   xterm output  [Copy] │
                              │  │                     │  │
                              │  ├─────────────────────┤  │
                              │  │ Esc Tab ↑ ↓ ↵ ^C y n│  │
                              │  ├─────────────────────┤  │
                              │  │ 🎤  message   [Send] │  │
                              │  └─────────────────────┘  │
                              └───────────────────────────┘

When you start Conduit, it:

  1. Spins up a local server on port 3131
  2. Prevents your laptop from sleeping — including when the lid is closed
  3. Starts a Cloudflare quick tunnel — a free, encrypted HTTPS URL, no account needed
  4. Prints the URL as a QR code in your terminal
  5. Waits for your phone to connect

Features

| | | |---|---| | Multiple terminal sessions | Open as many terminals as you need. Switch between them with tabs. Each session is a real PTY — Claude Code, bash, whatever you want to run. | | Chat-style input | Compose your full message, press Send. It lands in the terminal with a newline. No accidental keystrokes. | | Special keys toolbar | A scrollable row of keys — Esc, Tab, , , , , , Ctrl+C, y, n — for navigating interactive prompts without a keyboard. | | Select and copy | Drag to select any terminal output. A Copy button floats into view and puts it on your clipboard. | | Speech input | Tap 🎤 to open your keyboard's native mic, or hold for Web Speech API fallback. Transcript fills the input box. | | Keyboard-aware layout | The terminal shrinks when your phone keyboard opens. The input bar stays pinned above it. Nothing scrolls out of view. | | Live terminal output | Powered by xterm.js. Colour, cursor, scrollback — it looks and behaves like a real terminal. | | Scrollback history | Reconnect mid-session and the last 500 output chunks are replayed so you're not starting blind. | | Sleep prevention | The server keeps the laptop awake — including blocking lid-close sleep on Windows. Restored automatically when you stop the server. | | Encrypted remote access | Cloudflare Tunnel wraps everything in TLS. Your laptop never opens a port to the internet. | | Token auth | A fresh random token is generated every time the server starts. Nobody connects without it. | | PWA installable | Add to your phone's home screen. Opens full-screen like a native app. | | No build step | The client is plain HTML + JS served directly. No webpack, no bundler, no friction. |


Quickstart

npx conduit

That's it. No install step, no config. On first run, cloudflared is downloaded automatically and cached in ~/.conduit/ for future runs.

Or if you prefer a global install:

npm install -g conduit
conduit

Your terminal will look like this:

  ╔══════════════════════════════════════════╗
  ║        Conduit  v0.1.0             ║
  ╚══════════════════════════════════════════╝

  Sleep + lid-close prevented while server is running.
  Local:  http://localhost:3131
  Token:  7f0d-7110-fd24

  Remote: https://abc123.trycloudflare.com

  ┌─ Scan with phone ──────────────────────────┐

  ▄▄▄▄▄▄▄ ▄  ▄ ▄▄▄▄▄▄▄
  █ ▄▄▄ █ ▀█▄  █ ▄▄▄ █
  █ ███ █ ▄ ▀  █ ███ █
  ...

  └────────────────────────────────────────────┘

  Or open: https://abc123.trycloudflare.com?token=7f0d-7110-fd24

  Press Ctrl+C to stop.

Open on your phone

  • Scan the QR code — the token is embedded in the URL, you connect instantly
  • Or copy-paste the full URL into your phone's browser

Use it

| Action | How | |---|---| | New terminal | Tap + in the tab bar | | Switch terminal | Tap a tab | | Close a terminal | Tap on the tab | | Send a command | Type in the box → Send | | Multi-line input | Shift+Enter adds a newline | | Navigate prompts (↑ ↓ ↵) | Use the keys toolbar between terminal and input | | Answer y/n prompts | Tap y or n in the keys toolbar — includes Enter | | Interrupt / cancel | Tap Ctrl+C in the keys toolbar | | Copy terminal output | Drag to select → tap the Copy button that appears | | Speech input | Tap 🎤 → keyboard opens with native mic button | | Lock screen and walk away | Win+L — server keeps running | | Close the laptop lid | Works — lid-close sleep is blocked while server is running | | Stop the server | Ctrl+C — sleep settings restored automatically | | Install as app | Browser menu → "Add to Home Screen" |


Sleep behaviour

Conduit keeps your laptop awake for as long as the server is running.

| Action | Result | |---|---| | Screen timeout | Screen still dims/turns off normally | | Win+L / lock screen | ✅ Server keeps running | | Close the laptop lid | ✅ Server keeps running (lid-close sleep is blocked) | | Ctrl+C to stop | ✅ All sleep settings restored to what they were before |

This uses the OS wake lock API on each platform — SetThreadExecutionState on Windows, caffeinate on macOS, systemd-inhibit on Linux. Nothing is permanently changed; it all reverts the moment the server stops.


Security

  • Token per session — a cryptographically random token is generated at startup. It expires when the server stops.
  • TLS everywhere — Cloudflare Tunnel terminates TLS. Traffic between your phone and Cloudflare's edge, and between the edge and your machine, is encrypted.
  • No open inbound portcloudflared makes an outbound connection to Cloudflare. Your laptop's firewall doesn't need to change.
  • Nothing stored — no tokens, no session data, no output is written to disk or sent anywhere beyond your machine.
  • Local-only fallback — if cloudflared is not installed, the server only binds to your local network (same Wi-Fi required).

Requirements

  • Node.js 18+
  • A modern mobile browser — Chrome for Android or Safari on iOS recommended

cloudflared is downloaded automatically on first run and cached in ~/.conduit/. No manual install needed.


Personal setup guide

Step-by-step instructions covering cloudflared install, first run, lid-close setup, and tips:

docs/SETUP.md


Development

npm run dev   # starts with --watch, auto-reloads on file change

See CONTRIBUTING.md for project structure and contribution guidelines.


Roadmap

  • [x] Multiple terminal sessions with tabs
  • [x] Chat-style input with Send button
  • [x] Special keys toolbar (arrows, Esc, Ctrl+C, y/n)
  • [x] Select and copy terminal output
  • [x] Speech input via native keyboard mic
  • [x] Keyboard-aware layout (input stays pinned above keyboard)
  • [x] Cloudflare Tunnel auto-start + QR code
  • [x] Scrollback history on reconnect
  • [x] Sleep prevention — idle, lock screen, and lid close
  • [x] PWA installable
  • [ ] Session persistence across server restarts
  • [ ] Named / renamed tabs
  • [ ] Swipe gesture to switch tabs
  • [ ] Haptic feedback on send
  • [ ] Optional persistent token (config file)

Contributing

Bug reports, feature requests, and pull requests are welcome.

CONTRIBUTING.md


License

MIT — see LICENSE.


Built for developers who use Claude Code and need to stay in the flow away from their desk.