pinggy-tunnel

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

Updated Jul 7, 2026
One-click install
npx skills add https://github.com/episvr/USTB-2026-SummerInternship --skill pinggy-tunnel-episvr
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: pinggy-tunnel
Source: https://github.com/episvr/USTB-2026-SummerInternship/tree/main/hermes-config/optional-skills/devops/pinggy-tunnel
Command: npx skills add https://github.com/episvr/USTB-2026-SummerInternship --skill pinggy-tunnel-episvr

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Local development servers, webhook receivers, and demo endpoints are unreachable from the public internet, and installing tunnel daemons like ngrok or cloudflared is not always possible or desirable. This Skill creates public URLs for local ports using only the stock SSH client. ## Core Features & Use Cases - Zero-Install Tunneling: Connects to a.pinggy.io over SSH on port 443 to create HTTP, TCP, or TLS reverse tunnels with no binary installation. - Access Control Flags: Gates tunnels with HTTP Basic auth, bearer tokens, IP whitelists, CORS headers, and forced HTTPS via SSH 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 password-protected dev server sharing. - Use Case: You need Stripe to POST a webhook to your laptop during local testing. The Skill starts a capture server on port 18080, opens a token-gated Pinggy tunnel, parses the public https URL from the log, and hands it back for registration. ## Quick Start Ask the agent to expose local port 8000 to the internet using a Pinggy tunnel and return 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 ngrok?▼

Use an SSH reverse tunnel to Pinggy: run ssh -p 443 -R0:localhost:8000 [email protected] with StrictHostKeyChecking disabled. Pinggy prints a public http and https URL on stdout that forwards to your local port.

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

Start a small local HTTP server that logs incoming requests, then tunnel its port through Pinggy with a bearer-token gate. Register the generated pinggy.link URL with the external service and watch requests land in the capture log.

Pinggy vs cloudflared quick tunnel for sharing a dev server?▼

Pinggy needs only the stock SSH client and nothing installed, but free tunnels expire after 60 minutes and allow one concurrent tunnel per IP. Cloudflare quick tunnels do not expire, so prefer cloudflared when it is already configured.

Does Pinggy free tier have limitations?▼

Yes. Free tunnels carry a 60-minute hard cap, get a random subdomain that changes on every restart, and are limited to one concurrent tunnel per source IP. The Pro tier with a token removes these limits and supports persistent subdomains.

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

A 502 means the SSH tunnel is up but no local service is listening on the forwarded port. Verify the origin responds on 127.0.0.1 at that port with curl before starting the tunnel, then reconnect.

How do I password-protect a Pinggy tunnel?▼

Prefix the SSH username with access-control keywords joined by plus signs, quoted as one argument. Use b:user:pass for HTTP Basic auth, k:token for bearer tokens, or w:CIDR for IP whitelisting, for example "b:admin:[email protected]".