pinggy-tunnel

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

1|Updated Jul 22, 2026
One-click install
npx skills add https://github.com/IceHeartGitH/Hermes-Agent-Android-Termux --skill pinggy-tunnel-iceheartgith
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: pinggy-tunnel
Source: https://github.com/IceHeartGitH/Hermes-Agent-Android-Termux/tree/main/custom-skills/devops/pinggy-tunnel
Command: npx skills add https://github.com/IceHeartGitH/Hermes-Agent-Android-Termux --skill pinggy-tunnel-iceheartgith

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Sharing a local dev server, webhook receiver, or MCP endpoint with the outside world normally requires installing tunnel daemons like ngrok or cloudflared. This Skill creates public HTTP/HTTPS URLs for any local port using only the stock SSH client, with no installation or signup required. ## Core Features & Use Cases - Zero-Install Tunnels: Connects to a.pinggy.io over SSH on port 443 and returns a public pinggy.link URL for any local port. - Access Control: Gates tunnels with HTTP Basic auth, bearer tokens, or IP whitelists via username keywords, plus CORS and HTTPS-redirect flags. - Ready-Made Recipes: Includes patterns for receiving webhook callbacks, exposing MCP servers over HTTP, sharing local LLM endpoints (Ollama/vLLM), and one-shot 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 URL from the log, and hands it back for the Stripe dashboard. ## 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 ngrok?▼

Use a Pinggy SSH reverse tunnel: run ssh -p 443 -R0:localhost:PORT [email protected] with your stock SSH client. Pinggy returns a public pinggy.link URL on stdout with no daemon installation or signup required.

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

Start a local HTTP capture server, then tunnel its port through Pinggy with a bearer-token gate. Hand the resulting https URL to the external service (Stripe, GitHub, Discord) and watch incoming requests land in the capture log.

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

Pinggy needs only an SSH client while cloudflared requires installing a binary. However, Pinggy free-tier tunnels expire after 60 minutes and allow one concurrent tunnel per IP, whereas Cloudflare quick tunnels do not expire.

What are the limitations of the Pinggy free tier?▼

Free tunnels have a 60-minute hard cap, a random subdomain that changes on every restart, and a limit of 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:PORT with curl before starting the tunnel, then restart it if needed.

Can I password-protect a Pinggy tunnel?▼

Yes, stack access-control keywords into the SSH username: b:user:pass for HTTP Basic auth, k:token for bearer tokens, or w:CIDR for IP whitelisting. Quote the whole user@host argument since it contains a plus sign.