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

start-pnode

v1.0.11

Published

PNode agent (legacy package for Tunyl)

Readme

PNode Launcher

start-pnode is the legacy package name for Tunyl.

It continues to work against the current tunyl.com platform, but new integrations should prefer tunyl.

PNode allows you to securely expose local web applications, APIs, or development servers to the Internet.

It creates an encrypted tunnel from a public domain to your local machine using a lightweight agent — no firewall rules, NAT configuration, or VPS required.

PNode is well suited for:

  • local backend APIs
  • frontend development servers
  • resource-intensive workloads (AI models, ML inference, etc.)

How it works

You run a local agent that forwards traffic from a public domain to a port on your machine.

PNode supports two modes:

  • Anonymous mode — no account, temporary domain
  • Authorized mode — fixed domain tied to your project

Anonymous Mode

Anonymous mode requires no registration and no credentials.

npx start-pnode@latest --port 3000
  • A temporary domain like tmp-abc123.tunyl.com is assigned automatically
  • The domain is valid for 12 hours
  • The port must be explicitly specified

Authorized Mode

Authorized mode uses a single Agent Token generated for your project.

The token identifies the project and grants access to its fixed domain.

export AGENT_TOKEN=your-agent-token
export LOCAL_PORT=3000

npx start-pnode@latest

Or using CLI arguments:

npx start-pnode@latest --token your-agent-token --port 3000

Authorized mode provides:

  • a fixed public domain (e.g. yourname.tunyl.com)
  • higher usage limits
  • optional frontend / backend separation

Using in your apps

import { Tunnel } from 'start-pnode';
import { createServer, IncomingMessage, ServerResponse } from 'http';

const port = 3000;

const server = createServer((req: IncomingMessage, res: ServerResponse) => {
  res.end('Hello world!');
});

server.listen(port, '127.0.0.1', () => {
  const proxy = new Tunnel({
    agentAccessToken: '<YOUR_TOKEN>',
    localPort: port,
  });
  proxy.start();
  proxy.on('stopped', () => server.close());
});

Environment Variables

Anonymous Mode

No variables required.

Optional:

  • LOCAL_PORT — local forwarded port

Authorized Mode

  • AGENT_TOKEN — project access token
  • LOCAL_PORT — local forwarded port

CLI Options

Options:
  --token <token>   Agent token (env: AGENT_TOKEN)
  --port <port>     Local forwarded port (env: LOCAL_PORT)
  --host <host>     Local forwarded host (default: "localhost", env: LOCAL_HOST)
  -t, --test        Test mode
  -h, --help        Display help

Example

Expose a local API running on port 5000:

node server.js --port 5000

npx start-pnode@latest --port 5000

Or with a project token:

export AGENT_TOKEN=...
npx start-pnode@latest --port 5000

Security

All traffic between the agent and Tunyl servers is encrypted. Only users with a valid Agent Token can start authorized tunnels.


Links