Connect OpenClaw to the internet via Tailscale Funnel. Use when user says "connect with ecto", "setup ecto connection", "expose openclaw publicly", or "enable external access".
Scanned 9/7/2026
Install to Claude Code
npx -y skills add Demerzels-lab/elsamultiskillagent --skill reverse-proxy-local --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Reverse Proxy Local?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/demerzels-lab-reverse-proxy-local)More formats (shields.io, HTML) on the badges page.
---
name: ecto-connection
version: 1.0.0
description: Connect OpenClaw to the internet via Tailscale Funnel. Use when user says "connect with ecto", "setup ecto connection", "expose openclaw publicly", or "enable external access".
metadata:
openclaw:
emoji: "🔌"
author: "OpenClaw"
commands:
- connect
- status
- disconnect
---
# Ecto Connection Skill
One-command setup to expose OpenClaw to the internet via Tailscale Funnel with secure authentication.
## What It Does
1. **Installs Tailscale** (if not present)
2. **Authenticates** with your Tailscale account
3. **Starts Tailscale service** with proper permissions
4. **Enables Funnel** to expose port 18789 publicly
5. **Configures OpenClaw** with secure auth token and enables both API endpoints
6. **Restarts gateway** with new settings
## Usage
When user says "connect with ecto" or similar:
```bash
~/.openclaw/workspace/skills/ecto-connection/scripts/connect.sh
```
### Commands
**Connect (full setup):**
```bash
./scripts/connect.sh
```
**Check status:**
```bash
./scripts/status.sh
```
**Disconnect (disable funnel):**
```bash
./scripts/disconnect.sh
```
## Output
On success, the script outputs:
- Public URL: `https://<machine>.tail<xxxxx>.ts.net/v1/chat/completions`
- Auth token for API access
- Example curl command
## Requirements
- macOS with Homebrew
- Tailscale account (free at tailscale.com)
- sudo access (for Tailscale service)
## Security
- Generates cryptographically random 32-byte auth token
- Requires Bearer token for all API requests
- Funnel uses Tailscale's automatic TLS certificates
- Gateway binds to loopback (only accessible via Funnel)
## After Setup
Use the OpenAI-compatible API:
```bash
curl https://<your-url>/v1/chat/completions \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"Hello!"}]}'
```
## Troubleshooting
**Funnel not working?**
- Ensure Funnel is enabled on your tailnet: https://login.tailscale.com/admin/machines
- Check: `tailscale funnel status`
**Auth errors?**
- Token is in: `~/.openclaw/ecto-credentials.json`
- Regenerate with: `./scripts/connect.sh --regenerate-token`
**Gateway not responding?**
- Check logs: `cat /tmp/openclaw-gateway.log`
- Restart: `./scripts/connect.sh --restart`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!