{"slug": "tailcat-for-minecraft", "title": "Tailcat for Minecraft", "summary": "Tailscale published Tailcat for Minecraft, an unofficial, mostly AI-generated Fabric 1.21.1 client mod prototype that shares an integrated Minecraft world over Tailcat's userspace WireGuard, magicsock direct NAT traversal and DERP fallback without a TUN interface or a Tailscale installation. The mod splits responsibilities so Java owns Minecraft UI and process lifecycle while a bundled Go helper handles all networking and encryption, and it restricts sharing to virtual TCP port 25565 with join listeners bound only to 127.0.0.1 and capped concurrent streams. Tailscale states it is not an officially supported product and that the company has no plans to distribute it; the repository is provided for demonstration and amusement only.", "body_md": "Warning\n\nThis is a quick, mostly AI-generated prototype demonstrating one way to use Tailcat. It is not an officially supported Tailscale product, and Tailscale has no plans to distribute it. This repository is provided for demonstration and amusement only.\n\nA Fabric 1.21.1 client mod that shares an integrated Minecraft world through\n[Tailcat](https://github.com/tailscale/tailcat)'s\nstandard userspace WireGuard, magicsock direct NAT traversal, and DERP fallback.\nIt creates no TUN interface and requires no Tailscale installation. Java owns\nMinecraft UI/process lifecycle; the bundled Go helper owns all networking and\nencryption.\n\n## tailcatmcdemo.mp4\n\nRequirements are JDK 21, `curl`, and `tar`. The helper uses the public\n[Tailcat Go module](https://github.com/tailscale/tailcat). The native build\nscript downloads the required Tailscale Go toolchain:\n\n```\nscripts/build-natives.sh\n./gradlew :mod:build\n```\n\nThe normal JAR is written to `mod/build/libs/`. For Java-only development,\nset `MCLINK_HELPER` to a locally built helper path. The native build produces\nand checksums Windows, macOS (Intel and Apple Silicon), and Linux helpers.\n\nThe host pauses a single-player game and clicks **Share with Tailcat**, then\ncopies the `mcl1_...` invitation. The other player opens Multiplayer, clicks\n**Connect with Tailcat**, pastes it, and connects. Opening remote sharing\npublishes the integrated server using Minecraft's normal LAN behavior if it is\nnot already published.\n\nThe versioned invitation wraps an ephemeral Tailcat connection token. Possession\nof that unguessable token authorizes access for the lifetime of the sharing\nsession. The helper allows only virtual TCP port 25565, binds join listeners\nonly to `127.0.0.1`, and caps concurrent streams.\n\nTo test with one Minecraft account, launch only the host with the explicitly development-only offline-auth switch:\n\n```\nMCLINK_DEV_OFFLINE_AUTH=1 ./gradlew :mod:runClient\n```\n\nLaunch the second client from another terminal with an isolated game directory and a different offline username:\n\n```\nmkdir -p mod/run-client2\n./gradlew :mod:runClient --args='--gameDir ../run-client2 --username Client2'\n```\n\nThe switch is ignored outside Fabric's development environment and the server's original online-mode setting is restored when Tailcat sharing stops. Never use this bypass for real remote sharing.\n\nThe build is unsigned by default. Public release artifacts must Authenticode-\nsign both Windows executables, sign/notarize the two macOS executables, replace\nthe packaged files, regenerate `checksums.json`, generate complete third-party\nnotices, and then build the final JAR. Test separate machines and direct/DERP\npaths as listed in the project brief.\n\nGenerate the dependency notices from the locked Go module graph (for example,\nwith `go-licenses report ./...`). Tailcat and Tailscale are BSD-3-Clause\nlicensed; Fabric Loader/API are runtime dependencies rather than embedded mod\ncontents, and Minecraft remains subject to Mojang's terms.", "url": "https://wpnews.pro/news/tailcat-for-minecraft", "canonical_source": "https://github.com/tailscale/tailcat-for-minecraft", "published_at": "2026-11-13 03:37:26+00:00", "updated_at": "2026-11-13 03:50:40.420358+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools"], "entities": ["Tailscale", "Tailcat", "Minecraft", "Fabric", "WireGuard", "Mojang"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/tailcat-for-minecraft", "markdown": "https://wpnews.pro/news/tailcat-for-minecraft.md", "text": "https://wpnews.pro/news/tailcat-for-minecraft.txt", "jsonld": "https://wpnews.pro/news/tailcat-for-minecraft.jsonld"}}