macOS says Tower is from an “unidentified developer.” What now?
Use the one-line install and you'll never see that. Tower isn't notarized with Apple, and macOS quarantines anything you download in a browser — so it checks the signature, doesn't recognize it, and refuses to open the app. A file fetched with curl is never quarantined, so macOS doesn't run that check and Tower opens normally. If you'd rather download the zip by hand, clear the flag yourself with xattr -rd com.apple.quarantine /Applications/Tower.app, or open it once and choose Open Anyway in System Settings → Privacy & Security. (Right-click → Open used to work; macOS 15 removed it.)
Piping a script from the internet into sh — should I be nervous?
You're right to ask, and you shouldn't take anyone's word for it. Read the script first — it's short, and it's the same file the command fetches. It downloads the release from GitHub, unpacks it to /Applications, links the tower command, and opens the app. It asks for no password and never uses sudo. If you'd still rather not, download the zip from Releases and do it by hand.
Does Tower read my Anthropic API key or tokens?
No. Real plan usage is mirrored from Claude Code's own claude -p /usage — Claude does its own auth, and Tower never reads a token. The proxy tunnels HTTPS with CONNECT, so it sees hostnames and never decrypts your traffic.
How does Tower pin Claude Code to a country?
It runs a small local proxy and points Claude Code at it through the HTTPS_PROXY key in ~/.claude/settings.json — never through your shell. When you are confirmed outside your target country, a Claude request is held and answered 503 with Retry-After, so Claude retries it into its own spinner. The request is pending, not failed, and it resumes the moment you are back on-country.
What happens if Tower quits or crashes?
Quitting removes the proxy from settings.json first, so Claude Code returns to a direct connection. The guard un-routes on every clean exit and via atexit, and the daemon is single-instance. A crashed front-end can't break Claude.
How do I tell whether an outage is my internet or Anthropic?
Tower probes both, passively and continuously: your link, and a timed TLS handshake to api.anthropic.com. It reports online, degraded, offline, captive portal, or an Anthropic-side problem — plus an on-demand speed test. No guessing, and no Claude request is spent finding out.
Is Tower free? Does it run on Windows or Linux?
Tower is free and open source. The full experience — menubar app plus terminal dashboard — runs on macOS 14 or later, on Apple Silicon.
On Windows 10/11, the daemon and the terminal dashboard already run — same guard, same fail-closed proxy, no dependencies. Treat it as experimental: it's written and reviewed, but not yet tested on real Windows hardware, so expect rough edges (and please report them). The native tray app is next. A Linux front-end is planned — the curses dashboard should already run there.