A fast, peer-to-peer file sharing tool with a simple terminal interface.
Project description
pyshare-cli v3.0: Secure Interactive File Transfer
pyshare is a modern, secure, and interactive command-line tool for transferring files, folders, and text snippets across your local network. All transfers are protected with end-to-end encryption and a confirmation PIN.
Features
- Interactive Terminal Session: Run
pyshareto enter an intuitive file-sharing environment. - End-to-End Encryption: All data is encrypted using a robust RSA+Fernet handshake, ensuring nobody on the network can snoop on your files.
- Confirmation PIN: A 4-digit PIN is displayed on the receiver's screen and must be confirmed by the sender, preventing accidental transfers.
- Folder & Multiple File Transfers: Send an entire folder with one command.
pyshareautomatically zips it, sends it, and unzips it on the other side. - Text & Clipboard Sharing: Instantly send a text snippet or your clipboard contents with the
send --textandpastecommands. - Resumable Transfers: If a large file transfer gets interrupted, it will automatically resume from where it left off.
- Persistent Command History: Press the up and down arrow keys to navigate your command history.
- Auto-Discovery: Automatically finds other devices on the network running
pyshare. - Visual Progress Bars: A clean
tqdmprogress bar shows the status of every transfer. - Mobile Sharing: Share files with mobile devices via a web interface using
connect -m.
Installation
You will need Python 3.7+ and pip.
pip install pyshareit
To install locally for development from the pyshare-cli directory:
pip install -e .
How to Use
Start the Session
Open a terminal on two devices and run:
pyshare
You will enter the interactive pyshare> prompt.
Start Receiver
On the computer that will receive the file, type:
pyshare> receive
Start sender
On the computer that will send the file, type:
pyshare> connect
The receiver will start in the background, ready to accept connections.
### Mobile Sharing
To share files with a mobile device (or any device with a browser):
```bash
pyshare> connect -m
This will start a local web server and display a URL (e.g., http://192.168.1.x:5000). Open this URL on your mobile device to send or receive files.
Send a File, Folder, or Text
On the other computer:
To send a file:
pyshare> send "/path/to/my document.zip"
To send a folder:
pyshare> send "/path/to/my project folder/"
To send text:
pyshare> send --text "Here is the link: https://example.com"
Confirm the Transfer
- The sender's terminal will discover the receiver. Select it by its ID.
- The receiver's terminal will ask for confirmation (y/n).
- The sender's terminal will then display a 4-digit PIN. This PIN is shown to the receiver in the previous step, but for security, you should verbally confirm it with the person at the receiver's machine.
- Once the PIN is confirmed and the handshake is complete, the encrypted transfer will begin.
Exit
When you are finished, type exit or quit.
License
This project is licensed under the GNU General Public License v3.0 (GPLv3).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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