Skip to main content

Cross-platform file sharing via QR code with ngrok and SSH tunneling

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: Utilizes ngrok for secure, public HTTPS tunnels, even behind NATs and firewalls.
  • No-Auth Alternative: For Mac/Linux users, an SSH-based tunnel (localhost.run) is available, requiring no ngrok account.
  • 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, create a public tunnel (using ngrok by default), and display a QR code. 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.

Ngrok Authentication Setup

qrtunnel uses ngrok for reliable public tunnels. The first time you use it, or if you need to update your token, you'll be prompted to set up your ngrok authtoken. You can also do this manually:

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

No-Auth Sharing (Mac/Linux Only)

If you're on Mac or Linux and prefer not to use an ngrok account, you can use the --noauth flag. This will attempt to create an SSH tunnel via localhost.run.

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

Note: This option is not supported on Windows.

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.1.2.tar.gz (13.0 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.1.2-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: qrtunnel-2.1.2.tar.gz
  • Upload date:
  • Size: 13.0 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.1.2.tar.gz
Algorithm Hash digest
SHA256 5608af5e4562f002b9f0aa9c2e21a50abc64fe52d0de7559855b074a4d4c2a1e
MD5 47001858d8df3c5857965f01c11c47e0
BLAKE2b-256 44897d2a7f2880ac7983b98f6fa0285493adf07a686a3e072a70e2f9b7f30323

See more details on using hashes here.

File details

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

File metadata

  • Download URL: qrtunnel-2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 12.0 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.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d42f81b49e928118df623b26a8f586c004c4904ab6adf2f644a192b29afeb385
MD5 1ec85f1d7f6767acb17e824be657cb32
BLAKE2b-256 555fd4706a234ae51664b6ca6a2ae0625683cc6ffb07ef4653a0e703f959798c

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