WebFinder for Tailscale
Find web interfaces<br>across your tailnet
List dashboards, docs, admin pages, and test builds across your Tailscale network. Install WebFinder on each Mac/Linux peer you want listed.
macOS app + macOS/Linux CLI
Menubar App
iPhone App
Setup guide<br>Create a Tailscale OAuth client with Devices: Read scope, then paste the Client ID and Secret into the app. Install and start WebFinder on each Mac or Linux device you want to show up.
Walkthrough
Auth
CLI Output
web-finder
$ web-finder
Local:
● Docs Preview http://127.0.0.1:8001
UDM Pro:
● UniFi OS https://192.168.2.1:443
Tailscale:
● workstation Jellyfin https://workstation.example.ts.net:8096/web/
● workstation qBittorrent WebUI https://workstation.example.ts.net:38080/
● storage Synology NAS https://storage.example.ts.net:5001/
Install
Install the app, start the CLI publisher, or hand the prompt to an agent on a Mac or Linux device.
iOS
iPhone and iPad app. Free and open source.
Create a Tailscale OAuth client with Devices: Read
Install and run WebFinder on Mac/Linux devices you want to discover
Paste Client ID and Secret into the app, then pull to refresh
macOS
Signed and notarized menubar app + CLI via Homebrew
brew install --cask zeulewan/tap/webfinder<br>Copy
Installs WebFinder.app to Applications
Installs the web-finder CLI publisher
Works with Gatekeeper as a notarized Developer ID app
Run web-finder start --auto-publish for recommended setup
Linux
CLI publisher for Linux devices on your tailnet
curl -sSL https://raw.githubusercontent.com/zeulewan/web-finder/refs/heads/main/install.sh | bash<br>Copy
Clones repo to ~/.web-finder
Requires Node.js LTS; apt-based distros install it automatically
Adds web-finder CLI to PATH
Run web-finder start --auto-publish for recommended setup
Auto-publish may prompt for local Tailscale operator permission
Agent install
Copy this prompt into an agent with terminal access to the device
Install WebFinder from https://github.com/zeulewan/web-finder on this Mac or Linux device. It is fully free and open source, MIT licensed, and auditable, so inspect the repo and install script first if you do not trust it. On macOS, install with: brew install --cask zeulewan/tap/webfinder. On Linux, install with: curl -sSL https://raw.githubusercontent.com/zeulewan/web-finder/refs/heads/main/install.sh | bash. Use the documented install command for this OS; if it needs sudo or fails, explain why before using a custom install path. After installing, explain the two start modes: passive web-finder start, or web-finder start --auto-publish for individual setups. Ask which mode I want before starting it. Only use --auto-publish if I explicitly confirm, because it creates Tailscale Serve mappings for detected local web UIs. If WebFinder prompts for local Tailscale operator permission on Linux, explain that it lets WebFinder manage Tailscale Serve mappings without running as root and ask before answering yes; sudo may ask for my password the first time. After I choose, start WebFinder in that mode, then verify the install with web-finder version and web-finder status. If status shows Tailscale Serve permission errors, report the exact fix it recommends.<br>Copy
Works for Mac or Linux devices where an agent has shell access
Asks before enabling auto-publish
Keeps the install auditable from source
To uninstall from macOS or Linux:
curl -sSL https://raw.githubusercontent.com/zeulewan/web-finder/refs/heads/main/uninstall.sh | bash<br>Copy
How discovery works
Use auto-publish for the recommended setup, or plain start for passive discovery.
Manifest-based discovery
Remote devices show up after WebFinder is installed and started on each Mac or Linux peer you want to discover.
Local smart detection
Each publisher fetches titles locally. Recommended auto-publish mode can create Tailscale Serve mappings for detected listening web ports.
Tailnet-safe sharing
web-finder start --auto-publish is recommended and lets WebFinder create Tailscale Serve mappings for detected local web UIs. On Linux, it may prompt for local Tailscale operator permission. Plain web-finder start is the passive default and only advertises existing mappings.
Agent-friendly CLI
JSON output mode lets AI agents and scripts query your network programmatically.
CLI usage
Works great standalone or piped into scripts and AI agents.
web-finder<br>Show local services, gateway services, and Tailscale manifests
web-finder start<br>Passive default: advertise existing Tailscale Serve mappings
web-finder start --auto-publish<br>Recommended: publish detected local web UIs with Tailscale Serve; may prompt on Linux
web-finder stop<br>Stop sharing and disable autostart
web-finder status<br>Check daemon, Tailscale Serve, MagicDNS, and version
web-finder --json<br>Machine-readable JSON output
web-finder --debug<br>Verbose output, diagnostics, and peers with no published services
web-finder update<br>Pull latest CLI (and app on macOS)
web-finder...