Share files instantly via QR code on your local network β no internet, no cloud, just local WiFi.
I built NullShare because I was tired of emailing myself files and plugging in USB cables.
One command, scan a QR code, done. Over local WiFi only.
NullShare is a privacy-focused, lightning-fast tool that lets you transfer files from your computer to your phone instantly using a QR code. It creates a local web server on your computer and generates a QR code that your phone scans to download files directly over WiFi.
- β‘ Blazing Fast β LAN transfer speeds (no internet required)
- π 100% Private β Files never leave your local network
- π± No App Needed β Works in any mobile browser (iOS, Android, etc.)
- π― One-Command Simplicity β Clean CLI interface
- π§ Cross-Platform β Windows, Linux, macOS
- π Password Protection β Optional security for sensitive files
- β±οΈ Auto-Timeout β Server stops automatically after transfer
- π¦ Folder Support β Automatically zips folders for transfer
Start sharing with a single command nullshare share TEST.pdf β generates QR code instantly
Scan this QR code with your phone's camera to connect
Clean web interface on your phone for downloading files
- Python 3.7 or higher
- Git (optional, for installation from source)
Core dependencies (installed automatically via requirements.txt):
- Flask
- qrcode
- Pillow (for QR image generation)
- click (for CLI)
# Clone the repository
git clone https://github.com/MOUKA-513/NullShare.git
cd NullShare
# Create virtual environment (recommended)
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
pip install -e .nullshare share document.pdfthis will:
- 1. Start a local server
- 2. Generate a QR code in your terminal
- 3. Wait for your phone to connect
nullshare share image1.jpg image2.png document.pdfnullshare share ~/Downloads/my_project/
# Folders are automatically zipped for easy transfernullshare share --password mypass secret_document.pdf
# It generate a link with a password token- You can choose any of the --port & --timeout you want to use.
nullshare share --port 9090 --timeout 300 large_file.pdf- --port: Use a specific port (default: auto-assigned)
- --timeout: Auto-stop server after 300 seconds (5 minutes)
nullshare share --one-time sensitive_file.txt- Server stops after the first successful download.
nullshare --help
nullshare share --help
# Available options:
# --port PORT Port to use (0 = auto)
# --no-zip Don't zip folders
# --password TEXT Password protection
# --timeout SECONDS Auto-stop server after seconds
# --one-time Allow only one download
# --no-qr Hide QR code display
# --clean Clear screen before showing QR
# --verbose Show detailed output
#EXAMPLE :
nullshare share ~/Desktop/Test.pdf --port 2222 --one-time --timeout 30 --clean- Files never leave your LAN no cloud, no third-party servers, no logs.
- HTTP on local network The server uses plain HTTP because itβs local-only. Your WiFi encryption (WPA2/WPA3) protects the traffic from other devices on the same network.
β οΈ On public/untrusted networks, always combine--passwordand--one-timefor maximum safety. - Password token in URL The secret is appended to the link. Itβs only valid for a single session and auto-expires. For extra privacy, open the download link in a private/incognito tab.
- No leftover files Temporary zips are cleaned up when the server stops (or after timeout).
- Minimal attack surface No database, no persistent service, no open ports after completion.
βββββββββββββββ Start βββββββββββββββ Generate βββββββββββββββ
β Your PC βββββββββββββββΆβ NullShare βββββββββββββββΆβ QR Code β
β (Server) β β Server β β & URL β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β β
β Same WiFi Network β β
βββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ
β
ββββββββββββΌβββββββββββ
β Phone Scans β
β QR Code β
ββββββββββββ¬βββββββββββ
β
ββββββββββββΌβββββββββββ
β Download Files β
β Directly to Phone β
βββββββββββββββββββββββ
- Start Sharing on your computer.
nullshare share your-file.txt- Get QR Code : NullShare generates a QR code with local IP URL.
- Scan on Phone : Open camera app and scan QR code.
- Download : Files download directly to phone.
- Auto-Cleanup : Server stops automatically or when you press Ctrl+C
NullShare is a lightweight Python CLI built with:
- Flask serves files over a temporary HTTP server
- qrcode renders QR codes in the terminal
- click handles the clean command-line interface
- zipfile compresses folders on the fly The workflow is stateless: a request comes in, the file is streamed, and the server tears down (or waits for timeout). No database, no persistent storage, minimal attack surface.
βββββββββββββββ QR Code βββββββββββββββ
β Desktop ββββββββββββββββββΆβ Phone β
β (Server) ββββWiFi Transfer β (Browser) β
βββββββββββββββ βββββββββββββββ
β β
Python + Flask Mobile Browser
β β
Local HTTP Server Web Interface
| Feature | NullShare | Email/Cloud | USB Cable | Other Tools |
|---|---|---|---|---|
| Speed | LAN Speed (Fastest) | Internet Speed | USB 2.0 / 3.0 | Varies |
| Privacy | Local Only | Third-Party Servers | Direct | Varies |
| Convenience | QR Code Scan | Multiple Steps | Physical Connection | App Required |
| Setup Time | Seconds | Minutes | Minutes | Varies |
| Cross-Platform | Yes | Yes | OS Dependent | Often Limited |
Ideas for future releases (PRs welcome!):
- Optional TLS self-signed certificate for hyperβparanoid mode
- Dragβandβdrop TUI or system tray icon
- Progress bar on the mobile download page
- Multiβfile preview before download
- Autoβcopy URL to clipboard for laptops without QR cameras
Pull requestPlease keep the tool minimal and privacyβfirst.
Pull requests are welcome! If you have ideas, bug reports, or feature requests, feel free to open an issue.
- Fork the repo
- Create a feature branch (
git checkout -b feature/cool-idea) - Commit your changes
- Push and open a PR Please keep the tool minimal and privacyβfirst.
MIT License - see LICENSE file for details.
-
Flask team for the amazing web framework
-
QRcode library developers
-
All contributors and testers
-
You for using NullShare! β€οΈ
Made with β€οΈ by MOUKA-513
β Star this repo if you find it useful!
