Skip to main content

✈ Wireless file transfer between PC and Phone via QR code — no cables, no accounts.

Project description

 ██████╗ ██████╗ ██████╗ ███████╗ █████╗ ██╗██████╗
██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██║     ██║   ██║██║  ██║█████╗  ███████║██║██████╔╝
██║     ██║   ██║██║  ██║██╔══╝  ██╔══██║██║██╔══██╗
╚██████╗╚██████╔╝██████╔╝███████╗██║  ██║██║██║  ██║
 ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝  ╚═╝╚═╝╚═╝  ╚═╝

Wireless file transfer between your PC and Phone — via QR code.
No cables. No accounts. No cloud. Just scan and go.

Python License Platform


✈ What is CodeAir?

CodeAir turns your terminal into a file transfer station.
Run it, scan the QR code with your phone — done.

  • Push files from PC → Phone (over the internet via public URL)
  • Pull files from Phone → PC (lands straight on your Desktop)
  • No sign-up, no config, no third-party apps
  • Works anywhere in the world via localhost.run SSH tunnel

⚡ Install

pip install codeair

That's it. qrcode is included automatically.


🚀 Usage

import codeair
codeair()

A menu appears:

  ╔══════════════════════════════════════════╗
  ║   ✈  C O D E A I R   v1.0.0              ║
  ║      Wireless File Transfer              ║
  ╠══════════════════════════════════════════╣
  ║  [1]  Push  →  PC / Laptop  ─▶  Phone    ║
  ║  [2]  Pull  ←  Phone  ─▶  PC / Laptop    ║
  ║  [3]  Exit                               ║
  ╚══════════════════════════════════════════╝

📤 Push — PC → Phone

Send anything from your PC to any phone, anywhere in the world.

Option What it does
[1] Current .py file Auto-detects and serves the script you're running
[2] Custom text Type/paste text → phone downloads as .txt
[3] Send by path Type any file or folder path → served instantly
[4] Whole project Recursively zips your entire project (skips .venv, __pycache__, .git)

Password protection:

from codeair import push
push(password="secret123")
# Phone must enter the password before the download button appears

How it works:

  1. A local HTTP server starts on your machine
  2. An SSH tunnel via localhost.run gives you a public HTTPS URL
  3. A QR code prints in your terminal
  4. Phone scans it → download page opens in browser
  5. Press ENTER → server shuts down, QR expires instantly

No same Wi-Fi required. Send to anyone, anywhere.


📥 Pull — Phone → PC

Receive any file from a phone directly to your Desktop.

  Scan with your phone camera → tap Choose File → Send
Received file type What happens
.py .txt .md etc. Printed live in terminal + option to save
.zip Auto-extracted into a folder on Desktop
Images, PDFs, anything else Saved directly to ~/Desktop/

🌐 Public Tunnel

CodeAir uses localhost.run — a free, zero-signup SSH tunnel:

ssh -R 80:localhost:<port> nokey@localhost.run

This gives you a live public URL like:

https://a3f91bc04d2e.lhr.life

Which you can screenshot, share via chat, or print as a QR — and your friend scans it from their phone anywhere in the world.

If the tunnel fails (no internet / SSH unavailable), CodeAir automatically falls back to your local LAN IP so it still works on the same Wi-Fi.


🗂 Project Structure

codeair/
├── codeair/
│   ├── __init__.py    ← callable module  (import codeair; codeair())
│   ├── push.py        ← PC → Phone logic
│   ├── pull.py        ← Phone → PC logic
│   ├── tunnel.py      ← localhost.run SSH tunnel
│   └── utils.py       ← QR, LAN IP, file helpers
├── main.py
├── setup.py
└── README.md

📋 Requirements

  • Python 3.10+
  • qrcode (auto-installed with pip)
  • ssh on your system (pre-installed on macOS and Linux; Windows: use Git Bash or WSL)
  • For public links: internet connection

🔒 Security

  • Password protection available on every push
  • Tunnel closes the moment you press ENTER — URL is dead instantly
  • Files are never stored on any server — direct stream from your machine
  • No account, no data retained by any third party

💡 Tips

# Use directly without the menu
from codeair import push, pull

push()                    # guided wizard
push(password="hello")    # password-protected
pull()                    # wait for phone upload
# Or just run main.py
python main.py

✈ CodeAir

An Independent Project By Didar Singh
Scan. Transfer. Done.

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

codeair-1.0.0.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

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

codeair-1.0.0-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

File details

Details for the file codeair-1.0.0.tar.gz.

File metadata

  • Download URL: codeair-1.0.0.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for codeair-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c514d197239dfc49db91f6714413f8d0e29738bcc1e5dac74e9eb49c726b3f49
MD5 c86511222c2204471458e384819490e6
BLAKE2b-256 3dd5409e54b6025bd188a3a069c9446a850ae6ee813f305c803b85338c7635a9

See more details on using hashes here.

File details

Details for the file codeair-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: codeair-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for codeair-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ded5beeb694bf3131a0340d9a9d5448a071220a846336e675b61122e6332466a
MD5 35a4899532ef38052753f152b201d9c9
BLAKE2b-256 f1b56bb9b22a3daa26250706afdf03cea8a05be0f9f8762b82eefa9ccd558c72

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