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

@letsping/cli

v0.3.1

Published

Localhost HTTP Tunnel for LetsPing Webhooks and Ingestion

Downloads

531

Readme

@letsping/cli

Official command-line interface for LetsPing.

This tool creates a secure bidirectional tunnel between your local development environment and the LetsPing cloud dashboard. It enables realtime testing of the Behavioral Shield and Human-in-the-Loop approval workflows for agents running on localhost without requiring public deployment.

Quick Start

Run the tunnel using npx (recommended – no global installation needed):

npx @letsping/cli dev

Required Configuration

Place a .env file in the directory where you run the CLI:

# Required
LETSPING_PROJECT_ID=proj_xxxxxxxxxxxx

Optional Configuration

# Change local listening port (default: 3005)
LETSPING_PORT=4000

Development Workflow

  1. Start your local application/agent
    Configure your LetsPing SDK (or direct HTTP calls) to send approval requests to the local ingestion endpoint.

  2. Start the tunnel
    In a separate terminal:

    npx @letsping/cli dev
  3. Look for the startup message
    You should see output similar to:

    ◆ LetsPing Local Tunnel
    ➜  API Endpoint:   http://localhost:3005/ingest
    ➜  Dashboard:      https://letsping.co/dashboard?project=proj_xxxxxxxxxxxx
  4. Send a test request
    Direct your SDK or HTTP client to:

    POST http://localhost:3005/ingest

    The request will appear almost instantly in your LetsPing dashboard under the Localhost environment.

If you run the 2-minute demo scripts from @letsping/sdk or npx @letsping/cli demo while this tunnel is active and point their base URL at http://localhost:<port>/api, all demo traffic will flow through the tunnel and show up in the dashboard tagged as Localhost.

Important Notes

  • The ingestion endpoint is http://localhost:<port>/ingest
    Sending requests to the root path (/) will return 404.

  • Use POST requests with JSON payload matching the LetsPing request format.

  • The tunnel automatically reconnects on network interruptions.

How the local tunnel keeps everything secure & private (agent-friendly)

The CLI does not expose any endpoint to the public internet.

  • Your agent sends approval requests only to http://localhost:<port>/ingest (loopback interface).
  • The CLI receives these requests locally and forwards them outbound over a secure WebSocket tunnel to LetsPing cloud.
  • All traffic flows from your machine → LetsPing (no inbound connections are accepted).
  • The dashboard shows requests under the Localhost environment for easy testing.
  • When a human approves/rejects, the decision travels back through the tunnel to your waiting agent.

This architecture means:

  • No firewall changes needed
  • No public URL is ever created
  • Works behind NAT, corporate proxies, etc.

Because the tunnel is outbound‑only and scoped to localhost:<port>, it is safe for AI agents to start and use it as part of automated workflows (for example via MCP or other system tools), without opening any inbound ports on your machine.

Troubleshooting

| Problem | Likely Cause / Solution | |:-----------------------------------|:----------------------------------------------------------------------------------------| | Missing LETSPING_PROJECT_ID | No .env file in current directory or missing/invalid LETSPING_PROJECT_ID value | | Port 3005 already in use | Set LETSPING_PORT=xxxx in .env or kill the occupying process | | Requests not appearing in dashboard| • Using wrong endpoint (/ instead of /ingest)• Wrong project ID• Firewall blocking websocket | | 404 Not Found | Sending to root URL instead of /ingest | | Tunnel disconnects frequently | Unstable network – the CLI includes automatic reconnection logic |

For full documentation and request format specification, visit:
https://www.letsping.co/docs#local-dev

Happy local developing!