A persistent Taildrop file receiver for Sprites environments.
- Continuously listens for incoming Taildrop files
- Automatically restarts after receiving files
- Works with systemd or Sprite service managers
- Installs Tailscale if not already present
- Send files between Sprites or any device on your tailnet
For multiple Sprites, create a dedicated tailnet using a new GitHub organization. This keeps your Sprites isolated and organized:
- Create a new GitHub org (e.g.,
myproject-sprites) - Sign up for Tailscale using that org
- Install spritedrop on each Sprite - they'll automatically join the same tailnet
bash <(curl -fsSL https://raw.githubusercontent.com/kylemclaren/spritedrop/main/install.sh)The installer will:
- Install Tailscale (if not present)
- Prompt for a device hostname (or generate a unique one)
- Authenticate Tailscale
- Download the latest spritedrop binary
- Set up spritedrop as a persistent service
Once installed, send files from any device on your tailnet:
# From macOS/Linux CLI
tailscale file cp myfile.txt <hostname>:
# From macOS Finder
Right-click file → Share → Taildrop → select your serverFiles are saved to ~/incoming by default.
On Sprite environments with Claude Code, the installer adds a /spritedrop skill:
/spritedrop # Check incoming files and status
/spritedrop send <file> <device> # Send a file
Set environment variables before the install command:
# Custom Tailscale hostname (skip interactive prompt)
SPRITEDROP_HOSTNAME=sprite-myproject bash <(curl -fsSL ...)
# Custom file directory
SPRITEDROP_DIR=/data/incoming bash <(curl -fsSL ...)
# Both options
SPRITEDROP_HOSTNAME=sprite-api SPRITEDROP_DIR=/data/incoming bash <(curl -fsSL ...)Download the binary for your platform from Releases:
# Linux amd64
curl -fsSL https://github.com/kylemclaren/spritedrop/releases/latest/download/spritedrop-linux-amd64 -o spritedrop
chmod +x spritedrop
./spritedrop --dir=/path/to/incomingsprite-env services create spritedrop \
--cmd /usr/local/bin/spritedrop \
--args "--dir=$HOME/incoming" \
--needs tailscaledsudo tee /etc/systemd/system/spritedrop.service <<EOF
[Unit]
Description=Spritedrop file receiver
After=tailscaled.service
[Service]
Type=simple
User=$USER
ExecStart=/usr/local/bin/spritedrop --dir=$HOME/incoming
Restart=always
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable --now spritedropgit clone https://github.com/kylemclaren/spritedrop.git
cd spritedrop
go build -o spritedrop .MIT
