A simple tool to share files and directories over LAN or internet.
Project description
ShareDir
ShareDir is a Python tool to share files and directories over LAN or the internet with a single command. It runs a production-ready HTTP server (Waitress) with passphrase protection, QR code access, file uploads, and a modern web interface.
Features
- Share files and directories with one command
- QR code generation (terminal + in-browser)
- Passphrase protection with brute-force blacklisting
- Production-ready server (Waitress) with configurable workers
- File upload support with progress bar (optional)
- Directory ZIP download
- File metadata display (size, modified date, MIME type)
- HTTP Range request support (video seeking)
- Client-side search/filter
- Dark mode (default) with light mode toggle
- Download buttons for files and directories
- Access logging (IP, method, path, status)
- Auto-expiry (
--expire)
Installation
Via pip
pip install sharedir
Via uv
uv tool install sharedir
From source
git clone https://github.com/spignelon/ShareDir.git
cd ShareDir
pip install -r requirements_headless.txt
Usage
sharedir /path/to/share
Options
| Flag | Description |
|---|---|
-p N, --passphrase-length N |
Number of words in passphrase (default: 4) |
--no-passphrase |
Disable passphrase protection |
-P PORT, --port PORT |
Server port (default: 44447) |
-w N, --workers N |
Number of server workers, 1 worker = 4 threads (default: 1) |
--upload |
Enable file uploads via web interface |
--expire DURATION |
Auto-shutdown after duration (e.g. 30m, 2h, 1d) |
Examples
# Share a directory with a 6-word passphrase on port 8080
sharedir ~/movies -p 6 -P 8080
# Share without passphrase, with uploads enabled
sharedir ~/public --no-passphrase --upload
# Auto-shutdown after 2 hours
sharedir ~/files --expire 2h
Output:
Generated passphrase: grape-apple-banana-orange
Access URL: http://192.168.1.100:44447/?passphrase=grape-apple-banana-orange
Starting server on 0.0.0.0:44447 with 1 workers (4 threads)...
Requires Python >= 3.10.
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sharedir-2.0.2.tar.gz
(24.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
sharedir-2.0.2-py3-none-any.whl
(23.0 kB
view details)