Skip to main content

🖱️ Local Control

Let you steer the computer's mouse, keyboard from any device's browser.

The server is written in pure Python with minimal dependencies and ships with a mobile-friendly frontend.

Features

  • Mouse cursor movement and click controls from touch or mouse devices.
  • Realtime input field streams keystrokes (including Backspace/Delete) as you type.
  • OS-level lock, and shutdown shortcuts (best-effort across Windows, macOS, Linux).
  • Authentication that reuses the current OS account credentials, remembers trusted devices, and rate-limits brute-force attempts.
  • Build with GPT-5-Codex, easy to customize and modify with vibe coding.

Requirements

  • Python 3.9 or newer.
  • Desktop environments capable of receiving simulated input (X11/Wayland, Windows, or macOS).
  • Linux/X11 hosts require the libX11 and libXtst system libraries (commonly present on desktop distributions; Wayland sessions need XWayland support).
  • macOS hosts must grant the Python process accessibility permissions (System Settings → Privacy & Security → Accessibility).

Installation

pip install local_control

Usage

local-control --help
local-control --port 4001

Open http://<host-ip>:4001 from your phone, tablet, or another computer on the same LAN. Sign in with the current desktop user's username and password. Devices marked as trusted skip future logins under the same secret.

Metadata

Release files for local-control 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for local-control 0.1.5
File Size Uploaded
local_control-0.1.5.tar.gz 40.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for local-control 0.1.5
File Interpreter ABI Platform
local_control-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 83.3 kB

Release files / local_control-0.1.5.tar.gz

Download URL local_control-0.1.5.tar.gz
Size 40.4 kB
Tags Source
SHA-256 checksum
How to use checksums
16b08238f5d05c287ee7c9aebd5d67b1140994a391d30b9d1e65d8573036adb1
BLAKE2b-256 checksum
How to use checksums
4e4c90afe749d779a3c7ea35792605feb77a564c6f05476c5d8cbd2be368f74a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.7

Release files / local_control-0.1.5-py3-none-any.whl

Download URL local_control-0.1.5-py3-none-any.whl
Size 42.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce6bd1df73b7aa8a1b3f51a5f5d4f2a9e706d7083eab0bdc1e343268a35ee9d0
BLAKE2b-256 checksum
How to use checksums
43ddc6519d85a325aa852449a4499015e9d2c25d6e85d40e48ae3e53090d82d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.7

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page