Peer Share
approvedby gapmiss
Share files between vaults using WebRTC peer-to-peer connections - This plugin has not been manually reviewed by Obsidian staff.
Peer Share
Share files between Obsidian vaults using WebRTC peer-to-peer connections, powered by PairDrop.
Features
- P2P File Sharing: Direct peer-to-peer file transfers using WebRTC
- PairDrop Compatible: Works with PairDrop web and mobile browser apps
- Device Pairing: Pair devices for cross-network file sharing
- Share Files & Folders: Share individual files or entire folders between vaults
- Transfer History: Track all sent and received files in a searchable sidebar view
- Cross-Platform: Works on desktop (Windows, macOS, Linux) and mobile
- Auto-Discovery: Automatically discover peers on the same network
- Progress Tracking: Real-time transfer progress with detailed status
- Multilingual: Available in 8 languages (English, Spanish, German, French, Russian, Japanese, Korean, Simplified Chinese)
- System Notifications: Optional OS-level notifications for incoming transfers (desktop only)
- Configurable: Custom signaling server, save location, and log levels
Installation
Install from community.obsidian.md
From Obsidian's settings or preferences:
- Community Plugins > Browse
- Search for "Peer Share"
Manually:
- download the latest release archive
- uncompress the downloaded archive
- move the
peer-sharefolder to/path/to/vault/.obsidian/plugins/ - Settings > Community plugins > reload Installed plugins
- enable plugin
or:
- download
main.js,manifest.json&styles.cssfrom the latest release - create a new folder
/path/to/vault/.obsidian/plugins/peer-share - move all 3 files to
/path/to/vault/.obsidian/plugins/peer-share - Settings > Community plugins > reload Installed plugins
- enable plugin
Usage
Sharing Files
- Click the Peer Share icon in the ribbon (left sidebar)
- Select a peer from the list of discovered devices
- Choose files or folders to share
- Monitor transfer progress
Alternative Methods
- Context Menu: Right-click any file/folder and select "Share via Peer Share"
- Command Palette: Use
Ctrl/Cmd + Pand search for "Peer Share"Show available peers- Open peer selectionShare current file- Share the currently open fileShare files...- Open file pickerOpen share history- View transfer historyReconnect to server- Manually reconnectPair with device- Pair for cross-network sharingToggle connection- Connect or disconnect from server
- Status Bar: Click the status bar item for quick access to connect/disconnect, show peers, pair, and view your display name
Receiving Files
When someone sends you files:
- An incoming transfer dialog will appear
- Review the files being sent
- Click "Accept" to receive or "Decline" to reject
- Files are saved to your configured save location (default:
Peer Share/)
Device Pairing
Pair devices to share files across different networks:
- Run command
Peer Share: Pair with device - Choose "Show pairing code" on one device
- Enter the 6-digit code on the other device
- Devices are now paired and can discover each other from anywhere
Manage paired devices in Settings > Peer Share > Paired Devices.
Share History
View all your sent and received file transfers in the Share History sidebar:
- Open via command palette: "Peer Share: Open share history"
- Or from Settings > Peer Share > Share History > "Open History"
- Browse transfers grouped by time (Today, Yesterday, This Week, etc.)
- Search by filename, peer name, OS, or browser
- Filter by direction (sent/received) and status (completed/failed/cancelled)
- Export/import history for backup
- View statistics and reveal received files in vault
Settings
| Setting | Description |
|---|---|
| Signaling Server URL | WebSocket URL for peer discovery (default: wss://pairdrop.net) |
| Save Location | Folder where received files are saved (default: Peer Share/) |
| Discovery Mode | Auto-discover (local network + paired devices) or Paired devices only |
| Log Level | Console logging verbosity (Silent, Error, Warning, Info, Debug) |
| Auto-connect on startup | Automatically connect to server when Obsidian loads (default: enabled) |
| System Notifications | Show OS-level notifications for incoming transfers (desktop only, default: disabled) |
| Paired Devices | View and manage paired devices (each can have auto-accept enabled) |
| Share History | Configure history tracking, retention period, and privacy settings |
Self-Hosted Server
You can use your own PairDrop signaling server for privacy or reliability:
- See DEPLOYMENT.md for detailed hosting options including:
- Docker (recommended)
- Fly.io, Railway, Render (free tiers)
- VPS with Nginx reverse proxy
- Update the "Signaling Server URL" in plugin settings to your server's WebSocket URL
The signaling server only handles peer discovery - actual file data transfers directly between peers via WebRTC.
How It Works
- Signaling: Peers connect to a signaling server to discover each other
- WebRTC: Once peers are found, a direct WebRTC connection is established
- Transfer: Files are chunked into 64KB pieces and sent directly peer-to-peer
- Storage: Received files are saved to your vault using Obsidian's API
Data flows directly between peers - the signaling server only facilitates the initial connection and never sees your file contents.
Security
Peer Share uses WebRTC's built-in encryption (DTLS + SRTP) for secure peer-to-peer file transfers:
- ✅ All file data is encrypted during transfer (same encryption as Zoom/Google Meet)
- ✅ Signaling uses WSS (WebSocket Secure) - encrypted with TLS like HTTPS
- ✅ Server never sees your files - only connection metadata for peer discovery
- ✅ No configuration needed - encryption is automatic
For detailed security information, see SECURITY.md.
Compatibility
- Obsidian: v1.13.0+
- Platforms: Desktop (Windows, macOS, Linux), Mobile (iOS, Android)
- Peers: Works with other Obsidian vaults and PairDrop web/mobile browser apps
Troubleshooting
Can't see peers
- Ensure both devices are connected to the same signaling server
- Check if you're behind a restrictive firewall (may need TURN server)
- Try the "Reconnect" button in settings
Transfers failing
- Large files may timeout on slow connections
- Check your internet connection
- Try sending fewer files at once
Connection issues
- WebRTC requires HTTPS for the signaling server
- Some corporate networks block WebRTC - try a different network
License
MIT License - See LICENSE for details.
Credits
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.