-
Notifications
You must be signed in to change notification settings - Fork 0
New Skill: added the tunneling skill with tinyfi.sh #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| --- | ||
| name: tunneling | ||
| description: Create free SSH tunnels to expose local ports to the internet using tinyfi.sh. Use when you need to share a locally running app, test webhooks, demo a prototype, or get a public HTTPS URL for any local service — no signup or authentication required. | ||
| --- | ||
|
|
||
| # TinyFish Tunneling Service (tinyfi.sh) | ||
|
|
||
| Creates instant public HTTPS URLs for locally running apps via SSH tunneling. Free, no account, no installation beyond SSH. | ||
|
|
||
| ## Pre-flight Check (REQUIRED) | ||
|
|
||
| Verify SSH is available (it almost always is): | ||
|
|
||
| ```bash | ||
| which ssh && echo "SSH available" || echo "SSH not found — install OpenSSH first" | ||
| ``` | ||
|
|
||
| ## Quick Start | ||
|
|
||
| Expose a local port to the internet: | ||
|
|
||
| ```bash | ||
| ssh -o StrictHostKeyChecking=accept-new -R 80:localhost:<PORT> tinyfi.sh | ||
| ``` | ||
|
|
||
| Replace `<PORT>` with the port your app is running on. The command will print a public `https://<random>.tinyfi.sh` URL. | ||
|
|
||
| ## Custom Subdomain | ||
|
|
||
| Request a specific subdomain instead of a random one: | ||
|
|
||
| ```bash | ||
| ssh -o StrictHostKeyChecking=accept-new -R myname:80:localhost:<PORT> tinyfi.sh | ||
| ``` | ||
|
|
||
| This gives you `https://myname.tinyfi.sh`. | ||
|
|
||
| ## Keep-Alive (Stable Connections) | ||
|
|
||
| For long-running tunnels, add a keep-alive interval to prevent disconnection: | ||
|
|
||
| ```bash | ||
| ssh -o StrictHostKeyChecking=accept-new -o ServerAliveInterval=60 -R 80:localhost:<PORT> tinyfi.sh | ||
| ``` | ||
|
|
||
| ## Usage Guidelines | ||
|
|
||
| When starting a tunnel for the user: | ||
|
|
||
| 1. **Ask which port** to expose if not already specified | ||
| 2. **Run the SSH command** in the background so the agent can continue working | ||
| 3. **Report the public URL** back to the user once the tunnel is established | ||
| 4. The tunnel stays open as long as the SSH connection is alive | ||
|
|
||
|
Comment on lines
+46
to
+54
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add practical examples for background execution. The guidelines instruct to "run the SSH command in the background" (line 51) and "report the public URL" (line 52), but don't provide any examples of how to accomplish this. Users need concrete guidance on:
This is essential for implementing these guidelines correctly. 📝 Suggested enhancement with practical examplesConsider adding a section like: ## Running Tunnels in the Background
To run a tunnel without blocking:
**Option 1: Background process**
```bash
ssh -o StrictHostKeyChecking=accept-new -R 80:localhost:3000 tinyfi.sh > tunnel_output.txt 2>&1 &
TUNNEL_PID=$!Option 2: Using nohup for persistent tunnels nohup ssh -o StrictHostKeyChecking=accept-new -R 80:localhost:3000 tinyfi.sh > tunnel_output.txt 2>&1 &Parse the URL from output: sleep 2 # Wait for connection
grep -oP 'https://[^/]+\.tinyfi\.sh' tunnel_output.txtIn |
||
| ## Common Ports | ||
|
|
||
| | Framework / Tool | Default Port | | ||
| |----------------------|-------------| | ||
| | Next.js / React / Express | 3000 | | ||
| | Vite | 5173 | | ||
| | Django | 8000 | | ||
| | Flask | 5000 | | ||
| | Go (net/http) | 8080 | | ||
| | Ruby on Rails | 3000 | | ||
| | PHP (built-in) | 8000 | | ||
|
|
||
| ## Rate Limits | ||
|
|
||
| - 5 SSH connections per minute per IP | ||
| - 100 HTTP requests per minute per IP | ||
| - 50 concurrent connections max | ||
| - 48-hour idle timeout | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
tinyfi.sh official documentation SSH command StrictHostKeyChecking💡 Result:
tinyfi.sh’s official docs show connecting with a plain reverse-tunnel command and do not mention
StrictHostKeyChecking:ssh -R 80:localhost:3000 tinyfi.sh(example from the tinyfi.sh homepage docs) [1]If you specifically need to control host-key checking, that’s an OpenSSH client option, not something documented as required by tinyfi.sh. For example (use with care):
ssh -o StrictHostKeyChecking=accept-new -R 80:localhost:3000 tinyfi.shssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -R 80:localhost:3000 tinyfi.shSource: tinyfi.sh homepage documentation [1]
References:
[1] tinyfi.sh (homepage) https://tinyfi.sh/
Align command with official tinyfi.sh documentation or add clarification.
The SKILL.md command includes
-o StrictHostKeyChecking=accept-new, but the official tinyfi.sh documentation shows the simpler command without this option:ssh -R 80:localhost:3000 tinyfi.sh. TheStrictHostKeyCheckingparameter is a client-side SSH option, not part of tinyfi.sh's official guidance. Either use the documented command or add a note explaining why this modification is included and its security implications.🤖 Prompt for AI Agents