Idle TTL & Auto-Renew
The problem
Fixed TTLs are great for security — tunnels can't accidentally stay open forever. But sometimes you want a tunnel that stays alive while you're actively using it.
Idle TTL mode
When you open a tunnel with --idle, the TTL becomes an inactivity timeout:
nullbore open --port 3000 --ttl 30m --idle
- Every HTTP request or byte of traffic resets the expiry clock
- The tunnel stays open as long as there's traffic within the TTL window
- After 30 minutes of zero activity, the tunnel closes
How it works
14:00 Tunnel opened (expires 14:30)
14:15 Request received → expiry reset to 14:45
14:20 Request received → expiry reset to 14:50
14:50 No activity for 30 min → tunnel closes
Via the API
curl -X POST https://tunnel.nullbore.com/v1/tunnels \
-H "Authorization: Bearer nbk_your_key" \
-H "Content-Type: application/json" \
-d '{"local_port": 3000, "ttl": "30m", "idle_ttl": true}'
Use cases
- Development sessions: Keep the tunnel alive while you're coding, auto-close when you stop
- MCP server exposure: Available while the AI agent is working, closes when the session ends
- Demo environments: Up while someone is looking, gone when they leave
- Webhook testing: Stays alive while you're iterating, doesn't linger after
Plan limits
Idle TTL mode still respects your plan's maximum TTL. On the free plan, the tunnel will close after 2 hours of continuous activity regardless of idle TTL. On Pro, there is no maximum — the tunnel can stay alive indefinitely as long as there's periodic traffic.
| Plan | Max idle TTL |
|---|---|
| Free | 2 hours |
| Hobby | 7 days |
| Pro | Unlimited |