ts-browser-ext

command module
v0.0.0-...-da48187 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2026 License: BSD-3-Clause Imports: 31 Imported by: 0

README

Tailscale Browser Extension (Experiment)

The Tailscale Browser Extension lets you access your tailnet resources using a browser extension, without necessarily installing Tailscale system-wide.

In particular, ...

  • you can simultaneously use a different tailnet per browser profile
    • separate out your personal tailnet in its own browser profile
  • you don't need to be root/admin to install it
  • it doesn't interfere with your other OS VPN(s) and route tables and is purely scoped to one browser profile

How it works

Ideally it would work purely with WASM/WASI, but browser extensions don't have enough APIs, so it regrettably has to use Native Messaging (Chrome, Firefox) where a native binary (using tsnet) runs as a child process under the browser and communicates with the browser extension with JSON messages back and forth.

The child process then runs an HTTP/SOCKS5 proxy on localhost:0 (with the kernel picking a random free port) and the browser extension uses the browser proxy API to send all web traffic through the child's proxy, which then sends it out over Tailscale, an exit node, or the Internet as normal.

Status

As of 2025-02-25, this is barely just starting to work and is not meant for end users yet. It's barely meant for developers at this point.

Browser OS Status
Chrome macOS Works
Chrome Linux Works in theory, untested
Chrome Windows Registry install work not yet done
Firefox macOS Mostly works
Firefox Linux Mostly works in theory, untested
Firefox Windows Registry install work not yet done
Safari * not possible; no support for Native Messaging

Developer instructions

To log out, for now you need to remove & re-add the extension.

Chrome
  1. Open the Extensions page (chrome://extensions) or Extensions... > Manage Extensions...
  2. Toggle "Developer mode" on.
  3. Click "Load unpacked".
  4. Navigate to the directory where you cloned this repo and select it.
  5. Pin the extension to the toolbar.
  6. Click the extension icon.
  7. Follow the instructions in the popup to run the printed go run ... command, which builds and registers the native messaging backend.
  8. Click the extension icon again and select "Log in".
Firefox
  1. Open the Debugging page (about:debugging#/runtime/this-firefox).
  2. Click "Load Temporary Add-on...".
  3. Navigate to the firefox/ subdirectory of this repo and select its manifest.json.
  4. Open the Add-ons Manager (about:addons), select the Tailscale extension, and under "Run in Private Windows" choose "Allow" if you want it to be active in private browsing.
  5. Pin the extension to the toolbar.
  6. Click the extension icon.
  7. Follow the instructions in the popup to run the printed go run ... command, which builds and registers the native messaging backend.
  8. Click the extension icon again and select "Log in".

Temporary add-ons in Firefox are removed when the browser restarts, so you'll need to reload it from about:debugging each session.

End user instructions

Don't use it yet. It's too rough. See status above.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL