PROJECTDROPIT
A menu-driven peer-to-peer encrypted file transfer CLI for your local network.
- 🛰 Auto-discovery on the LAN (zeroconf / mDNS)
- 🔒 End-to-end encryption every session — X25519 ECDH + AES-256-GCM
- ✅ SHA-256 integrity verification on every transfer
- ⚡ Zero setup — no internet, no cloud, no accounts, no admin/root, no pre-shared passwords
- ✨ Premium TUI — rich panels, live discovery, progress, speed, ETA
- 🔄 Auto-update check on launch (via PyPI, non-blocking)
- 🐧 Linux + 🪟 Windows + 🍎 macOS, Python 3.8+
Install
pip install projectdropit
Or from source:
pip install .
Run
projectdropit -start
(projectdropit, projectdropit start, and projectdropit --start all work too.)
On first launch you must enter a device name — that's how others on the LAN will see you. Settings can be changed later from the menu.
Menu
1. Discover Devices — live list of online peers on your LAN
2. Send a File — pick a peer or enter a direct IP/port
3. Incoming Transfers — accept / reject offers, view history
4. Settings — name, download folder, diagnostics & health, update check
5. Quit
Received files land in ~/projectdropit_files/ by default.
How it works
- Discovery: zeroconf broadcasts
<device-name>._projectdropit._tcp.local.with your TCP port and anameTXT record. If mDNS is blocked by router or firewall, manual Direct IP/Port mode is automatically available as a fallback. - Transport: a fresh TCP socket per session with bounded concurrency (up to 4 concurrent transfers).
- Handshake: X25519 ECDH → HKDF-SHA256 → 32-byte AES key.
- Stream: each frame is
[12-byte nonce][4-byte length][AES-256-GCM ciphertext]. - Atomic staging & Integrity: incoming files are streamed into a temporary
.partfile. Receiver pre-checks available disk storage before accepting. Sender streams a SHA-256 of the file; receiver verifies the hash upon completion. Only verified files are atomically promoted to the destination folder; aborted or mismatched files are wiped immediately.
Windows firewall
The first time you run projectdropit, Windows shows the standard
"Allow an app to communicate" dialog. Click Allow on private networks.
No admin password is ever required. The app prints a friendly heads-up
before opening its socket.
CLI flags
| Flag | Purpose |
|---|---|
-start / --start / start |
launch the menu (default) |
--no-update / -no-update |
skip update check on launch |
-v / --version / version |
print version and exit |
-h / --help / help |
show usage |
Non-goals
No internet transfers. No accounts. No GUI. No admin requirement. No pre-shared passwords. No cloud.
© 2026 Zenith Open Source Projects. All Rights Reserved. Zenith is an Open Source Project Idea by @roshhellwett
Metadata
Release files for projectdropit 1.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| projectdropit-1.0.5.tar.gz | 36.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| projectdropit-1.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.1 kB
Release files / projectdropit-1.0.5.tar.gz
| Download URL | projectdropit-1.0.5.tar.gz |
|---|---|
| Size | 36.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7eb6ca4f38e4fedfdb0fc039c9ace9567443ff0727c56b991c9d0a7fc1db9875
|
|
BLAKE2b-256 checksum How to use checksums |
8912091b97ad9fc0157298d4bf2554dce19cd65dfb02c97a0d92a38f0884fd2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|
Release files / projectdropit-1.0.5-py3-none-any.whl
| Download URL | projectdropit-1.0.5-py3-none-any.whl |
|---|---|
| Size | 31.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
430eea8e77533b8b0478ac907638873fe7ce9d99d17adb0750780e8d35fb7992
|
|
BLAKE2b-256 checksum How to use checksums |
64283d63f7cd9b853a6dc54bdae1ab6320634430760baa79fbaae12425d0536d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|