Chalk Labs
Need help deploying pinggy-tunnel?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/lexus2016-pinggy-tunnel
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/pinggy-tunnel
What's inside
- Skill name
pinggy-tunnel- Description
- Zero-install localhost tunnels over SSH via Pinggy.
- License
- MIT
- Instructions
- 298 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# Pinggy Tunnel Skill
Expose a local service (dev server, webhook receiver, MCP endpoint, demo) to the public internet using a Pinggy SSH reverse tunnel. No daemon to install — the user's stock SSH client connects to `a.pinggy.io:443` and Pinggy hands back a public HTTP/HTTPS URL.
Free tier: 60-minute tunnels, random subdomain, no signup. Pro tier ($3/mo) is an opt-in with a token.
## When to Use
- User asks to "expose this locally", "share my dev server", "make this URL public", "tunnel port N", "get a public URL for a webhook"
- Need to receive a webhook callback during a local task (Stripe, GitHub, Discord, AgentMail)
- Sharing a one-off HTTP demo (MCP server, Ollama/vLLM endpoint, dashboard) with a remote party
- The host has SSH but no `cloudflared` / `ngrok` binary, and installing one would be overkill
If the host already has `cloudflared` configured, prefer the `cloudflared-quick-tunnel` skill — Cloudflare quick tunnels don't expire after 60 minutes.
## Prerequisites
- `ssh` on PATH (`ssh -V`). Default on Linux, macOS, and Windows 10+. No other install.
- A local service listening on `127.0.0.1:<port>` before the tunnel starts. Pinggy will return URLs but they'll 502 until the local origin is up.
Optional:
- `PINGGY_TOKEN` env var for paid Pro features (persistent subdomain, custom domain, multiple tunnels, no 60-minute cap). Free tier needs no credentials.
## Quick Reference
```bash
# Plain HTTP/HTTPS tunnel for port 8000 (free tier)
ssh -p 443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 \
-R0:localhost:8000 free@a.pinggy.io
# TCP tunnel (databases, raw SSH, etc.)
ssh -p 443 -o StrictHostKeyChecking=no -R0:localhost:5432 tcp@a.pinggy.io
# TLS tunnel (Pinggy can't decrypt — bring your own certs at origin)
ssh -p 443 -o StrictHostKeyChecking=no -R0:localhost:443 tls@a.pinggy.io
# Basic auth gate (b:user:pass)
ssh -p 443 -o StrictHostKeyChecking=no -R0:localhost:8000 \
"b:admin:secret+free@a.pinggy.io"
# Bearer token gate (k:token)
ssh -p 443 -o StrictHostKeyChecking=no -R0:localhost:8000 \
"k:mysecrettoken+free@a.pinggy.io"
# IP whitelist (w:CIDR)
ssh -p 443 -o StrictHostKeyChecking=no -R0:localhost:8000 \
"w:203.0.113.0/24+free@a.pinggy.io"
# Enable CORS + force HTTPS redirect
ssh -p 443 -o StrictHostKeyChecking=no -R0:localhost:8000 \
"co+x:https+free@a.pinggy.io"
# Pro tier (persistent URL, no 60-min cap)
ssh -p 443 -o StrictHostKeyChecking=no -R0:localhost:8000 "$PINGGY_TOKEN+a.pinggy.io"
```
## Procedure — Start a Tunnel and Get the URL
The model SHOULD use the `terminal` tool. The tunnel must stay alive for the duration of the share, so run it as a background process and parse the public URL from stdout.
### 1. Confirm a local origin is up
```bash
curl -sI http://127.0.0.1:8000/ | head -1
# expect HTTP/1.x 200 (or any non-connection-refused response)
```
If nothing is listening yet, start it first (e.g. `python -m http.server 8000 --bind 127.0.0.1`). Pinggy will happily return a URL pointed at nothing — the user will see 502 until the origin comes up.
### 2. Launch the tunnel as a background process
Use `terminal(background=True)` and capture output to a logfile (Pinggy prints the URLs on stdout, then keeps the connection open):
```bash
LOG=~/.hermes/cache/scratch/pinggy-8000.log
nohup ssh -p 443 \
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
-o ServerAliveInterval=30 \
-o ServerAliveCountMax=3 \
-R0:localhost:8000 free@a.pinggy.io \
> "$LOG" 2>&1 &
echo $! > ~/.hermes/cache/scratch/pinggy-8000.pid
```
`StrictHostKeyChecking=no` + `UserKnownHostsFile=/dev/null` skips the first-run host-key prompt. `ServerAliveInterval=30` keeps the SSH session from getting torn down by an idle NAT.
### 3. Parse the URL out of the log
```bash
sleep 4
grep -oE 'https://[a-z0-9-]+\.[a-z]+\.pinggy\.link' ~/.hermes/cache/scratch/pinggy-8000.log | head -1
```
Expected output looks like:
```
You are not authenticated.
Your tunnel will expire in 60 minutes.
http://yqycl-98-162-69-48.a.free.pinggy.link
https://yqycl-98-162-69-48.a.free.pinggy.link
```
Hand the `https://...pinggy.link` URL to the user.
### 4. Verify
```bash
curl -sI https://<the-url>/ | head -3
# expect 200/302/whatever the local origin actually returns
```
If you get `502 Bad Gateway`, the SSH session is up but the local origin isn't listening — fix step 1 first.
### 5. Teardown
```bash
kill "$(cat ~/.hermes/cache/scratch/pinggy-8000.pid)"From Lexus2016/hermes-agent-evolution, MIT.
More from Lexus2016/hermes-agent-evolution
- 0.632score
watchers
Lexus2016
Poll RSS, JSON APIs, and GitHub with watermark dedup.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
anatomy
Lexus2016
Explain an idea as an interactive isometric machine figure.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
system-atlas
Lexus2016
Build explorable isometric architecture atlases as HTML.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
kanban-video-orchestrator
Lexus2016
Plan and run multi-agent video production pipelines.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
unreal-mcp
Lexus2016
Automate Unreal Engine editor scenes, actors, and renders.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
meme-generation
Lexus2016
Create meme PNGs from templates with Pillow text overlay.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
evm
Lexus2016
Read-only EVM client: wallets, tokens, gas across 8 chains.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
hyperliquid
Lexus2016
Hyperliquid market data, account history, trade review.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
solana
Lexus2016
Query Solana wallets, tokens, txs, and NFTs in USD.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
ai-presenter-video
Lexus2016
Make a verified AI presenter video from script + image.
SkillAFreshness: A★ 15Claude Code +9 - 0.627score
honcho
Lexus2016
Configure and troubleshoot Honcho memory for Hermes.
SkillAFreshness: A★ 15Claude Code +9 - 0.627score
brag-slim
Lexus2016
Launch video from a project or URL, upstream-maintained.
SkillAFreshness: A★ 15Claude Code +9
Signals
- Stars
- 15
- Forks
- 4
- Open issues
- 0
- Last commit (this folder)
- Sep 19, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from Lexus2016
- 0.659score
Turbo Quant Memory
Lexus2016
Local-first memory and knowledge graph for coding agents.
ConnectorAFreshness: ALocal★ 9↓ 659/wkClaude Code +5 - 0.632score
solana
Lexus2016
Query Solana wallets, tokens, txs, and NFTs in USD.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
ai-presenter-video
Lexus2016
Make a verified AI presenter video from script + image.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
evm
Lexus2016
Read-only EVM client: wallets, tokens, gas across 8 chains.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
hyperliquid
Lexus2016
Hyperliquid market data, account history, trade review.
SkillAFreshness: A★ 15Claude Code +9 - 0.632score
anatomy
Lexus2016
Explain an idea as an interactive isometric machine figure.
SkillAFreshness: A★ 15Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get pinggy-tunnel running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
pinggy-tunnel skill. Agent Mart. https://agentmart.dev/skills/lexus2016-pinggy-tunnel (last updated 2026-10-24)