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

dev-lan

v0.1.1

Published

Open your PC's dev servers on real Android phones as localhost, over USB or Wi-Fi, with Chrome DevTools for each tab. Includes the devhost desktop app (Windows).

Readme

dev-lan

Open your PC's dev servers on real Android phones as http://localhost:3000, over USB or Wi-Fi, and inspect each phone tab with Chrome DevTools. One command: dev.

npm install -g dev-lan
dev
 dev    ports 3000, 4173  ·  2 devices ready

  DEVICE       MODEL     LINK   ADDRESS               INSPECT
● Pixel 8      Pixel 8   USB    #38031FDJH00ABC       inspect · built-in  :3000/checkout
                         Wi-Fi  #192.168.1.23:5555
● Galaxy Tab   SM-X710   Wi-Fi  #192.168.1.31:5555    no tab

  You can unplug Pixel 8 now: it stays connected over Wi-Fi.
  • localhost on the phone: the phone opens http://localhost:3000 and reaches your PC (Android's adb reverse). That includes service workers, secure cookies and OAuth redirects, which treat localhost as secure, so you need no certificates or LAN addresses.
  • Wi-Fi that stays up: plug a phone in once and dev moves it to Wi-Fi. Unplug it and keep working. Android's own Wireless debugging switches itself off whenever the phone changes access point; dev's connection doesn't.
  • Inspect links: for every phone tab showing one of your ports, open Chrome DevTools (inspect, or built-in for Chrome's own DevTools).
  • Desktop app: live phone screens, every tab and WebView, and reconnects phones by itself after they sleep. dev app installs it.

Windows 10 or 11 for now (macOS and Linux are planned). Needs Node.js 18 or later.

Install

npm install -g dev-lan

This gives you the dev command everywhere (devlan is the same command, in case another tool already uses the name dev).

The first dev checks for adb, the tool that talks to Android phones. If your PC has none, it offers to download Google's platform-tools (about 7 MB) into ~/.devhost. You can also do that ahead of time with dev setup.

Connect an Android phone

With a USB cable (easiest, once per phone)

  1. On the phone, turn on Developer options: Settings › About phone, tap Build number 7 times. Some phones put it under Software information.
  2. Settings › System › Developer options › turn on USB debugging.
  3. Plug the phone into the PC and run:
    dev
  4. The phone asks "Allow USB debugging?". Tick Always allow from this computer and tap Allow, then run dev again if the phone isn't in the table yet.
  5. dev switches the phone to Wi-Fi as well. When it prints "You can unplug … now", take the cable out.
  6. On the phone, open http://localhost:3000 in Chrome.

The Wi-Fi link lasts until the phone restarts. After a restart, plug the phone in once more, or pair it over Wi-Fi as below.

Without a cable (Wireless debugging, Android 11+)

The phone and the PC must be on the same Wi-Fi.

  1. Turn on Developer options (step 1 above).
  2. Settings › System › Developer options › Wireless debugging: turn it on.
  3. Run:
    dev pair
  4. On the phone, inside Wireless debugging, either:
    • Pair device with QR code, and scan the QR code dev pair shows in the terminal; or
    • Pair device with pairing code. dev pair finds the phone and asks for the 6-digit code it shows; type it in.
  5. The phone appears in the table, already on stable Wi-Fi.

Phones paired this way are found again by themselves the next time you run dev.

Every day

dev

This connects every phone it knows: USB, Wi-Fi and phones paired earlier. It opens your ports on each, shows the table, and stops. Run it again whenever a phone wakes up or you plug one in. The desktop app does this continuously.

Ports

dev opens ports 3000 and 4173 by default. Other ports:

dev --ports 3000,5173,8080

Each phone can then open http://localhost:<port> for each of them.

Inspect a phone tab

The table's INSPECT column lists each phone tab showing one of your ports. In Windows Terminal each tab gets two links:

  • inspect opens Google's web DevTools for that tab;
  • built-in shows an address to paste into Chrome for Chrome's own DevTools.

Other terminals show just the tab's path (:3000/checkout); the desktop app has DevTools for every tab too. The links go through a small relay on 127.0.0.1:9299 that dev starts in the background, reachable from this PC only.

The desktop app

dev app               # install or update it, and open it
dev app open          # open it
dev app uninstall     # remove it (Settings › Apps works too)

The app comes inside this package; nothing else is downloaded, and no admin rights are needed. It installs into %LOCALAPPDATA%\Programs\devhost, adds a Start menu entry and starts with Windows. It shows:

  • every connected phone and tablet, with its live screen (touch and keys work);
  • every Chrome tab and WebView, with DevTools;
  • phones that need attention (asleep, not allowed, not paired), with what to do.

It also keeps phones connected: when one sleeps and wakes, it gets its ports back without you running dev.

Android live screens and recordings use scrcpy's server. Install it once:

winget install Genymobile.scrcpy

iPhones and iPads

dev ios          # what works, and your dev server's address for the iPhone
dev ios setup    # once: what the desktop app needs to show an iPhone
  • No localhost on iPhones. On an iPhone, localhost is always the iPhone itself, and iOS has no equivalent of Android's adb reverse. Open your dev server by the PC's address instead (dev ios prints it), with your dev server listening on all addresses (for example vite --host).
  • Live screen in the desktop app (iOS 27 or later, with Developer Mode on). You get touch, keyboard, Home and the side buttons, and full screen.
    1. Run dev ios setup once. It installs the open-source pymobiledevice3 and needs Python 3.9+.
    2. Plug the iPhone in, unlock it and tap Trust.
    3. Run dev app and choose the iPhone. After this first USB connection, the iPhone also works over Wi-Fi. If you pull the cable, the screen moves to Wi-Fi by itself.
  • While its screen is shown, iOS keeps the iPhone's camera and microphone off. That's Apple's rule for remote viewing.

For scripts and agents

dev --json

This prints one JSON document instead of the table and never stops to ask. The exit code is 0 when every phone is ready, 1 when there's no phone, and 2 when something needs attention.

Troubleshooting

| What you see | What to do | | --- | --- | | No phone found over USB or Wi-Fi. | Check the cable and that USB debugging is on, or run dev pair. | | … is unauthorized | Unlock the phone and tap Allow on the USB debugging prompt, then run dev again. | | … is offline | Unlock the phone; if that doesn't help, unplug and replug it. | | … has wireless debugging on but is not paired | Run dev pair. | | A phone that worked yesterday is missing | It restarted, so plug it in once or run dev pair. | | localhost:3000 doesn't load on the phone | Make sure your dev server is running on the PC, and on that port. | | This PC has no adb | Let dev download it, or run dev setup. |

Uninstall

dev app uninstall          # if you installed the desktop app
npm uninstall -g dev-lan

Settings and remembered phones are kept in ~/.devhost; delete that folder to remove them too.

Licence

MIT