# Tailcat
Tailcat is an open-source CLI and [[Go]] library from Tailscale that connects two machines on different networks through an encrypted tunnel. You don't need an account, a login flow, a tailnet or an IP address. One machine listens and prints a short tailcat address. The other uses that address to connect. Tailscale's own tagline: "Tailscale without Tailscale, by Tailscale". Think of it as [[netcat]] running over the [[Tailscale]] data plane.
## How it works
Tailcat keeps the open-source half of Tailscale (the `magicsock` data plane: [[WireGuard]] encryption, NAT traversal and DERP relays) and throws away the control plane. So there are no users, no admins, no SSO and no coordination server.
The server generates a keypair (ephemeral by default, or named and reused), picks a DERP relay and builds its address: `tc` followed by base64-encoded CBOR holding its public key and the DERP bootstrap info. You share that string out of band, directly or through a DNS TXT record. The client contacts the relay and sends a MEOW message to the server's public key (yes, really). If the server accepts that key (an optional allowlist can lock it down), it replies, and the client opens a TCP connection through a userspace TCP stack on top of WireGuard. NAT traversal then tries to switch to a direct UDP path; when both sides sit behind hard NATs, traffic stays on the DERP relay.
Everything runs in userspace. No root, no TUN device, no changes to your routing tables or DNS. That matters when one of the machines is ephemeral or untrusted and you'd rather not touch its system configuration.
## What you can do with it
Out of the box it pipes stdin/stdout like netcat, but the CLI does a lot more:
- **Ports**: expose local TCP ports (`tailcat serve 8080`) and map them to local ports on the client (`tailcat forward`), or open a served web app in your browser (`tailcat browse`)
- **[[Secure Shell (SSH)|SSH]]**: a built-in SSH server that checks `authorized_keys` files or GitHub accounts, plus a `no-auth-ssh` mode where the tunnel itself is the only gate
- **Files**: a write-only drop box (`tailcat recv`), read-only or read-write directory sharing over SFTP, and `tailcat cp` on top of scp
- **The rest**: a SOCKS5 proxy for programs that know nothing about tailcat, an exit-node mode to reach the server's network, an iperf-style `perf` test, `ping`, and an experimental WebAssembly demo that runs in the browser
## Why it exists
Brad Fitzpatrick wrote it in September 2023 on a ten-hour flight. It stayed an internal novelty until customers showed up with use cases that fit, and Tailscale released it publicly on August 31, 2026. What brought it back was AI agents: he gives his sandboxed agents tailcat so they can reach other machines for a task, e.g. a fleet covering every Raspberry Pi generation, or a Windows host for debugging the Go runtime. Agents often can't complete a login flow and don't need persistent network access, so a tailnet is more ceremony than the job needs.
Tailscale is for ongoing, governed access with identities, policies and auditing. Tailcat is for the quick job: SSH into a dev box for an hour, move a file, connect a game session, give an agent one machine. It also answers one of the first requests after Taildrop launched in 2021: netcat-like sharing between nodes.
## Caveats
- **The address is the credential.** Treat it like a password: don't log it, don't commit it. With `no-auth-ssh`, anyone holding the address gets a shell as the user running the server
- **It isn't anonymous.** Each node's public key acts as its identity
- **The hosted relays are throttled.** They're free, rate-limited, available in a handful of regions, and keep metadata logs. For privacy or throughput, run your own DERP server (it's open source too)
On Hacker News, the launch thread passed 680 points. Commenters compared it to Magic Wormhole (Thomas Ptacek: Magic Wormhole for general connectivity, beyond file transfer), Coder's wush (also built on Tailscale), Iroh and bitbang-cli. Others asked how hard it would be to take down malware using it as a command-and-control channel, and why not go fully self-hosted with something like [[NetBird]] or [[ZeroTier]].
## References
- Tailcat product page: https://tailscale.com/tailcat
- Brad Fitzpatrick, "Tailcat: Tailscale without Tailscale, by Tailscale" (Tailscale blog, 2026-08-31): https://tailscale.com/blog/tailcat
- GitHub repository and README: https://github.com/tailscale/tailcat
- Custom DERP servers (Tailscale docs): https://tailscale.com/docs/reference/derp-servers/custom-derp-servers
- Hacker News discussion (2026-08-26): https://news.ycombinator.com/item?id=49452990
- Hacker News discussion of the blog post (2026-09-01): https://news.ycombinator.com/item?id=49517420
## Related
- [[Tailscale]]
- [[WireGuard]]
- [[netcat]]
- [[AI Agents]]