"เฆนเฆพเฆค เฆจเฆพ เฆฅเฆพเฆเฆฒเงเฆ เฆธเงเฆฌเฆชเงเฆจ เฆฅเฆพเฆเง โ เฆเฆฎเฆฐเฆพ เฆธเงเฆ เฆธเงเฆฌเฆชเงเฆจเฆเง เฆเฆพเฆฐเงเฆธเฆพเฆฐ เฆฌเฆพเฆจเฆฟเฆฏเฆผเง เฆฆเฆฟเฆ"
Mouseless is Bangladesh's first hand-gesture virtual mouse system โ no physical mouse required. Control your computer using only hand gestures captured through any standard webcam, completely offline.
Features ยท Installation ยท Usage ยท Modes ยท License ยท Contact
- About the Project
- Features
- System Requirements
- Dependencies
- Installation
- Running the App
- Control Modes
- Gesture Reference
- Project Structure
- Configuration
- License Keys
- Troubleshooting
- License
- Copyright
- Contact
Mouseless was built with one belief:
No child in Bangladesh should be told "you cannot use a computer because you cannot hold a mouse."
Mouseless is a 100% offline, AI-powered virtual mouse that works through any standard webcam. It supports multiple control modes including two-hand, one-hand, one-finger, and (coming soon) head-control โ making computers accessible to everyone.
| Official Project ID | 27022251146 |
| Official Project Name | เฆญเฆพเฆฐเงเฆเงเฆฏเฆผเฆพเฆฒ เฆฎเฆพเฆเฆธ เฆเฆเฆเฆฟเฆ เฆนเงเฆฏเฆพเฆจเงเฆก เฆฎเงเฆถเฆจ |
| Brand | Mouseless by asikdial.tech |
| Feature | Status |
|---|---|
| ๐ Two-hand gesture control (standard) | โ Available |
| ๐ค One-hand mode | โ Available |
| โ๏ธ One-finger mode (accessibility) | โ Available |
| ๐ฃ Bangla voice feedback | ๐ Coming Soon |
| ๐ค Head-control mode | ๐ Coming Soon |
| โ๏ธ Live cursor speed / scroll adjustment | โ Available |
| ๐ท Camera selection from UI | โ Available |
| ๐พ Settings auto-saved (settings.json) | โ Available |
| ๐ License key system | โ Available |
| ๐ Action feedback in UI | โ Available |
| ๐ 100% offline โ no internet needed | โ Available |
| ๐ซ School dashboard | ๐ Coming Soon |
| Component | Minimum | Recommended |
|---|---|---|
| OS | Windows 10 / Ubuntu 20.04 / macOS 12 | Windows 11 / Ubuntu 22.04 / macOS 14 |
| Python | 3.11.x | 3.11.x (strictly required) |
| RAM | 4 GB | 8 GB |
| CPU | Dual-core 2.0 GHz | Quad-core 2.5 GHz+ |
| Camera | Any USB / built-in webcam | 720p or higher |
| Storage | 500 MB free | 1 GB free |
| Display | 1024 ร 768 | 1920 ร 1080 |
โ ๏ธ Python 3.11 is strictly required. MediaPipe is not yet stable on Python 3.12 or 3.13. Using any other version may cause unexpected errors.
All dependencies are managed automatically by uv.
For reference, these are the packages used:
| Package | Purpose |
|---|---|
opencv-python |
Camera capture & frame processing |
mediapipe |
Hand landmark detection (AI model) |
pyautogui |
Mouse and keyboard simulation |
PySide6 |
Modern desktop GUI framework |
pycaw |
Windows system volume control |
comtypes |
Windows COM interface (required by pycaw) |
screen-brightness-control |
System brightness control |
protobuf |
MediaPipe internal data format |
โน๏ธ
pycawandcomtypesare Windows-only. On Linux and macOS they are skipped automatically. All other features work on all platforms.
We use uv โ an ultra-fast Python package manager written in Rust. It is 10โ100ร faster than pip and manages Python versions automatically. You do not need to install Python separately โ
uvhandles it.
Open PowerShell for all steps below. Search "PowerShell" in the Start Menu to open it.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Close PowerShell completely and open a new PowerShell window.
Verify the installation:
uv --versionExpected output: uv 0.x.x (any version is fine)
uv python install 3.11Verify:
uv python listYou should see 3.11.x in the list.
If you have Git installed:
git clone https://github.com/your-username/mouseless.git
cd mouselessIf you do not have Git:
- Download the project as a ZIP file from GitHub
- Extract the ZIP to any folder (e.g.
C:\mouseless) - Open PowerShell and navigate to that folder:
cd C:\mouselessuv syncThis will automatically:
- Create a virtual environment inside
.venv - Install all required packages from
pyproject.toml - Lock the exact versions in
uv.lock
If you are setting up a completely fresh project without a lock file:
uv add opencv-python mediapipe pyautogui PySide6 pycaw comtypes screen-brightness-control protobufuv run run.pyโ The Mouseless launcher window will open immediately.
If the camera does not open, check:
Windows Settings โ Privacy & Security โ Camera
โ Camera access: ON
โ Allow desktop apps to access your camera: ON
Open your Terminal for all steps below.
sudo apt update && sudo apt install -y \
curl \
git \
python3-dev \
libglib2.0-0 \
libsm6 \
libxext6 \
libxrender-dev \
libgl1-mesa-glx \
libportaudio2 \
libxcb-cursor0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render-util0 \
libxcb-shape0curl -LsSf https://astral.sh/uv/install.sh | shReload your shell configuration:
source ~/.bashrcIf you use Zsh:
source ~/.zshrcVerify:
uv --versionuv python install 3.11git clone https://github.com/your-username/mouseless.git
cd mouselesssudo usermod -aG video $USER
โ ๏ธ You must log out and log back in after running this command for the permission change to take effect.
uv syncOr for a fresh setup:
uv add opencv-python mediapipe pyautogui PySide6 \
screen-brightness-control protobufโน๏ธ Do not add
pycaworcomtypeson Linux โ they are Windows-only. Mouseless will automatically disable volume control on Linux. All other features (cursor, click, scroll, brightness) work fully.
uv run run.pyโ The Mouseless launcher window will open.
Open your Terminal for all steps below. Terminal is found in:
Applications โ Utilities โ Terminal
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"After installation, follow any instructions shown in the terminal to add Homebrew to your PATH.
curl -LsSf https://astral.sh/uv/install.sh | shReload your shell:
source ~/.zshrcVerify:
uv --versionuv python install 3.11git clone https://github.com/your-username/mouseless.git
cd mouselessGo to:
System Settings โ Privacy & Security โ Camera
Make sure Terminal has camera access set to ON.
If you run Mouseless from an IDE (e.g. VS Code), grant camera access to that application instead.
uv syncOr for a fresh setup:
uv add opencv-python mediapipe pyautogui PySide6 \
screen-brightness-control protobufโน๏ธ Do not add
pycaworcomtypeson macOS โ they are Windows-only. Volume control gestures are automatically disabled on macOS. All other features work fully.
uv run run.pyโ The Mouseless launcher window will open.
After installation, always run from the project root folder:
uv run run.pyOn the very first launch, you will see this prompt in the terminal:
=== Mouseless License Setup ===
Press Enter for Free Personal License
or enter a school / institution key:
- Press Enter โ continues with the Free Personal License
- Type a school key and press Enter โ activates that license
Your choice is saved in license.json and will not be asked again.
- Press
qinside the camera window, or - Click the Stop button in the launcher
Select your mode from the Control Mode dropdown in the launcher window. Changes are saved automatically.
Best accuracy ยท Recommended for first-time users
| Hand | Controls |
|---|---|
| Dominant hand (right by default) | Cursor move ยท Left click ยท Drag ยท Double click ยท Right click |
| Non-dominant hand (left by default) | Scroll ยท Volume ยท Brightness |
For users who prefer single-hand operation
One hand controls everything: move ยท click ยท drag ยท scroll ยท volume ยท brightness
Designed for users with limited hand mobility
| Action | Gesture |
|---|---|
| Move cursor | Raise exactly one finger |
| Left click | Make a FIST โ then raise one finger (tap) |
| Stop / Idle | Full FIST or open PALM |
| Two or more fingers | Cursor stops (ignored) |
For users who cannot use their hands at all
- Head movement โ cursor movement
- Eye blink or dwell-time โ click
- Will use MediaPipe Face Mesh (no extra hardware needed)
Applies to Two Hands and One Hand modes.
| Gesture | Action |
|---|---|
| โ๏ธ V-sign (index + middle finger open) | Move cursor |
| โ Closed fist (hold) | Click and hold (drag) |
| ๐ค Pinch โ dominant hand | Volume UP / DOWN ยท Brightness UP / DOWN |
| ๐ค Pinch โ non-dominant hand | Scroll UP / DOWN ยท Scroll LEFT / RIGHT |
| โ๏ธ Index finger only (after V-sign) | Right click |
| ๐ค Two fingers closed (after V-sign) | Double click |
| ๐ Open palm | Idle โ cursor stops |
mouseless/
โ
โโโ run.py โ Entry point โ uv run run.py
โโโ pyproject.toml โ uv project config + dependencies
โโโ .python-version โ Locks Python 3.11
โโโ .gitignore โ Git ignore rules
โโโ README.md โ This file
โ
โโโ mouseless_core/ โ Gesture engine (no UI)
โ โโโ __init__.py
โ โโโ config.py โ All tunable parameters
โ โโโ modes.py โ Control mode definitions
โ โโโ gestures.py โ Gesture enums (binary encoded)
โ โโโ hand_recognition.py โ MediaPipe โ gesture conversion
โ โโโ controller.py โ Gesture โ OS action dispatch
โ โโโ app.py โ Camera loop + mode routing
โ โโโ licensing.py โ License key validation + storage
โ โโโ settings_manager.py โ Load / save settings.json
โ โโโ action_feedback.py โ Event logging + UI callback bridge
โ
โโโ mouseless_ui/ โ Desktop GUI
โโโ __init__.py
โโโ styles.py โ Centralised QSS stylesheet
โโโ launcher.py โ PySide6 launcher window
You can adjust default values in mouseless_core/config.py:
# โโ Camera โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
CAMERA_INDEX = 0 # 0 = built-in camera, 1 = first USB camera
# โโ Cursor โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
CURSOR_SMOOTHING_ALPHA = 0.6 # 0.1 (very smooth) โ 1.0 (instant/raw)
CURSOR_SPEED_MULTIPLIER = 1.0 # overridden live by the UI slider
# โโ Scroll โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
SCROLL_STEP = 120 # scroll amount per pinch event
# โโ Gesture sensitivity โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
PINCH_THRESHOLD = 0.3 # minimum movement to trigger pinchAll settings changed through the launcher UI are saved automatically to
settings.jsonand restored on next launch. You do not need to editconfig.pyfor normal use.
| Key | Type | Cost |
|---|---|---|
| (none โ press Enter) | Free Personal License | Free forever |
MOUSELESS-PERSONAL-2025-FREE |
Registered Personal License | Free forever |
MOUSELESS-SCHOOL-TRIAL-2025 |
School Trial License | Free (demo) |
MOUSELESS-SCHOOL-ANNUAL-2025 |
School Annual License | Paid |
Personal use is always free โ no key or registration needed. For school / institutional licensing, contact us at
contact@asikdial.tech.
Symptom:
[ERROR] Could not open camera
Fix โ Find available cameras:
import cv2
for i in range(5):
cap = cv2.VideoCapture(i)
print(f"Camera {i}:", "AVAILABLE" if cap.isOpened() else "not found")
cap.release()Save this as find_cameras.py and run:
uv run find_cameras.pyThen select the correct index in the Camera dropdown in the launcher.
- Ensure lighting comes from in front of you, not from behind
- Use a plain, single-colour background (white wall is ideal)
- Keep your hand inside the camera frame at all times
- Your hand should fill roughly 20โ30% of the camera frame area
- Avoid wearing gloves or very dark clothing that covers your hand
- Lower the Cursor Speed slider to
0.80รor below - Check for bright reflective surfaces in the camera's field of view
- Ensure no other application (Zoom, Teams, OBS) is using the camera
- Try reducing ambient light sources behind you
Symptom:
ModuleNotFoundError: No module named 'pycaw'
This is expected and normal.
pycaw is a Windows-only package.
Mouseless automatically disables volume control on Linux and macOS.
No action is needed โ everything else works normally.
sudo apt install -y \
libxcb-cursor0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render-util0 \
libxcb-shape0Then run again:
uv run run.pyThe first launch always takes 5โ15 seconds while MediaPipe loads its neural network model into memory. After that, all gesture detection runs in real time. This delay only happens once per session.
Make sure the project folder is not inside a read-only location
(e.g. C:\Program Files\ on Windows).
Move the project to a regular folder such as C:\Users\YourName\mouseless\.
Try clearing the uv cache and syncing again:
uv cache clean
uv syncMouseless Software License
Personal Use โ Free forever, no restrictions
Educational โ Trial available; annual institutional license available
Commercial โ Contact for pricing and terms
This software is provided "as is" without warranty of any kind.
The author is not liable for any damages arising from the use of this software.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ Copyright ยฉ 2025 Mouseless โ
โ Powered by asikdial.tech โ
โ All rights reserved. โ
โ โ
โ Official Project ID : 27022251146 โ
โ Official Project Name : เฆญเฆพเฆฐเงเฆเงเฆฏเฆผเฆพเฆฒ เฆฎเฆพเฆเฆธ เฆเฆเฆเฆฟเฆ เฆนเงเฆฏเฆพเฆจเงเฆก เฆฎเงเฆถเฆจ โ
โ Brand : Mouseless โ
โ Website : https://asikdial.tech โ
โ Email : contact@asikdial.tech โ
โ โ
โ Unauthorised copying, redistribution, or modification โ
โ of this software without written permission from the โ
โ copyright holder is strictly prohibited. โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Channel | Details |
|---|---|
| ๐ Website | asikdial.tech |
| ๐ง Email | asikdial.tech@gmail.com |
| ๐ผ GitHub | github.com/asikdial-tech/mouseless |
Mouseless ย ยทย Powered by asikdial.tech ย ยทย ยฉ 2025 - 2026 All rights reserved