pinggy-tunnel

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

1|Updated Jun 19, 2026
One-click install
npx skills add https://github.com/Lento47/arcana-community --skill pinggy-tunnel-lento47
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: pinggy-tunnel
Source: https://github.com/Lento47/arcana-community/tree/main/skills/devops/pinggy-tunnel
Command: npx skills add https://github.com/Lento47/arcana-community --skill pinggy-tunnel-lento47

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 a public HTTPS URL for any local port using only the stock SSH client, with no daemon or binary installation required. ## Core Features & Use Cases - Zero-Install SSH Tunnels: Connect to a.pinggy.io over SSH port 443 to get a public pinggy.link URL for any local port, with no signup on the free tier. - Access Control Flags: Gate 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 password-protected dev server demos. - Use Case: You need Stripe to POST webhook events to your laptop during local testing. Start the capture server, launch a bearer-token-gated Pinggy tunnel, parse the public URL from the log, and hand it to Stripe. ## Quick Start Ask the agent to expose local port 8000 to the internet with a Pinggy tunnel and return the public HTTPS 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:PORT free@a.pinggy.io and Pinggy returns a public pinggy.link URL. It works with the stock SSH client on Linux, macOS, and Windows 10+, with no signup or binary installation.

How do I receive webhook callbacks on my local machine?▼

Start a local HTTP server that logs incoming requests, then tunnel its port through Pinggy and hand the public URL to the webhook provider. Gate the tunnel with a bearer token using the k: username keyword so only the provider can post events.

Pinggy vs cloudflared quick tunnel, which should I use?▼

Pinggy needs only an SSH client, so it works on hosts where installing cloudflared is impractical. However, free Pinggy tunnels expire after 60 minutes, while Cloudflare quick tunnels do not, so prefer cloudflared when it is already configured.

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 with curl before starting the tunnel, then re-check the public URL.

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 allow only one concurrent tunnel per source IP. A Pro token removes the time cap, enables persistent subdomains, and lifts the concurrency limit.

How do I password-protect a tunneled dev server?▼

Add access-control keywords to the SSH username, such as b:user:pass for HTTP Basic auth or k:token for bearer tokens, joined with plus signs. Quote the whole user@host argument so shells handle the plus characters correctly.