Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
changelog:
exclude:
labels:
- duplicate
- invalid
- wontfix
- not-a-bug
categories:
- title: Highlights
labels:
- enhancement
- title: Fixes
labels:
- bug
- title: Documentation
labels:
- documentation
- title: Other changes
labels:
- "*"
8 changes: 0 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,9 @@ packaging/macos/**/_CodeSignature/
Thumbs.db

# IDE
.cursor/
.vscode/
.idea/

# persistmem
CLAUDE.md
.claude/
docs/superpowers/

# Editor swap files
*.swp
*.swo
Expand All @@ -37,5 +31,3 @@ docs/superpowers/

# Tooling
.context/
.playwright-mcp/
.omc/
7 changes: 6 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
LDFLAGS = -ldflags "-X main.version=$(VERSION)"
# Tailscale library version, read from go.mod and stamped into the binary so the
# embedded tsnet node reports a clean version (e.g. "1.94.2") instead of the
# "-ERR-BuildInfo"/"-dev" fallback that a plain `go build` produces. Derived (not
# hardcoded) so it tracks the pinned dependency automatically when it is bumped.
TS_VERSION = $(shell cd host && go list -m -f '{{.Version}}' tailscale.com 2>/dev/null | sed 's/^v//')
LDFLAGS = -ldflags "-X main.version=$(VERSION) -X tailscale.com/version.shortStamp=$(TS_VERSION) -X tailscale.com/version.longStamp=$(TS_VERSION)"

.PHONY: all extension extension-chrome extension-firefox host host-all macos-pkg clean dev zip zip-chrome zip-firefox

Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@ Tailchrome runs a full Tailscale node per browser profile, without touching syst

- **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, with a "Best available" recommendation that picks a nearby Mullvad location when one is available
- **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
- **MagicDNS** — access devices by name, not IP
- **Subnet routing** — reach resources behind subnet routers
- **Profiles** — create and switch between multiple Tailscale identities
- **Side panel** — opt in to keep the UI docked while you browse (Chrome side panel, Firefox sidebar)
- **Auto-connect on start** — optional toggle that brings the tailnet up when the browser launches
- **Shields Up** — block incoming connections for extra security

## How it works
Expand Down
13 changes: 9 additions & 4 deletions STORE_LISTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@ Tailchrome connects your browser to your Tailscale tailnet without installing a
- Access devices on your tailnet by name or IP, directly from the browser
- Per-profile isolation: each Chrome profile gets its own Tailscale identity
- Exit nodes: route browser traffic through any exit node on your tailnet, with a "Best available" recommendation that picks a nearby Mullvad location when available
- Split-tunneling: choose domains that bypass your exit node (useful for sites that flag VPN traffic), or restrict the exit node to a specific set of domains
- MagicDNS: reach your devices by hostname
- Subnet routing: access resources behind subnet routers
- Side panel mode: opt-in toggle keeps the Tailchrome UI docked next to your tabs instead of dismissing on click-away
- Auto-connect on start: optional toggle that brings your tailnet up automatically when the browser launches
- No system networking changes: only browser traffic is affected
- Shields Up mode for extra security
- Works in Chrome and other Chromium-family browsers (Brave, Edge, Vivaldi, Opera; Arc on macOS)
Expand Down Expand Up @@ -53,9 +55,11 @@ Tailchrome connects Firefox to your Tailscale tailnet without a system VPN. Each
- Browse devices on your tailnet by name or IP
- Per-profile Tailscale isolation
- Exit nodes for routing through your tailnet, with a "Best available" recommendation that prefers nearby Mullvad locations when available
- Split-tunneling: choose domains that bypass an exit node, or restrict the exit node to specific domains only
- MagicDNS hostname resolution
- Subnet routing support
- Optional sidebar mode keeps Tailchrome docked while you browse
- Auto-connect on start: optional toggle to bring the tailnet up automatically on browser launch
- Zero system networking changes
- Shields Up mode

Expand All @@ -78,7 +82,8 @@ For creating store screenshots, capture these states at 360px width:

1. **Connected view** - Show the main popup with a connected tailnet, green status dot, IP address, and a few online peers
2. **Exit node picker** - Show the exit node selection with suggested node and a few options with country flags
3. **Peer actions** - Show an expanded peer item with Copy IP, Copy DNS, Open, SSH buttons
4. **Quick Setup** - Show the install stepper with "Download for macOS" button and step 2 instructions
5. **Profile switcher** - Show multiple profiles with Active badge
6. **Dark mode** - Repeat screenshot 1 in dark mode to show theme support
3. **Split-tunneling** - Show the expanded split-tunneling editor under the Exit Node row with the mode selector and a few example domains in the textarea
4. **Peer actions** - Show an expanded peer item with Copy IP, Copy DNS, Open, SSH buttons
5. **Quick Setup** - Show the install stepper with "Download for macOS" button and step 2 instructions
6. **Profile switcher** - Show multiple profiles with Active badge
7. **Dark mode** - Repeat screenshot 1 in dark mode to show theme support
Loading
Loading