{"id":46359975,"url":"https://github.com/dantraynor/tailchrome","last_synced_at":"2026-06-04T07:00:41.785Z","repository":{"id":341554567,"uuid":"1170583557","full_name":"dantraynor/tailchrome","owner":"dantraynor","description":"Tailscale browser extension for Chrome and Firefox","archived":false,"fork":false,"pushed_at":"2026-05-29T01:52:21.000Z","size":1689,"stargazers_count":68,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-29T02:23:04.030Z","etag":null,"topics":["browser-extension","chrome-extension","firefox-extension","golang","manifest-v3","native-messaging","networking","proxy","socks5","tailscale","tsnet","vpn","wireguard"],"latest_commit_sha":null,"homepage":"https://chromewebstore.google.com/detail/tailchrome/bhfeceecialgilpedkoflminjgcjljll?hl=en","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dantraynor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-02T09:36:07.000Z","updated_at":"2026-05-29T01:51:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dantraynor/tailchrome","commit_stats":null,"previous_names":["dantraynor/tailchrome"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/dantraynor/tailchrome","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dantraynor%2Ftailchrome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dantraynor%2Ftailchrome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dantraynor%2Ftailchrome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dantraynor%2Ftailchrome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dantraynor","download_url":"https://codeload.github.com/dantraynor/tailchrome/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dantraynor%2Ftailchrome/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33893323,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser-extension","chrome-extension","firefox-extension","golang","manifest-v3","native-messaging","networking","proxy","socks5","tailscale","tsnet","vpn","wireguard"],"created_at":"2026-03-05T01:01:10.212Z","updated_at":"2026-06-04T07:00:41.777Z","avatar_url":"https://github.com/dantraynor.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tailchrome\n\nAccess your Tailscale network directly from your browser. No system VPN required.\n\n\u003cimg width=\"1400\" height=\"560\" alt=\"promo-marquee\" src=\"https://github.com/user-attachments/assets/88f6953e-014c-4c35-aa44-d612786f6d17\" /\u003e\n\n[Chrome Web Store](https://chromewebstore.google.com/detail/tailchrome/bhfeceecialgilpedkoflminjgcjljll) | [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/tailchrome/) | [tesseras.org/tailchrome](https://tesseras.org/tailchrome/)\n\nTailchrome runs a full Tailscale node per browser profile, without touching system networking. Works in Chrome, Firefox, and other Chromium-family browsers (Brave, Edge, Vivaldi, Opera, plus Arc on macOS) with full feature parity. Tailnet traffic is routed through a local SOCKS5/HTTP proxy, so it works alongside (or without) the Tailscale system app.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"store-assets/readme-popup.png\" alt=\"Tailchrome popup\" width=\"320\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003cimg src=\"store-assets/readme-popup-exit-nodes.png\" alt=\"Tailchrome exit node picker\" width=\"320\"\u003e\n\u003c/p\u003e\n\n## Features\n\n- **Per-profile isolation** — each browser profile gets its own independent Tailscale node and identity\n- **Exit nodes** — route all browser traffic through any exit node on your tailnet, with a \"Best available\" recommendation that picks a nearby Mullvad location when one is available\n- **Split-tunneling** — pick domains that bypass your exit node (handy for sites that flag VPN traffic), or restrict the exit node to only the domains you list\n- **MagicDNS** — access devices by name, not IP\n- **Subnet routing** — reach resources behind subnet routers\n- **Profiles** — create and switch between multiple Tailscale identities\n- **Side panel** — opt in to keep the UI docked while you browse (Chrome side panel, Firefox sidebar)\n- **Auto-connect on start** — optional toggle that brings the tailnet up when the browser launches\n- **Shields Up** — block incoming connections for extra security\n\n## How it works\n\nThe extension has two parts:\n\n- A **browser extension** (Manifest V3, Chrome and Firefox) that manages proxy configuration and provides the popup UI\n- A **native host** (Go, using `tsnet`) that runs the actual Tailscale node and exposes a local proxy\n\nThey communicate over the browser's native messaging protocol. See the [full documentation](docs/DOCUMENTATION.md) for details.\n\n### Side panel mode\n\nBy default, clicking the Tailchrome toolbar icon opens a popup that dismisses on click-away. If you'd rather keep the UI visible while you browse, flip **Open as side panel** in the popup's quick settings:\n\n- **Chrome:** the side panel opens on toolbar click and stays open until you close it. Chrome keeps the extension's service worker alive while the panel is visible, so peer status updates feel snappier.\n- **Firefox:** the toolbar click opens Tailchrome in the sidebar. Flip the toggle from inside the sidebar to switch back to popup mode.\n\nThe same UI renders in either surface.\n\n## Install\n\n1. Get the extension from the [Chrome Web Store](https://chromewebstore.google.com/detail/tailchrome/bhfeceecialgilpedkoflminjgcjljll) (also installs in Brave, Edge, Vivaldi, Opera, and — on macOS — Arc) or [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/tailchrome/)\n2. Install the native helper from the [latest release](https://github.com/dantraynor/tailchrome/releases/latest) — on macOS, download and open **`tailchrome-helper-macos.pkg`**; on other platforms, download the binary and run it. The helper auto-installs the native messaging manifest into every supported browser it detects on your machine.\n3. Log in to your Tailscale account\n\n## Development\n\n```\npnpm install --frozen-lockfile\nmake dev              # Chrome extension (watch mode)\nmake host             # Native host binary\n```\n\nPRs run CI (lint, typecheck, tests, Firefox review gate). Tagged releases build all artifacts and publish to the Chrome Web Store and Firefox Add-ons. See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for full setup and build commands.\n\n## Contributing\n\nBug reports and feature requests are welcome. Please open an issue before submitting a PR so we can discuss the approach. See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for guidelines.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdantraynor%2Ftailchrome","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdantraynor%2Ftailchrome","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdantraynor%2Ftailchrome/lists"}