Skip to main content

Cross-platform file sharing via QR code. Defaults to account-free SSH tunneling on Linux/macOS.

Project description

QRTunnel

Cross-platform file sharing via SSH reverse tunneling and QR codes. Allows sharing files with mobile devices anywhere in the world, even behind NAT/firewalls.

Features

  • Simple File Sharing: Share one or more files directly from your command line.
  • Receive Files: Start in upload mode to receive files from any device with a web browser, like your phone.
  • Secure Tunnels: Supports both SSH Tunneling (default on Linux/macOS) and ngrok (default on Windows) for secure, public access even behind NATs/firewalls.
  • SSH Tunneling: Default on Linux/macOS! Uses localhost.run for instant tunneling without any account or sign-up.
  • Ngrok Support: Reliable tunneling via ngrok (requires free account), available on all platforms and default on Windows.
  • QR Code Display: Generates a scannable QR code in your terminal for easy access on mobile devices.
  • Web Interface: Provides a simple web page for recipients to download shared files, individually or as a ZIP archive.
  • Ngrok Authtoken Management: Interactive setup and status check for your ngrok authentication token.

Installation

  1. Clone the repository:
    git clone https://github.com/AniruthKarthik/qrtunnel.git
    cd qrtunnel
    
  2. Install the package:
    pip install qrtunnel
    
    This will install qrtunnel and all its dependencies.

Usage

Sharing Files (PC to Phone)

To share one or more files:

qrtunnel <file_path1> [<file_path2> ...]

Example:

qrtunnel mydocument.pdf myimage.jpg

This will start a local HTTP server and create a public tunnel.

  • Linux/macOS: Defaults to SSH tunneling (no account needed).
  • Windows: Defaults to ngrok (requires account setup).

Scan the QR code with your phone to access the files.

Receiving Files (Phone to PC)

To receive files on your computer, simply run qrtunnel without any file paths:

qrtunnel

This starts the server in upload mode. Scan the generated QR code on your phone, and you'll get a web page where you can select and upload a file to your computer.

Tunnel Selection (Ngrok vs SSH)

qrtunnel supports two tunneling methods: SSH (localhost.run) and ngrok.

On Linux / macOS:

  • Default: SSH Tunneling (No sign-up required).
    qrtunnel <files>
    
  • Use Ngrok: To use ngrok instead (more stable, requires account):
    qrtunnel <files> --ngrok
    

On Windows:

  • Default: Ngrok (Requires account).
    qrtunnel <files>
    
  • SSH Tunneling: Not reliably supported on Windows.

Ngrok Authentication Setup

If you use ngrok (default on Windows, optional on Linux/macOS), you'll need to set up your authtoken once:

qrtunnel --setup

Follow the on-screen instructions to get and save your ngrok authtoken.

Check Ngrok Status

To check if your ngrok authtoken is configured:

qrtunnel --status

Quitting the Server

The server will run until you press q in the terminal or use Ctrl+C.

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-2.2.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

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

qrtunnel-2.2.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file qrtunnel-2.2.0.tar.gz.

File metadata

  • Download URL: qrtunnel-2.2.0.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"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-2.2.0.tar.gz
Algorithm Hash digest
SHA256 2b37c5bf3a94f270ae44d2c75a8fabe7a6c53b049953991390a8b2d7fefec177
MD5 d687ab12945d1da45c4112c4fabf7363
BLAKE2b-256 56bef4f9492a30e525ddf1533c4cb28531311e8f2eb51e9ae8b48b09c3ebc4bb

See more details on using hashes here.

File details

Details for the file qrtunnel-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: qrtunnel-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"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-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8d97a1533bb262ecf6563ca3378cd9bb40da83d86ba752bab71ee06e251e1891
MD5 c55ca54d748c9240767dc896e8508d5e
BLAKE2b-256 35e12a384b7d6a5e122b95f03922a77830054ec886b83296bf1904cf28e60642

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