Why the app feels slow at home (and how to make it fast)
5 min read
You host your own Gateway and reach it from your phone or a browser. Sometimes the app feels slow - even at home, on the same Wi-Fi as the Gateway. The short version: that slowness is almost always a brief warm-up, not a broken setup. Give it a few seconds, or keep the app open, and it speeds up on its own. This page explains why, how to check, and how to fix the rare case that stays slow.
How your phone reaches the Gateway
Your phone and the Cockpit reach your Gateway through Tailscale, at a secure address like https://your-machine.your-tailnet.ts.net. Tailscale is required today because it is the one thing that gives your Gateway a web address browsers trust as secure - and your phone needs a secure connection before it allows the microphone, background updates, and notifications. Everything travels over a private, encrypted connection to your own machine.
Why the first few seconds can feel slow
Every Tailscale connection starts by routing through a relay server somewhere on the internet - on purpose, because a relay works the instant you open the app. While you use that relay, Tailscale quietly hunts for a direct path between your phone and your Gateway across your home network, and the moment it finds one it silently switches you over. No button, no setting - it just happens.
- Warming up (relayed): the first moments after opening the app, your data may take a long trip to a distant relay and back - even though the Gateway is a few feet away.
- Fast (direct): seconds later, your data goes straight across your own Wi-Fi.
"Connected through Tailscale" does not mean slow. At home you are always connected through Tailscale - that is normal. What decides fast or slow is the path underneath: direct across your Wi-Fi, or bounced through the relay. A phone can show a Tailscale address and still be on a fast, direct home path - we have measured exactly that (a home phone on the Tailscale route with a direct LAN connection at 44 ms). The real question is direct vs relayed.
How to see which state you are in
Open Menu -> Diagnostics in the mobile app. It shows how the Gateway sees you (route), your latency, download and upload speed, and a plain-English verdict. Run it, wait a few seconds, run it again - if the second run is much faster, you just watched the warm-up finish.

A single speed test cannot tell "warming up" apart from "genuinely stuck on the relay" - a slow first reading right after opening the app is usually just the warm-up. For the authoritative answer, ask your agent (below), or run Tailscale directly on the Gateway machine:
tailscale ping <device-tailscale-ip>
tailscale statusA reply via 192.168.x.x (a home address) means direct and fast; a reply via DERP means you are still on the relay. As a yardstick: direct on a home network is single-digit to low-tens of milliseconds; stuck on a relay is 100+ ms.
Let your agent diagnose it
You should not have to work through a checklist by hand - you have a coding agent connected to your Gateway. Ask it "is my connection direct or relayed, and why is it slow?" It runs:
cc-devthrottle diag network
cc-devthrottle diag resultsThe Gateway checks every connected device - direct or relayed, latency, and whether UDP and your network look healthy - by reading the Tailscale layer directly, no phone involved. That is the one check that can tell warming-up apart from genuinely-relaying, and it points at the specific thing to fix.
If it stays slow: the checklist
Re-test after a few seconds
The warm-up usually finishes on its own. This alone explains most "it felt slow" moments.
Keep the app open and use it
Real activity pushes Tailscale to complete the direct connection faster; open-and-immediately-measure is the worst case.
Grant Tailscale local-network access on your phone
Tailscale needs permission to see devices on your home Wi-Fi to build the direct path. If it is off, you can get stuck on the relay. Check the Tailscale app's settings.
Turn off exit nodes at home
If your phone routes all traffic through a Tailscale exit node, your data leaves the house and comes back - defeating the direct home path.
Fix router settings that block direct paths
Turn OFF wireless client isolation (also called AP or guest isolation), and allow UDP with UPnP or NAT-PMP enabled - Tailscale uses these to punch a direct path through your router.