Syncthing — Open Source Peer-to-Peer File Synchronization
Syncthing is a continuous file synchronization tool that syncs files between devices directly — no cloud, no servers, no accounts. Encrypted, private, and decentralized.
What it is
Syncthing is a continuous file synchronization tool that syncs files between devices directly, without any cloud servers or third-party accounts. All communication is encrypted with TLS, and devices authenticate each other using unique device IDs. Syncthing is open source, decentralized, and works on Linux, macOS, Windows, Android, and FreeBSD.
Syncthing is designed for privacy-conscious users and teams who want to sync files across devices without trusting cloud providers with their data.
How it saves time or tokens
Cloud sync services (Dropbox, Google Drive) require accounts, have storage limits, and store your data on third-party servers. Syncthing eliminates all middlemen: files go directly from device to device. There are no storage limits beyond your own disk space, no subscription fees, and no data leaves your network. Setup takes minutes and runs continuously in the background.
How to use
- Install Syncthing:
# Linux
curl -s https://syncthing.net/release-key.gpg | sudo tee /etc/apt/trusted.gpg.d/syncthing.asc
sudo apt install syncthing
# macOS
brew install syncthing
# Or download from https://syncthing.net/downloads/
- Start Syncthing and open the web UI:
syncthing
# Open http://localhost:8384
- Add a remote device by exchanging device IDs, then share a folder between devices.
Example
Syncing a project directory between a laptop and desktop:
# On both machines, start Syncthing
syncthing
# On Machine A: note the Device ID from the web UI
# On Machine B: Add Remote Device -> paste Machine A's ID
# On Machine A: Accept the device pairing request
# On Machine A: Add Folder -> select ~/projects/myapp
# Share with Machine B
# Machine B accepts the folder share
# Files now sync continuously between both machines
# Changes on either side propagate automatically
Related on TokRepo
- Self-hosted tools — Browse self-hosted file and sync tools
- Security tools — Explore privacy and encryption tools
Common pitfalls
- Not setting up ignore patterns for build artifacts and node_modules. Syncthing will sync everything in shared folders. Create a
.stignorefile to exclude large, regeneratable directories. - Expecting Syncthing to work like a backup tool. Syncthing is synchronization, not backup. If you delete a file on one device, it is deleted on all synced devices. Use Syncthing's file versioning feature for undo capability.
- Running Syncthing without a firewall exception. Syncthing needs ports 22000 (TCP/QUIC) for data transfer and 21027 (UDP) for discovery. Without these, sync relies on relay servers, which is slower.
Frequently Asked Questions
Yes. Syncthing transfers files directly between devices when possible. If direct connection is not possible (NAT, firewall), it uses relay servers as encrypted tunnels. The relay cannot read your data since the transfer is end-to-end encrypted.
Yes. When the same file is modified on two devices simultaneously, Syncthing keeps both versions and names the conflicting copy with a .sync-conflict suffix. You resolve the conflict manually by choosing which version to keep.
Yes. Syncthing works across the internet, not just on local networks. It uses global discovery and relay servers to connect devices behind NAT. For best performance, set up port forwarding on your router.
Syncthing handles millions of files and terabytes of data. Large repositories (100GB+) work well. Performance depends on disk speed and network bandwidth, not Syncthing itself.
Syncthing has an official Android app. There is no official iOS app, but third-party alternatives exist. On iOS, the sync-through-a-server architecture of cloud services is generally more practical.
Citations (3)
- Syncthing GitHub— Syncthing is peer-to-peer file synchronization
- Syncthing Documentation— End-to-end encrypted file sync
- Syncthing Security— Decentralized architecture with relay fallback
Related on TokRepo
Discussion
Related Assets
NAPI-RS — Build Node.js Native Addons in Rust
Write high-performance Node.js native modules in Rust with automatic TypeScript type generation and cross-platform prebuilt binaries.
Mamba — Fast Cross-Platform Package Manager
A drop-in conda replacement written in C++ that resolves environments in seconds instead of minutes.
Plasmo — The Browser Extension Framework
Build, test, and publish browser extensions for Chrome, Firefox, and Edge using React or Vue with hot-reload and automatic manifest generation.