Access your Tailscale network directly from your browser. No system VPN required.
https://tesseras.org/tailchrome/ | Chrome Web Store | Privacy Policy
Tailchrome runs a full Tailscale node per browser profile, without touching system networking. Tailnet traffic is routed through a local SOCKS5/HTTP proxy, so it works alongside (or without) the Tailscale system app.
- Chrome and Firefox — works in both browsers with full feature parity
- Per-profile isolation — each browser profile gets its own independent Tailscale node and identity
- Exit nodes — route all browser traffic through any exit node on your tailnet
- MagicDNS — access devices by name, not IP
- Subnet routing — reach resources behind subnet routers
- Taildrop — send files to other devices on your tailnet
- Profiles — create and switch between multiple Tailscale identities
The extension has two parts:
- A browser extension (Manifest V3, Chrome and Firefox) that manages proxy configuration and provides the popup UI
- A native host (Go, using
tsnet) that runs the actual Tailscale node and exposes a local proxy
They communicate over the browser's native messaging protocol.
- Install Tailchrome from the Chrome Web Store
- Click the extension icon and follow the prompts to install the native host
- Log in to your Tailscale account
- Install Tailchrome from GitHub Releases while the first AMO listing is being bootstrapped
- Click the extension icon and follow the prompts to install the separate native host helper from GitHub Releases
- Log in to your Tailscale account
Tailchrome stores a per-browser-profile ID, your last selected exit node, and any custom peer URLs in browser local storage. On Firefox it also stores the current proxy restore state in session storage so tailnet routing survives background suspension.
When Tailchrome is enabled, the extension connects to the local helper over native messaging and routes tailnet-bound traffic through the local Tailscale proxy. That transmission is required for login, MagicDNS, subnet routing, exit nodes, and Taildrop to work from the browser. Tailchrome does not include analytics or advertising trackers.
See docs/privacy-policy.md for the full policy text used for Firefox store review.
- Go 1.21+
- Node.js / pnpm
- Desktop Chrome or Firefox for manual extension testing
packages/extension/ # WXT app for Chrome and Firefox packaging/submission
packages/shared/ # Shared code (types, state management, popup logic)
host/ # Native messaging host (Go)
pnpm build:chrome # Chrome extension build
pnpm build:firefox # Firefox extension build
pnpm zip:chrome # chrome.zip
pnpm zip:firefox # firefox.zip + firefox-sources.zip
pnpm lint:firefox # AMO-style validation via web-ext lint
pnpm review:firefox # Firefox build + lint + zip + publish gate
make host # native host for the current platform
make host-all # release host binaries for all supported targets
make dev # Chrome watch mode via WXT
The extension outputs land in packages/extension/.output/. The native host binaries land in dist/.
- Run
pnpm install --frozen-lockfile - Build the extension and native host with
pnpm build:chrome,pnpm build:firefox, andmake host - Chrome: Go to
chrome://extensions, enable Developer Mode, and loadpackages/extension/.output/chrome-mv3/as an unpacked extension - Firefox: Go to
about:debugging#/runtime/this-firefoxand loadpackages/extension/.output/firefox-mv3/manifest.jsonas a temporary addon - Install the native host by running the binary directly (it auto-installs for both browsers)
- Pull requests run extension typecheck/tests, Chrome build, the full Firefox review gate, and native-host builds in GitHub Actions.
- Tagged releases (
v*) buildchrome.zip,firefox.zip,firefox-sources.zip, host binaries, and checksums, then attach them to the GitHub Release. - Store publication is driven from GitHub Actions with manual environment approvals before Chrome Web Store and AMO submission.
This project is still early. Bug reports and feature requests are welcome. Please open an issue first before submitting a PR so we can discuss the approach. See docs/CONTRIBUTING.md for setup and guidelines.
MIT
