A browser extension that allows you to send images between Tailscale devices using Taildrop.
- Send images from your browser to any online Tailscale device
- Supports drag-and-drop, copy-paste, and file selection
- Shows device status with OS-specific icons
- Works with Chrome, Edge, and other Chromium-based browsers
- Tailscale must be installed and running on your system
- You must be logged into Tailscale
- The devices you want to send files to must have Taildrop enabled
Download the appropriate native host binary for your platform from the latest release:
- Windows:
tailscale_sender_host_windows_amd64.exe - macOS (Intel):
tailscale_sender_host_darwin_amd64 - macOS (Apple Silicon):
tailscale_sender_host_darwin_arm64 - Linux:
tailscale_sender_host_linux_amd64
- Create a directory for the extension (e.g.,
C:\tailscale-image-sender) - Copy the downloaded
tailscale_sender_host_windows_amd64.exeto this directory and rename it totailscale_sender_host.exe - Create a file named
nmh-manifest.jsonin the same directory with the following content:
{
"name": "com.bitandbang.tailscale_image_sender",
"description": "Host for sending files via Tailscale.",
"path": "C:\\tailscale-image-sender\\tailscale_sender_host.exe",
"type": "stdio",
"allowed_origins": [
"chrome-extension://YOUR_EXTENSION_ID/"
]
}- Create a registry file
install.regwith the following content (update the path):
Windows Registry Editor Version 5.00
; For Google Chrome
[HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.bitandbang.tailscale_image_sender]
@="C:\\tailscale-image-sender\\nmh-manifest.json"
; For Microsoft Edge
[HKEY_CURRENT_USER\Software\Microsoft\Edge\NativeMessagingHosts\com.bitandbang.tailscale_image_sender]
@="C:\\tailscale-image-sender\\nmh-manifest.json"- Double-click
install.regto add the registry entry
- Create the native messaging hosts directory (choose based on your browser):
# For Google Chrome
mkdir -p ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/
# For Microsoft Edge
mkdir -p ~/Library/Application Support/Microsoft Edge/NativeMessagingHosts/
# For Chromium
mkdir -p ~/Library/Application Support/Chromium/NativeMessagingHosts/- Copy the downloaded binary to a suitable location:
mkdir -p ~/Library/Application Support/tailscale-image-sender
cp tailscale_sender_host_darwin_* ~/Library/Application Support/tailscale-image-sender/tailscale_sender_host
chmod +x ~/Library/Application Support/tailscale-image-sender/tailscale_sender_host- Create the manifest file (adjust the path based on your browser from step 1):
# Replace "Google/Chrome" with "Microsoft Edge" or "Chromium" as needed
cat > ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.bitandbang.tailscale_image_sender.json << EOF
{
"name": "com.bitandbang.tailscale_image_sender",
"description": "Host for sending files via Tailscale.",
"path": "$HOME/Library/Application Support/tailscale-image-sender/tailscale_sender_host",
"type": "stdio",
"allowed_origins": [
"chrome-extension://YOUR_EXTENSION_ID/"
]
}
EOF- Create the native messaging hosts directory (choose based on your browser):
# For Google Chrome
mkdir -p ~/.config/google-chrome/NativeMessagingHosts/
# For Chromium
mkdir -p ~/.config/chromium/NativeMessagingHosts/
# For Microsoft Edge
mkdir -p ~/.config/microsoft-edge/NativeMessagingHosts/- Copy the downloaded binary to a suitable location:
mkdir -p ~/.local/share/tailscale-image-sender
cp tailscale_sender_host_linux_amd64 ~/.local/share/tailscale-image-sender/tailscale_sender_host
chmod +x ~/.local/share/tailscale-image-sender/tailscale_sender_host- Create the manifest file (adjust the path based on your browser from step 1):
# Replace "google-chrome" with "chromium" or "microsoft-edge" as needed
cat > ~/.config/google-chrome/NativeMessagingHosts/com.bitandbang.tailscale_image_sender.json << EOF
{
"name": "com.bitandbang.tailscale_image_sender",
"description": "Host for sending files via Tailscale.",
"path": "$HOME/.local/share/tailscale-image-sender/tailscale_sender_host",
"type": "stdio",
"allowed_origins": [
"chrome-extension://YOUR_EXTENSION_ID/"
]
}
EOF- Clone this repository or download the source code
- Open Chrome/Edge and navigate to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked" and select the extension directory
- Note the extension ID that appears
- Replace
YOUR_EXTENSION_IDin thenmh-manifest.json(Windows) orcom.bitandbang.tailscale_image_sender.json(macOS/Linux) file with your actual extension ID - For Windows, you may need to update and re-run the registry file if you already installed it
- Click the extension icon in your browser
- You should see a list of your online Tailscale devices
- Try sending an image to verify everything works
- Click the extension icon to open the popup
- Select a device from the list
- Send an image using one of these methods:
- Drag and drop: Drag an image file onto the drop zone
- Copy and paste: Copy an image (from a webpage or file) and paste with Ctrl+V/Cmd+V
- File selection: Click "Select Image" to browse for a file
The extension supports common image formats including:
- JPEG/JPG
- PNG
- GIF
- WebP
- BMP
- Verify the native host binary is in the correct location
- Check that the path in the manifest file is correct
- Ensure the binary has execute permissions (macOS/Linux)
- Check that the extension ID in the manifest matches your installed extension
- Ensure Tailscale is running:
tailscale status - Verify you're logged in to Tailscale
- Check that other devices are online and have Taildrop enabled
The native host creates a debug.log file in its directory. Check this file for error messages if you're experiencing issues.
cd native-host
go build -o tailscale_sender_host -ldflags="-w -s" .On Windows, the output will be tailscale_sender_host.exe.
To build for different platforms:
# Windows
GOOS=windows GOARCH=amd64 go build -o tailscale_sender_host.exe -ldflags="-w -s" .
# macOS (Intel)
GOOS=darwin GOARCH=amd64 go build -o tailscale_sender_host -ldflags="-w -s" .
# macOS (Apple Silicon)
GOOS=darwin GOARCH=arm64 go build -o tailscale_sender_host -ldflags="-w -s" .
# Linux
GOOS=linux GOARCH=amd64 go build -o tailscale_sender_host -ldflags="-w -s" .Contributions are welcome! Please feel free to submit issues and pull requests.