spritedrop
A persistent Taildrop file receiver for Sprites environments.
Features
- 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
Recommended Setup
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
Quick Install
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
Usage
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 server
Files are saved to ~/incoming by default.
Claude Code Skill
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
Configuration
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 ...)
Manual Installation
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/incomingRunning as a Service
Sprite Environment
sprite-env services create spritedrop \
--cmd /usr/local/bin/spritedrop \
--args "--dir=$HOME/incoming" \
--needs tailscaledsystemd
sudo 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 spritedrop
Building from Source
git clone https://github.com/kylemclaren/spritedrop.git cd spritedrop go build -o spritedrop .
License
MIT
