Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qrtunnel-3.5.3.tar.gz (23.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qrtunnel-3.5.3-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

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

Hashes for qrtunnel-3.5.3.tar.gz
Algorithm Hash digest
SHA256 25e5468cd9f2e40c475140ec33fb2a439018047208579d30c5933651e1a59447
MD5 ec4fe08848864d193bae5e413ba1a6ff
BLAKE2b-256 8eb0d918ad9d231b6b3cb5ea26e715505eb07ae002b8d37d0c5f76922804e35b

See more details on using hashes here.

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

Hashes for qrtunnel-3.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d5ad4a58fa3022e02326053e99df163dd4dafab9add73534e4ad59682aeeb694
MD5 a30bcfc25e8dbdfcd72bfae2f1e4493e
BLAKE2b-256 eff77c04956699879a9acd493184da9c5d2a35da86f3d7766b7425874c84080f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page