Command-line AirDrop for Linux, letting iPhones and Linux machines send files to each other over AWDL on supported non-Apple Wi-Fi cards.
seemoo-lab/opendrop
An open-source Python command-line tool that sends and receives files with Apple AirDrop over Wi-Fi, using reverse-engineered protocol compatibility.
Open-source alternative to:AirDrop
- Stars
- 9,939
- Forks
- 319
- Open issues
- 59
- Last commit
- 3 months ago
What is it?
OpenDrop is a command-line tool for sharing files directly between devices over Wi-Fi. Its distinguishing feature is protocol compatibility with Apple AirDrop, so it can exchange files with iOS and macOS devices.
AirDrop runs over Apple Wireless Direct Link (AWDL), so OpenDrop works on macOS, or on Linux with an open AWDL implementation such as OWL. Users discover nearby receivers with the find command, then send a file or URL with send, or accept incoming files with receive. Contacts-only devices are supported through AirDrop credentials extracted from macOS with a separate keychain extractor.
The project is experimental and comes from a reverse-engineering research effort. It does not support every AirDrop feature, sending multiple files at once is not implemented, and receivers accept incoming files automatically without peer authentication.
Key features
- 01Sends files and URLs to Apple devices over AirDrop-compatible Wi-Fi.
- 02Discovers nearby receivers with a find command.
- 03Receives incoming files automatically into the current directory.
- 04Works on macOS and on Linux with an AWDL implementation.
- 05Supports contacts-only devices using extracted AirDrop credentials.
Use cases
- Sending files from a Linux machine to an iPhone or Mac.
- Scripting AirDrop transfers from the command line.
- Studying the AirDrop protocol and AWDL in security research.
Quick start
- 1
Install the release from PyPI with pip3
pip3 install opendrop - 2
On macOS, install a newer libarchive via Homebrew (optional on Linux)
brew install libarchive - 3
Discover nearby receivers
opendrop find - 4
Send a file to a receiver by index
opendrop send -r 0 -f /path/to/some/file
Things to know
- Works only on macOS or on Linux with an AWDL implementation such as OWL.
- Experimental reverse-engineered software that may be incompatible with future AirDrop versions.
- Sending multiple files at once is not supported.
- Licensed under GPL-3.0, a copyleft license.
In collections
Topics
FAQ
- What is opendrop?
- An open-source Python command-line tool that sends and receives files with Apple AirDrop over Wi-Fi, using reverse-engineered protocol compatibility. OpenDrop is a command-line tool for sharing files directly between devices over Wi-Fi. Its distinguishing feature is protocol compatibility with Apple AirDrop, so it can exchange files with iOS and macOS devices.
- Is opendrop free to use? What license does it have?
- opendrop is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is opendrop still maintained?
- Updated within 6 months. The last commit to opendrop was on Aug 17, 2026.
- What can I use opendrop for?
- Sending files from a Linux machine to an iPhone or Mac. Scripting AirDrop transfers from the command line. Studying the AirDrop protocol and AWDL in security research.
- How do I install opendrop?
- Install the release from PyPI with pip3: pip3 install opendrop On macOS, install a newer libarchive via Homebrew (optional on Linux): brew install libarchive Discover nearby receivers: opendrop find Send a file to a receiver by index: opendrop send -r 0 -f /path/to/some/file
- Where can I get opendrop?
- The source code and installation instructions are on GitHub: https://github.com/seemoo-lab/opendrop
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A command-line toolkit for Apple firmware research, covering IPSW/OTA downloads, Mach-O and dyld cache analysis, kernelcaches, and connected iOS devices.
A Rust library and CLI that export iMessage data to TXT or HTML and run diagnostics on the iMessage database.
A GTK Linux client for Google's Quick Share protocol, for sending and receiving files wirelessly with Android devices.
A Go command-line tool that sends files from your computer to a phone over Wi-Fi by showing a QR code to scan in the terminal.
Desktop app for Linux that lets your phone and computer share clipboard, notifications, files, and media controls over an encrypted local connection.