VOLATOUCH
Zero-Dependency Ultra-Low Latency Bidirectional Remote Control for PC & Android over Wi-Fi
⚡ Quick Start • 🔄 Bidirectional Modes • 🌟 Zero Dependencies • ✨ Features • 📱 Controls Cheatsheet • 💻 CLI Usage • 🛡️ Security • 🛠️ From Source
⚡ Quick Start
Volatouch is a pure Python application with ZERO third-party pip dependencies.
Scenario A: Control your PC from your Phone 📱 ➔ 💻
- On your Windows PC, install and run:
pip install volatouch volatouch
- Open the printed URL (e.g.
http://192.168.1.5:8000) in Chrome or Safari on your phone. - Your phone instantly becomes a wireless multi-touch trackpad, air mouse, and keyboard for your PC.
Scenario B: Control your Android Phone from your PC 💻 ➔ 📱
- On your Android phone (inside Termux or terminal):
pkg install python pip install volatouch volatouch
- Open the printed phone URL (e.g.
http://192.168.1.20:8000) in any browser on your desktop computer. - Click, swipe, and scroll on your phone screen with your PC mouse, type directly into apps using your physical PC keyboard, and use the floating Android Navigation Bar (
Back,Home,Recents,Power,Volume).
🔄 Smart Bidirectional Engine
Volatouch automatically detects the host environment and adapts its streaming and input pipelines:
| Mode | Host Device | Client Device | Capabilities |
|---|---|---|---|
| PC Host | Windows PC | Smartphone Browser | 60 FPS Win32 GDI+ desktop stream, Direct & Trackpad touch gestures, full virtual QWERTY keyboard, drag lock, mouse wheel. |
| Android Host | Android (Termux) | PC Desktop Browser | Native /system/bin/screencap stream, mouse click/drag touch emulation, mouse wheel swipe scrolling, physical PC keyboard sync, Android hardware navigation bar (Back, Home, Recents, Power, Volume). |
You can also manually enforce a specific mode via CLI: volatouch --mode pc or volatouch --mode phone.
🌟 100% Zero-Dependency Architecture
Unlike heavy remote desktop applications requiring OpenCV, NumPy, FastAPI, Uvicorn, or pynput, Volatouch uses only Python's standard library:
- 0 External Packages on PyPI: Pure Python standard library (
asyncio,subprocess,struct,ctypes,socket,time,os). - Native Hardware Capture:
- Windows: Hardware-level screen capture (<2ms) and native JPEG compression via Win32
ctypes(GDI32andGDIPlus). - Android: Direct framebuffer capture via
/system/bin/screencap -pwith zero external image processing tools.
- Windows: Hardware-level screen capture (<2ms) and native JPEG compression via Win32
- Built-in Asyncio HTTP & WebSocket Server: RFC-6455 compliant WebSocket server and static file server running on standard library
asyncio. - Hardware Input Emulation:
- Windows: Native
SendInput/user32calls for pixel-accurate mouse and Unicode keyboard events. - Android: Native
/system/bin/inputinjection for taps, swipes, text typing, and key events.
- Windows: Native
- Pre-Bundled Web Client: Complete React + Tailwind interface pre-compiled and bundled inside the package (~230 KB), requiring zero Node.js runtime.
✨ Key Features
- 🚀 High-Speed Hardware Streaming: Low-latency video pipeline with 8-byte double timestamp headers for precise latency measurement.
- 🎯 Dual Touch Navigation Modes:
- Direct Target Mode: Tap anywhere to immediately position the cursor or touch event at that screen location.
- Relative Trackpad Mode: Multi-touch trackpad navigation with smooth acceleration curves.
- 🏝️ Draggable Floating Action Island:
- Dedicated L-Click and R-Click action triggers.
- HOLD / LOCKED Button: Persistent mouse-down lock with vibration feedback for seamless drag-and-drop operations.
- UP & DOWN Scroll Buttons: Quick micro-step mouse wheel scrolling.
- Boundary Clamping: Widgets automatically stay within viewports during rotation or fullscreen toggle.
- 🤖 Dedicated Android Navigation Bar:
- Floating pill when controlling Android: ◀ Back, ⌂ Home, ▢ Recents, ⚡ Power, 🔊 Volume Up, 🔉 Volume Down.
- Right-clicking on the phone canvas automatically triggers the Android Back action.
- ⌨️ Dual Keyboard Options:
- Full QWERTY On-Screen Keyboard with Caps/Shift switching and sticky modifiers (
Ctrl,Alt,Shift,Win). - Physical Desktop Keyboard Sync: Type directly on your physical computer keyboard to inject text into your Android phone.
- Full QWERTY On-Screen Keyboard with Caps/Shift switching and sticky modifiers (
- 📱 Responsive Display Modes: Instant toggle between Fit (aspect ratio preservation) and Fill (zero black bars edge-to-edge).
- 🌐 Bilingual Support: Instant toggle between English and Turkish.
📱 Controls & Gestures Cheatsheet
| Input Action | When Controlling PC (from Phone) | When Controlling Phone (from PC) |
|---|---|---|
| Left Click / 1-Finger Tap | Left mouse click | Touch tap at screen coordinates |
| Right Click / 2-Finger Tap | Right mouse click | Android Back navigation action |
| Mouse Drag / 1-Finger Drag | Move cursor or drag | Swipe / drag across screen |
| Mouse Wheel / 2-Finger Scroll | Scroll desktop page | Swipe scroll up / down |
| Physical Keyboard Typing | Type on virtual keyboard | Type directly into active phone input |
| Navigation Pill | N/A | Quick Back, Home, Recents, Power, Vol |
💻 CLI Usage
usage: volatouch [-h] [--host HOST] [--port PORT] [--quality QUALITY]
[--scale SCALE] [--mode {auto,pc,phone}] [--version]
Volatouch: Ultra-Low Latency Mobile Air Control & Wireless Trackpad for PC over Wi-Fi (Zero Dependencies).
optional arguments:
-h, --help Show this help message and exit
--host HOST Host network interface to bind (default: 0.0.0.0)
-p PORT, --port PORT Port to listen on (default: 8000)
-q QUALITY, --quality QUALITY
Initial stream quality (10-100, default: 55)
-s SCALE, --scale SCALE
Initial resolution scale (0.2-1.0, default: 0.70)
-m MODE, --mode {auto,pc,phone}
Execution mode: 'auto' (detect platform), 'pc' (control PC from phone), or 'phone' (control Android from PC)
-v, --version Show program's version number and exit
Examples:
# Automatic environment detection (default)
volatouch
# Force phone host mode (when testing or running in Android terminal)
volatouch --mode phone
# Custom network port and high quality
volatouch -p 8080 -q 75 -s 0.85
🛡️ Security & Sandbox
- Subnet Verification (RFC-1918): Only devices connected to the same private
/24Wi-Fi subnet can access endpoints or establish WebSocket handshakes. External networks receive an immediate403 Forbidden. - Strict Origin & CSP Protection: Enforces modern
Content-Security-Policy,X-Frame-Options: DENY, and strict frame-ancestor protections. - Whitelisted Hardware Commands: Only explicit, sanitized commands (
mouse_move,mouse_click,key_tap,android_nav, etc.) are processed. Arbitrary command execution is impossible. - Failsafe Release: Whenever a connection drops, all pressed keys and buttons are instantly cleared to prevent stuck keys.
🛠️ Running From Source
# 1. Clone repository
git clone https://github.com/ugurturkerkebeci/volatouch.git
cd volatouch
# 2. Run immediately (0 dependencies needed!)
python run.py
📄 License
Distributed under the MIT License. See LICENSE for full details.
Crafted with ❤️ by Uğur Türker Kebeci
Metadata
Release files for volatouch 1.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| volatouch-1.2.2.tar.gz | 93.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| volatouch-1.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 185.0 kB
Release files / volatouch-1.2.2.tar.gz
| Download URL | volatouch-1.2.2.tar.gz |
|---|---|
| Size | 93.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
383d2fb636a9c92d00ce3f242294f1740e4ac7e22d35caa7636a38fc8bb25618
|
|
BLAKE2b-256 checksum How to use checksums |
527cbede11e382fbc7d78e4b7f378cc96e67d4274a7b473f3cd1b9cf7417f4a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.7rc1
|
Release files / volatouch-1.2.2-py3-none-any.whl
| Download URL | volatouch-1.2.2-py3-none-any.whl |
|---|---|
| Size | 91.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7fae6c84daae634e4de131b2fffdeb1dcee96417792082f215f83d785ccefecb
|
|
BLAKE2b-256 checksum How to use checksums |
2c40a7017009c33493c567ca2173a92151cb097cf08e9daac5c74a36159ac3dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.7rc1
|