qrtx

GitHub

Connect two computers by scanning a QR code on each with your phone. They talk peer-to-peer over iroh, end-to-end encrypted.

  1. 1
    First computer
    Scan the QR code shown by qrtx
  2. 2
    Second computer
    Scan the other QR code
No camera? Paste a link instead

On each computer

Run qrtx on both machines (Linux or macOS, x86-64 or ARM). Each one shows a QR code. Scan the first with your phone's camera app, which opens this page, then scan the second here.

Send a file, nothing to install

sender
curl -fsSL https://qrtx.lol/send | sh -s -- backup.tar
receiver
curl -fsSL https://qrtx.lol/recv | sh -s -- backup.tar

The receiver writes to backup.tar.part and renames it once complete. Once installed: qrtx send backup.tar and qrtx recv backup.tar, or plain pipes like tar c dir | qrtx and qrtx | tar x.

SSH in without opening any ports

server
curl -fsSL https://qrtx.lol/sshd | sh
laptop
curl -fsSL https://qrtx.lol/ssh | sh -s -- me@myserver

The server side lets one SSH session in, then exits. On the laptop, your own ssh runs with qrtx as its proxy, so keys, agent forwarding and host key checks work as usual. myserver is only the name the host key is saved under. Once installed: qrtx sshd and qrtx ssh me@myserver.

Forward any TCP port

server
qrtx listen-tcp --host localhost:5432
laptop
qrtx connect-tcp --addr 127.0.0.1:5432

Get it

install
curl -fsSL https://qrtx.lol/install | sh

Or run it without installing. Arguments go after sh -s --:

run once
curl -fsSL https://qrtx.lol/run | sh -s -- listen-tcp --host localhost:22

The script downloads the right binary for your machine into ~/.cache/qrtx, checks its SHA-256, and runs it.

How it works

The phone scans each computer, talks to each through an iroh relay over an end-to-end encrypted connection, introduces them, and they connect directly. iroh relay only sees ciphertext laptop A laptop B your phone 1 · scan laptop A; phone and A talk via the relay 2 · scan laptop B; same, encrypted to its key 3 · the phone introduces them 4 · they connect directly; the phone is done
Pairing. The phone reaches each computer through an iroh relay. The connection is encrypted end to end to the key in that computer's QR code, so the relay can't read it.
Data goes directly between the two computers through an end-to-end encrypted, hole-punched connection. The relay is only a fallback; the phone and the website are not involved. iroh relay fallback only direct · end-to-end encrypted NAT hole-punched laptop A laptop B qrtx.lol phone and website: not in the data path
Your data. The two computers talk directly. Each accepts only the key the phone introduced. The phone can be closed.

Open source (MIT / Apache-2.0) on GitHub. Inspired by dumbpipe.