pinggy-tunnel

Expose local services to the public internet via Pinggy SSH reverse tunnels.

Updated Aug 22, 2026
One-click install
npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill pinggy-tunnel-vivekgoquest
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: pinggy-tunnel
Source: https://github.com/vivekgoquest/hermes-agent-stable/tree/main/optional-skills/devops/pinggy-tunnel
Command: npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill pinggy-tunnel-vivekgoquest

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Local development servers, webhook receivers, and MCP endpoints are unreachable from the public internet, blocking webhook callbacks, remote demos, and cross-machine integrations. This Skill creates public HTTP/HTTPS URLs for local ports using only the stock SSH client, with no daemon installation or signup required. ## Core Features & Use Cases - Zero-Install Tunneling: Uses the built-in SSH client to connect to a.pinggy.io and receive a public pinggy.link URL for any local port. - Access Control: Gates tunnels with HTTP Basic auth, bearer tokens, IP whitelists, CORS headers, and forced HTTPS via username keywords. - Ready-Made Recipes: Includes end-to-end patterns for receiving webhook callbacks, exposing MCP servers over HTTP, sharing local LLM endpoints (Ollama/vLLM), and demoing dev servers with one-shot passwords. - Use Case: You need Stripe to POST webhook events to your laptop during local testing. The Skill starts a capture server on port 18080, opens a token-gated Pinggy tunnel, parses the public URL from the log, and hands it back for you to register with Stripe. ## Quick Start Ask the agent to expose local port 8000 to the internet with a Pinggy tunnel and give you the public URL.

Frequently Asked Questions about pinggy-tunnel

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I expose a localhost port to the internet without installing anything?▼

Use an SSH reverse tunnel to Pinggy: run ssh -p 443 -R0:localhost:8000 [email protected] with StrictHostKeyChecking disabled. Pinggy returns a public pinggy.link URL on stdout that forwards traffic to your local port, using only the stock SSH client.

How to receive webhook callbacks on a local machine during development?▼

Start a local HTTP server that logs incoming requests, then open a Pinggy tunnel to that port gated with a bearer token. Register the resulting https pinggy.link URL with the external service (Stripe, GitHub, Discord) and watch requests land in the capture log.

Pinggy vs ngrok vs cloudflared for localhost tunneling?▼

Pinggy requires no binary installation or signup since it works over the standard SSH client, making it ideal when cloudflared or ngrok are unavailable. Cloudflare quick tunnels are preferable when cloudflared is already configured because they do not expire after 60 minutes.

What are the limitations of the Pinggy free tier?▼

Free tunnels expire after 60 minutes, get a random subdomain that changes on every restart, and are limited to one concurrent tunnel per source IP. The Pro tier ($3/mo) with a token provides persistent subdomains, custom domains, and removes these caps.

Why does my Pinggy tunnel URL return 502 Bad Gateway?▼

A 502 means the SSH tunnel is connected but no local service is listening on the forwarded port. Verify the origin is up first with curl -sI http://127.0.0.1:PORT/ before starting the tunnel, since Pinggy returns URLs even when the local origin is down.

How do I password-protect a public tunnel to my dev server?▼

Add access-control keywords to the SSH username, such as b:user:pass for HTTP Basic auth, k:token for bearer tokens, or w:CIDR for IP whitelisting. Quote the whole user@host argument because it contains a plus sign, for example "b:admin:[email protected]".