Cross-platform file sharing via QR code. Defaults to account-free SSH tunneling on Linux/macOS.
Project description
qrtunnel
qrtunnel is a cross-platform tool for immediate file sharing via QR codes. It utilizes SSH reverse tunneling and local networking to bridge the gap between a computer and mobile devices, enabling file transfers even behind NAT or restrictive firewalls without requiring an account.
Features
- Interactive Terminal User Interface (TUI): A keyboard-driven interface for file selection, mode configuration, and port management.
- Smart Mode: Simultaneously establishes a public tunnel and a local LAN server. The recipient device automatically detects the fastest available path (LAN or WAN).
- High-Speed LAN Transfers: Directly shares files over the local network for maximum speed and privacy.
- One-Time Password (OTP) Security: Local network access is protected by a 6-digit passcode displayed only on the host machine.
- Account-Free Tunneling: Uses SSH-based tunneling (via localhost.run) by default on Linux and macOS, requiring no registration.
- Ngrok Integration: Support for ngrok tunnels, providing an alternative for secure public access.
- Multi-File and Directory Sharing: Capability to share individual files, batches, or entire directories.
- Two-Way Sharing: Supports both sending files from the computer and receiving uploads from mobile devices.
Installation
pip install qrtunnel
Usage
1. Interactive TUI (Default)
Running qrtunnel without arguments launches the interactive interface.
qrtunnel
TUI Navigation
- Up/Down Arrows: Move the selection cursor.
- Enter / Right Arrow: Confirm selection or proceed to the next screen.
- Left Arrow: Return to the previous screen.
- Space / Enter: Toggle file selection in the file picker.
- Forward Slash ( / ): Enter search mode within the file picker to filter files by name.
- Escape (ESC): Cancel search mode.
- Q / Ctrl+C: Exit the application.
2. Command Line Interface (CLI)
The CLI supports subcommands for direct execution and scripting.
Sending Files
# General syntax
qrtunnel send <path1> <path2> ... [options]
# Example: Share a file and a folder using a specific port
qrtunnel send report.pdf data/ -8080
# Example: Force LAN-only mode
qrtunnel send images/ -lan
Receiving Files
# Receive files into the current directory
qrtunnel receive
# Receive files into a specific directory using ngrok
qrtunnel receive ./uploads -ngrok
Tunneling Options
| Option | Description |
|---|---|
-smart |
(Default) Enables both LAN and Public Tunnel with auto-detection. |
-lan |
LAN only. Fastest transfer, accessible only on the same Wi-Fi. |
-ssh |
Public link via localhost.run. No account required. |
-ngrok |
Public link via ngrok. Requires an authtoken. |
Configuration and Ports
- Configuration and Ports: The tool defaults to a random port between 20000 and 60000. Users can specify a port using
-p <port>or the shorthand-<port>(e.g.,-9000).
License
MIT
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
File details
Details for the file qrtunnel-3.5.3.tar.gz.
File metadata
- Download URL: qrtunnel-3.5.3.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25e5468cd9f2e40c475140ec33fb2a439018047208579d30c5933651e1a59447
|
|
| MD5 |
ec4fe08848864d193bae5e413ba1a6ff
|
|
| BLAKE2b-256 |
8eb0d918ad9d231b6b3cb5ea26e715505eb07ae002b8d37d0c5f76922804e35b
|
File details
Details for the file qrtunnel-3.5.3-py3-none-any.whl.
File metadata
- Download URL: qrtunnel-3.5.3-py3-none-any.whl
- Upload date:
- Size: 23.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5ad4a58fa3022e02326053e99df163dd4dafab9add73534e4ad59682aeeb694
|
|
| MD5 |
a30bcfc25e8dbdfcd72bfae2f1e4493e
|
|
| BLAKE2b-256 |
eff77c04956699879a9acd493184da9c5d2a35da86f3d7766b7425874c84080f
|