Skip to content

MOUKA-513/NullShare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NullShare πŸ“‘

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.

Python Version License Platform Status

NullShare Screenshot

✨ What Does NullShare Do?

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.

πŸš€ Key Features

  • ⚑ 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

πŸ“Έ Screenshots

1. Starting a File Share

Starting File Share Start sharing with a single command nullshare share TEST.pdf – generates QR code instantly

2. QR Code for Phone Connection

QR Code Display Scan this QR code with your phone's camera to connect

3. Mobile Download Interface

Mobile Download Page Clean web interface on your phone for downloading files

πŸ› οΈ Installation

Prerequisites

  • 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)

Manual Install

# 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 .

Quick Start Guide

Share a Single File

nullshare share document.pdf

this will:

  • 1. Start a local server
  • 2. Generate a QR code in your terminal
  • 3. Wait for your phone to connect

Share Multiple Files

nullshare share image1.jpg image2.png document.pdf

Share an Entire Folder

nullshare share ~/Downloads/my_project/
# Folders are automatically zipped for easy transfer

Advanced Usage

Password Protection

nullshare share --password mypass secret_document.pdf
# It generate a link with a password token

Custom Port & Auto-Timeout

  • 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)

One-Time Download

nullshare share --one-time sensitive_file.txt
  • Server stops after the first successful download.

All Available Options

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

Security & Privacy

  • 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 --password and --one-time for 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.

How It Works - Simple 5-Step Process

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    Start     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    Generate    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Your PC   │─────────────▢│  NullShare  │─────────────▢│    QR Code   β”‚
β”‚  (Server)   β”‚              β”‚   Server    β”‚               β”‚   & URL      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                           β”‚                              β”‚
        β”‚ Same WiFi Network         β”‚                              β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                    β”‚
                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                         β”‚     Phone Scans     β”‚
                         β”‚      QR Code        β”‚
                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                    β”‚
                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                         β”‚   Download Files    β”‚
                         β”‚   Directly to Phone β”‚
                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Step-by-Step:

  1. Start Sharing on your computer.
nullshare share your-file.txt
  1. Get QR Code : NullShare generates a QR code with local IP URL.
  2. Scan on Phone : Open camera app and scan QR code.
  3. Download : Files download directly to phone.
  4. Auto-Cleanup : Server stops automatically or when you press Ctrl+C

Under the Hood

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.

Technical Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     QR Code     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Desktop   │────────────────▢│    Phone    β”‚
β”‚   (Server)  │◀──WiFi Transfer β”‚  (Browser)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
     β”‚                               β”‚
Python + Flask                 Mobile Browser
     β”‚                               β”‚
Local HTTP Server             Web Interface

πŸ”„ Comparison with Alternatives

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

Roadmap

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

🀝 Contributing

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.

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/cool-idea)
  3. Commit your changes
  4. Push and open a PR Please keep the tool minimal and privacy‑first.

πŸ“„ License

MIT License - see LICENSE file for details.

πŸ™ Acknowledgments

  • Flask team for the amazing web framework

  • QRcode library developers

  • All contributors and testers

  • You for using NullShare! ❀️

🀝 Let's Connect!

LinkedIn Twitter Email

Made with ❀️ by MOUKA-513

⭐ Star this repo if you find it useful!

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors