ConfigsMay 31, 2026·3 min read

Snapdrop — Local File Sharing PWA via WebRTC

A progressive web app for instant peer-to-peer file sharing on your local network, inspired by Apple AirDrop.

Agent ready

Ready-to-run agent install

This asset can be installed after the agent chooses its runtime, checks the plan, and runs the matching command.

Native · 98/100Policy: allow
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Single
Trust
Trust: Established
Entrypoint
Snapdrop Overview
Direct install command
npx -y tokrepo@latest install 0a57faef-5ccb-11f1-9bc6-00163e2b0d79 --target codex

Run after dry-run confirms the install plan.

Introduction

Snapdrop is a progressive web app that enables peer-to-peer file sharing between devices on the same local network. It uses WebRTC for direct device-to-device transfers with no file size limits, no uploads to external servers, and no account required. Open it in a browser on any device and start sending files.

What Snapdrop Does

  • Automatically discovers other Snapdrop-enabled devices on the same local network
  • Transfers files directly between browsers using WebRTC data channels
  • Sends short text messages between devices via the same interface
  • Works on any device with a modern browser including phones, tablets, and desktops
  • Operates as a PWA installable on home screens for quick access

Architecture Overview

Snapdrop uses a lightweight Node.js signaling server that helps devices on the same network discover each other via WebSocket connections. Once two peers are connected, the signaling server brokers a WebRTC handshake. After that, all file data flows directly peer-to-peer through WebRTC data channels, never touching the server. The server only sees device metadata for discovery purposes.

Self-Hosting & Configuration

  • Deploy with Docker using the linuxserver/snapdrop image or clone the repo and run with Node.js
  • The server requires only Node.js and npm with no database or external dependencies
  • Configure the listening port via environment variables; default is port 3000
  • Place behind a reverse proxy like Nginx or Caddy for HTTPS, which is required for WebRTC on most browsers
  • Network isolation ensures only devices on the same subnet see each other

Key Features

  • Zero-config peer discovery using local network broadcast via WebSocket rooms
  • End-to-end transfer with no server-side file storage or cloud dependency
  • No file size limit since transfers happen directly between browsers
  • Cross-platform support across Windows, macOS, Linux, iOS, and Android browsers
  • Lightweight server footprint suitable for Raspberry Pi or any small host

Comparison with Similar Tools

  • PairDrop — community fork of Snapdrop with additional features like room-based sharing and multi-file transfer improvements
  • LocalSend — native desktop and mobile app using a custom protocol; requires installation rather than a browser
  • AirDrop — Apple-only; Snapdrop works across all operating systems and browsers
  • KDE Connect — Linux-centric with Android support; Snapdrop is fully browser-based and platform-agnostic
  • Wormhole — cloud-relayed encrypted transfer; Snapdrop is local-only with no cloud involvement

FAQ

Q: Do files pass through the Snapdrop server? A: No. The server only handles device discovery. Files transfer directly between browsers via WebRTC.

Q: Does Snapdrop work across different networks? A: By default it only discovers devices on the same local network. For cross-network sharing, you would need a TURN relay server.

Q: Is there a file size limit? A: No hard limit. Transfer speed depends on your local network bandwidth and browser memory.

Q: Can I use Snapdrop without self-hosting? A: Yes. The public instance at snapdrop.net is available, though self-hosting gives you full control and privacy.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets