A local-first, zero-cloud desktop and mobile continuity engine for resumable file transfers, clipboard synchronization, and hardware interaction across mixed operating systems.
Get it from the Microsoft Store Β· Help test the Android app on Google Play

| Windows | Android |
![]() ![]() |
![]() ![]() |
| Linux | |
![]() |
|
| macOS menu bar | Transfers on macOS |
![]() |
![]() |
Link All bridges disparate operating systems (macOS, Windows, Android, Linux) without relying on intermediate cloud infrastructure, proprietary ecosystem lock-in, or external routing servers. All communication takes place point-to-point over local wireless networks (Wi-Fi, LAN, or standalone Wi-Fi Direct / Mobile Hotspot connections).
At its core sits an event-driven asynchronous Rust daemon (linkall-core), designed for zero idle resource consumption and low-latency local IPC communication with platform-native graphical frontends. Whether transferring multi-gigabyte payloads or synchronizing high-frequency clipboard updates, Link All relies strictly on local system primitives and explicit end-to-end encryption.
Link All focuses primarily on two battle-tested primitives: resilient local file transport and high-speed universal clipboard synchronization.
Sending files across a local network shouldn't stall due to transient packet loss or intermittent interface drops. Link All implements a streaming transport layer engineered for high saturation and resiliency:
-
Zero-Copy Memory Pipelines (
bytes::Bytes): The networking core operates on reference-counted memory slices. Buffer slicing ($O(1)$ complexity) across asynchronous reading channels prevents redundant heap allocation and RAM duplication during massive file relays. -
Adaptive Chunk Batching (
adaptive_batch_size): Outbound file transmission dynamically adjusts read-ahead queue depth based on live acknowledgment feedback (next_chunk - last_acked_chunk). High-bandwidth links scale up concurrent operations, while congested links throttle down automatically to prevent memory spikes or timeout drops. -
Geometric Socket Auto-Tuning: Sockets apply geometric buffer fallback progressions (
16 MBdown to256 KB), securing the largest OS kernel buffer (SO_SNDBUF/SO_RCVBUF) supported by the local network interface. -
Resumable Transfers & Fast Entropy Sampling: Mid-transfer interruptions resume seamlessly without starting over. Prior to compression stages, the engine performs a brief 4 KB entropy check (
should_try_compress); incompressible binaries (.mp4,.zip,.jpg) immediately bypass CPU compression cycles.
- Cross-Platform Activity Feed: Copying text, URLs, or image payloads on one device transmits structured payload metadata across trusted peer sockets in real time. Items appear inside a searchable local history ring buffer with support for pinning and tagging.
- Configurable Content Filtering (
filter.rs): To safeguard passwords, One-Time Passwords (OTPs), API keys, and credit cards from persisting on unattended hardware, Link All evaluates clipboard contents against local pre-flight heuristic rules and regular expressions before initiating network broadcasts. - Deduplicated FFI String Caching: Across C-FFI boundaries (
PbEvent::cache_str), common heap strings are recycled during high-frequency IPC updates, avoiding unneeded allocations within UI view loops.
In addition to core file and clipboard synchronization, Link All includes several secondary modules built atop the secure peer connection layer:
- Remote File Browsing: Search, preview and fetch files on a paired device. A phone can browse a computer's Downloads, Documents, Pictures, Videos and Music once that computer turns on Let devices browse files (off by default). A computer can browse a phone with the Android build from GitHub Releases; the Google Play build leaves this out, because Play limits all-files access to file managers.
- Notification & Call Handoff: Mirror mobile SMS messages, phone call alerts, and application notifications directly to desktop notification centers.
- Power & Battery Monitoring: Surface remote hardware battery status (
0β100%) and charging states directly within desktop system trays. - OS-Level Sleep Immunity: Leverages platform power management primitives (
ProcessInfo.beginActivityon macOS,SetThreadExecutionStateon Windows, and selective wake locks on Android) during ongoing bulk transfers to prevent unintended system suspension. - Device-First Home: Home leads with each connected device, showing its status, what it is playing and the few things you do most with it. Open a device for its own page: send, browse files, remote control, music, ring, details, connect or forget. The layout is the same on Android, macOS, Windows and Linux.
- Now Playing: What one device plays shows on the others with title, artist, cover and controls. A computer's track appears on the phone's lock screen and notification shade with a scrub bar, and the buttons control the computer. The phone's track shows on the computer with play/pause, skip and seek. Needs Remote control on at the computer.
linkall-cli nowplaying,linkall-cli media. - Notes: Notes, links and snippets shared between your own devices, kept on each device and sent only to paired ones. Pin, search, filter (All, Pinned, Links, Code), edit with basic formatting, and "Save to Notes" from the share sheet. The newest edit wins, and a device that was off catches up when it connects.
linkall-cli scratch. - Guest Drop: Receive files from someone who isn't paired. A QR code, link and PIN let a guest send files from any browser on the same network. It lasts five minutes, five wrong PINs end it, and nothing is paired or remembered. The page is not encrypted, so use it on a network you trust.
linkall-cli guest. - Insert from Phone: Ask the phone for a photo or a scanned document. It comes back to the computer's clipboard and is pasted into the app you were using. Scanning uses Google's document scanner when available.
linkall-cli capture. - Verification Codes (Android): The 4 to 8 digit code in a text from a bank, Google or GitHub shows on the computer with Copy Code and Paste buttons. Off by default; needs notification access.
- Click to Call: Offer a number to the phone from a computer; tapping the notification opens the dialer with the number filled in. Nothing is dialled on its own.
tel:links work once Link All is chosen for them.linkall-cli call. - Phone Remote: Control a computer from the phone: play/pause, next and previous, volume, mute and seek, plus a full mouse and keyboard (pointer, click, drag, scroll, pinch, multi-finger gestures, shortcuts, function keys, a text field and an Air mouse that points with the gyroscope). Lock, screen off and ring a computer too. Off by default; turn it on per computer in Settings βΊ Remote Control.
- Keyboard & Mouse Sharing: Move the pointer past a screen edge to drive a paired computer with this computer's keyboard and mouse. Shortcuts that a Mac and a PC spell differently are translated (for example Cmd+Tab and Alt+Tab), and held keys repeat on the computer being driven.
- Wake-on-LAN & Sleep PC: Wake a paired computer, or put it to sleep, from another device.
- Find My Phone: Ring a paired phone from a computer at full volume, even on silent, for up to a minute. Off by default; turn it on in the phone's Settings βΊ Continuity.
linkall-cli find. - Walk-Away Lock: Lock the computer when the paired phone that was connected has been gone for 30 seconds. Off by default; on macOS, Windows and Linux.
- Link All Drop: Any file put in the Link All Drop folder in your home folder is sent to your paired devices. Off by default; on macOS, Windows and Linux.
- Folder Sync (Android): Pick a folder such as Camera and a paired computer, and new files go to Downloads/Link All on the computer whenever it is connected. Nothing is sent twice, and a file that didn't arrive is sent again.
- Update Check: Tells you when a newer version exists, once a day, using GitHub's public release list. It never installs anything and sends nothing about you. Off in Settings βΊ Check for updates. Not present in the Google Play and Microsoft Store builds.
- Report a Problem: Builds a report you can copy or save, with app and OS versions, device states and recent log lines, and no clipboard text, file names, device names or full addresses. Nothing is uploaded.
linkall-cli report.
Link All operates under a zero-trust model for local wireless broadcast networks. Device discovery over mDNS does not imply trust.
- End-to-End Encryption: Session handshakes utilize ephemeral Curve25519 (X25519) ECDH key exchanges, HKDF-SHA256 key derivation, and AES-256-GCM authenticated encryption (
AEAD). - Replay Protection: All network frames integrate strictly increasing 64-bit counter nonces, rejecting unordered or replayed packet transmission at the parsing layer.
- Memory Zeroization: Secret Diffie-Hellman keys and session material are zeroed directly from physical RAM immediately upon derivation or termination via the
zeroizecrate to mitigate memory exposure. - mDNS Privacy Enforcer: Friendly device names are obfuscated during general network broadcasting; only unprivileged UUID identifiers are visible over open mDNS until a cryptographic pairing verification concludes.
- Code-Verified Pairing: Pairing shows the same security code on both devices, derived from the encrypted session, so a Man-in-the-Middle shows a different one. A request stays open for 60 seconds on both sides and always ends the same way on each (accepted, declined, withdrawn or expired). Declining means "not now", never a silent block. Pairing can also be done by scanning a QR code, valid for 10 minutes.
- Reinstall-Aware Trust: Reinstalling Link All gives a device a new identity. Pairing the new install replaces its old entries instead of listing the device twice.
Link All combines a unified high-performance Rust core with platform-native interface runtimes:
| Platform | Frontend Stack | IPC / Binding Mechanism | Current Status & Notes |
|---|---|---|---|
| macOS | Swift & SwiftUI | Direct C-FFI / Unix Sockets | π’ Production Ready (Menu bar integration, native notifications) |
| Android | Kotlin & Jetpack Compose | JNI Bridge | π’ Production Ready (Background service runtime, native share-sheet target, QR/PIN pairing) |
| Linux | Rust, GTK 4 & libadwaita | Unix Sockets | π’ Production Ready (tray icon, desktop notifications, "Send with Link All" in Files, Dolphin and Nemo, systemd user service, .deb and tarball) |
| Windows | WinUI 3 / .NET 10 | In-process C-FFI / Named Pipes | π’ Production Ready (Native AOT, tray helper, per-user MSI and portable zip) |
Below is a technical feature comparison between Link All and existing cross-platform or proprietary continuity utilities:
| Capability / Domain | Link All (Ours) | LocalSend | KDE Connect | Apple Handoff / AirDrop | Microsoft Phone Link |
|---|---|---|---|---|---|
| Supported Operating Systems | macOS, Windows, Android, Linux | macOS, Windows, Android, Linux, iOS | macOS, Windows, Android, Linux | macOS, iOS, iPadOS only | Windows, Android, iOS (Limited) |
| Primary Architecture | Event-driven Rust daemon + Native UIs | Flutter (Dart) single-process app | Qt / C++ background daemon | Native OS kernel & system daemons | Native Windows OS / Background service |
| File Transfer Transport | Zero-copy TCP/IP & Wi-Fi Direct | TCP/IP HTTP network serving | TCP/IP custom socket payloads | Wi-Fi Direct / Apple Custom Wireless | Wi-Fi Direct / Cloud-relayed hybrid |
| Resumable Pipeline Architecture | Yes (Chunk-level ack verification) | No (Restart required on drop) | Partial / Protocol dependent | No (Fail on signal loss) | Partial (Depends on file target) |
| Universal Clipboard Timeline | Yes (With searchable local ring buffer) | No (Manual text sending only) | Yes (Basic real-time string copy) | Yes (Real-time paste, no history feed) | Yes (Select Android hardware only) |
| Sensitive Data Filtering (OTP Guard) | Yes (Configurable regex / heuristics) | N/A | No | No | No |
| Remote Filesystem Access | Yes (Zero-trust secure directory browsing) | No | Yes (SFTP filesystem mounting) | No | No (Gallery sync only) |
| Notification & Call Mirroring | Yes | No | Yes | Yes (Apple hardware only) | Yes |
On Windows, the easiest way is the Microsoft Store, which keeps Link All up to date. The Store version has everything except "Send with Link All" in File Explorer's right-click menu, which comes with the .msi.
Get the latest build for each platform from GitHub Releases:
| Platform | File |
|---|---|
| macOS 13+ (Apple Silicon) | LinkAll.dmg |
| Windows 10/11 x64 | Microsoft Store, or LinkAll-windows-x64.msi (installer) or LinkAll-windows-x64.zip (portable) |
| Android 8.0+ | LinkAll-android.apk |
| Linux x86_64 / ARM64 (Ubuntu 24.04+, Debian 13, Fedora 40+, Arch) | linkall_<version>_amd64.deb / _arm64.deb, or LinkAll-linux-<arch>.tar.gz (unpack and run ./install.sh, no root needed) |
First launch on macOS: Link All isn't notarized by Apple yet, so macOS asks once. Open Link All, click Done when macOS says it can't verify it, then go to System Settings βΊ Privacy & Security and click Open Anyway next to Link All. On Windows, if SmartScreen warns about an unrecognised app, choose More info βΊ Run anyway.
Link All for Android is in a closed test on Google Play, and it needs testers before it can be published for everyone. To join:
- Join the Link All testers group with your Google account.
- With the same account, open the testing page and tap Become a tester.
- Install Link All from Google Play.
Please keep it installed for a couple of weeks and use it with your computer now and then. Report anything that goes wrong in Issues.
The Play build leaves out the features Play reserves for default SMS, dialer and file-manager apps: SMS code forwarding, answering calls, and letting a computer browse the phone's files. Everything else, including browsing your computers from the phone, works the same.
- Rust Toolchain: Latest stable (managed via rustup).
- C Compiler & Build Tools: Needed for native cryptography bindings (
build-essentialon Linux,Xcode command-line toolson macOS).
To clean, recompile the core Rust daemon, and install both the macOS application bundle and Android APK simultaneously:
# Clone repository
git clone https://github.com/ChinmayyK/Link-All.git
cd Link-All
# Compile and install targets in Debug mode
./scripts/reinstall-all.sh --debug
# Compile optimized release builds
./scripts/reinstall-all.sh --release# Compile macOS universal target and stage to /Applications
./scripts/build-macos.sh --debug
cp -a platforms/macos/build/LinkAll.app /Applications/
open /Applications/LinkAll.app# Assemble debugging APK and deploy to a USB-connected Android device via ADB
./scripts/build-android.sh --debug --fast-abi
adb install -r platforms/android/app/build/outputs/apk/full/debug/app-full-debug.apk
adb shell monkey -p app.linkall.debug -c android.intent.category.LAUNCHER 1# Needs GTK 4.12+ and libadwaita 1.5+:
# Ubuntu/Debian: sudo apt install libgtk-4-dev libadwaita-1-dev
# Fedora: sudo dnf install gtk4-devel libadwaita-devel
# Build and install the app, background service and CLI into your home folder
platforms/linux/install.sh
# Or just run the app from source (it starts the background service itself)
cargo run -p linkall-linux# Compile native core dynamic library for Windows
cargo build --release -p linkall-core
# Build and register desktop client using PowerShell installer script
powershell -ExecutionPolicy Bypass -File platforms/windows/LinkAll.WinUI/install_and_run.ps1For headless operations, system administration, and custom terminal script automation, Link All offers a native command-line utility (linkall-cli) communicating directly with the background daemon over low-latency IPC sockets:
# Print daemon health, version, and active listening ports
cargo run -p linkall-cli -- status
# Benchmark IPC domain socket round-trip latency
cargo run -p linkall-cli -- ping
# Output: PONG (1.1ms)
# Display real-time throughput metrics, transfer counters, and latency percentiles
cargo run -p linkall-cli -- metrics
# Query recent local clipboard history records
cargo run -p linkall-cli -- history --last 15
# Lock a history record to prevent automatic buffer eviction
cargo run -p linkall-cli -- history pin <id>
# Enumerate active discovered and trusted peer nodes on local subnet
cargo run -p linkall-cli -- devices list
# Ask a device to pair, then answer or withdraw requests (handy on Linux)
cargo run -p linkall-cli -- pair <device-id>
cargo run -p linkall-cli -- pair accept <device-id>
cargo run -p linkall-cli -- pair decline <device-id>
cargo run -p linkall-cli -- pair cancel <device-id>
# Toggle sync permissions for specific hardware UUIDs
cargo run -p linkall-cli -- devices peer-settings <device-id> pause
cargo run -p linkall-cli -- devices peer-settings <device-id> resumeLink All maintains clean configuration boundaries conforming to OS standard conventions:
| Platform | Configuration & Storage Directory | Identity key |
|---|---|---|
| macOS | ~/Library/Application Support/linkall/ |
same folder |
| Linux | ~/.config/linkall/ |
~/.local/share/linkall/ |
| Windows | %APPDATA%\linkall\ |
%LOCALAPPDATA%\linkall\ |
settings.json: User runtime configurations, interface bindings, and custom filtering heuristics.peers.json: Locally cached network peers, mDNS mappings, and device nicknames.trust.json: Persistent public keys of verified trusted nodes.history.json: Bounded NDJSON ring buffer logging historical payloads and activity events.identity.key: The device's private identity key (32 bytes, mode0600on macOS and Linux). Its hash is the device ID, so deleting it makes the device look new to every paired device.
Caution
The identity.key file contains your device's private identity keys used for network authentication and DH key exchange. Do not expose, commit, or transfer this file across insecure channels.
- Contributing: Please review CONTRIBUTING.md for architectural documentation, code formatting rules, and pull request submission guidelines.
- Security Policy: To report potential cryptographic weaknesses, memory safety issues, or vulnerability exploits, refer to SECURITY.md for coordinated disclosure procedures.
- Changelog: Release history and API modifications are documented in CHANGELOG.md.
Link All is distributed under the GNU General Public License v3.0 (GPL-3.0-only). Anyone may use, study, change and share it; anything built on it and distributed must be released under the same terms, with its source code. See LICENSE for the full legal text.
The Android app uses Google Play services (the QR code scanner and ML Kit's document scanner), which are not free software. LICENSE-EXCEPTION.txt grants the additional permission, under section 7 of the GPL, to distribute Link All combined with them.






