Skip to main content

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

Metadata

Release files for qrtunnel 3.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qrtunnel 3.5.3
File Size Uploaded
qrtunnel-3.5.3.tar.gz 23.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qrtunnel 3.5.3
File Interpreter ABI Platform
qrtunnel-3.5.3-py3-none-any.whl Python 3 none any Details

Total release size: 46.5 kB

Release files / qrtunnel-3.5.3.tar.gz

Download URL qrtunnel-3.5.3.tar.gz
Size 23.4 kB
Tags Source
SHA-256 checksum
How to use checksums
25e5468cd9f2e40c475140ec33fb2a439018047208579d30c5933651e1a59447
BLAKE2b-256 checksum
How to use checksums
8eb0d918ad9d231b6b3cb5ea26e715505eb07ae002b8d37d0c5f76922804e35b
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / qrtunnel-3.5.3-py3-none-any.whl

Download URL qrtunnel-3.5.3-py3-none-any.whl
Size 23.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d5ad4a58fa3022e02326053e99df163dd4dafab9add73534e4ad59682aeeb694
BLAKE2b-256 checksum
How to use checksums
eff77c04956699879a9acd493184da9c5d2a35da86f3d7766b7425874c84080f
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

This release

3.5.3 This release

2 release files

3.5.1

2 release files

3.5.0

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.2.0

2 release files

2.1.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page