tailscale-file
Send files between Tailscale devices
TLDR
Send a file to a specific node
Store files that were sent to the current node into a specific directory
SYNOPSIS
tailscale file
Sending Files:
tailscale file put [options] <file> <destination>
Receiving Files:
tailscale file get [options] [<file-id>]
Listing Pending Files:
tailscale file ls [options]
PARAMETERS
put <file> <destination>
Sends the specified <file> to the <destination>. The destination can be a Tailscale device name (e.g., 'my-laptop') or a Tailscale IP address (e.g., '100.x.y.z').
get [<file-id>]
Retrieves pending files. If no <file-id> is specified, it will interactively list available files to download. If an <file-id> is provided, it downloads that specific file directly.
ls
Lists files that have been sent to the current device and are awaiting retrieval. Shows file names, sizes, senders, and unique IDs.
-name <filename>
(For put) Specifies the name the file will appear as on the receiving device. Useful if the local filename is long or contains special characters. Example: -name 'report.pdf'
-o <output-path>
(For get) Specifies the output directory or full path for the downloaded file. If a directory is provided, the original filename is preserved. Example: -o ~/Downloads/
-q
(For put and get) Runs in quiet mode, suppressing progress indicators and non-essential output during transfer.
DESCRIPTION
The tailscale-file command facilitates secure and easy file transfers between devices connected on a Tailscale network. It allows users to send files to other Tailscale nodes by their name or IP address, and to receive files that have been sent to them. This utility abstracts away the complexities of network configuration and firewall rules, leveraging Tailscale's end-to-end encrypted connections for direct, peer-to-peer file transfer when possible, or through Tailscale's relays when direct connections are not feasible. It is particularly useful for quickly sharing documents, images, or other files without setting up traditional file sharing protocols like SCP or SMB.
CAVEATS
File transfers require both the sending and receiving devices to have the Tailscale daemon running and be connected to the same Tailscale network. Files sent are held on Tailscale's infrastructure for a limited time (typically 24 hours) if not retrieved, after which they are automatically deleted. Ensure sufficient disk space on the receiving device before attempting to download large files. Transfers are subject to network conditions and Tailscale's relay capacity if a direct connection cannot be established.
HISTORY
The tailscale-file command was introduced as part of the broader Tailscale client application to simplify secure file transfer within a Tailscale network. Its development aimed to provide a user-friendly, cross-platform alternative to traditional file sharing methods, leveraging Tailscale's existing secure mesh network capabilities. It evolved to integrate seamlessly with the Tailscale user experience, allowing for quick file exchange without complex setup or firewall considerations, directly addressing common user needs for secure data movement between their own devices.