Control your entire computer with just your hand — no mouse, no touchpad, just gestures and voice.
Uses your webcam + AI hand tracking to turn gestures and voice into full mouse/keyboard control. No special hardware needed.
| Gesture | Action |
|---|---|
| ☝️ Index finger only | Move cursor |
| 🤏 Pinch (quick) | Left click |
| 🤏 Pinch (hold 0.4s) | Drag |
| ✌️ Two fingers | Right click |
| ✊ Fist | Scroll |
| 🤙 Pinky only | Double click |
| 🖐️ Open hand | Freeze / unfreeze cursor |
| Say | Action |
|---|---|
"click" |
Left click |
"right click" |
Right click |
"double click" |
Double click |
"scroll up" |
Scroll up |
"scroll down" |
Scroll down |
"copy" |
Ctrl/Cmd + C |
"paste" |
Ctrl/Cmd + V |
"undo" |
Ctrl/Cmd + Z |
"screenshot" |
Take screenshot |
"freeze" |
Toggle cursor freeze |
- Hand Tracking — Google MediaPipe Hand Landmarker (21 keypoints per hand)
- Smoothing — One Euro Filter eliminates hand tremor without adding lag
- Ghost Click Prevention — Custom
ClickAccuracyEnginerequires gesture confidence ≥ 85% before firing - Voice — Google Speech Recognition via
SpeechRecognitionlibrary - Async pipeline — Camera, ML inference, and voice run on separate threads for low latency
git clone https://github.com/YOUR_USERNAME/finger-cursor-controller.git
cd finger-cursor-controllerpip install opencv-python mediapipe pyautogui SpeechRecognition pyaudiomacOS users: If
pyaudiofails, runbrew install portaudiofirst.
Windows users: If
pyaudiofails, install from this wheel.
python finger_cursor.pyThe hand landmark model (~30 MB) downloads automatically on first run.
- Python 3.8+
- Webcam
- Microphone (for voice commands)
- macOS or Windows
finger-cursor-controller/
├── finger_cursor.py # Main script
├── requirements.txt # Dependencies
└── README.md
You can tweak these constants at the top of finger_cursor.py:
| Constant | Default | Description |
|---|---|---|
PINCH_THRESHOLD |
0.040 |
How close fingers must be to detect pinch |
DRAG_HOLD_TIME |
0.40s |
How long to hold pinch before drag starts |
CLICK_COOLDOWN |
0.35s |
Min time between clicks |
SCROLL_SENSITIVITY |
18 |
Scroll speed multiplier |
- Requires good lighting for accurate tracking
- Voice commands need internet (Google Speech API)
- One hand tracked at a time
Made by a 12th grader who thought it'd be cool to throw away the mouse.
Feel free to open issues or PRs!
MIT — Ship it further.