{"library":"pynput","title":"pynput","description":"pynput is a Python library that allows you to control and monitor user input devices, specifically the keyboard and mouse. It provides cross-platform functionality for simulating keystrokes and mouse events, as well as listening for input. The current version is 1.8.1, and the library is regularly updated to address platform-specific nuances and improve functionality.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pynput"],"cli":null},"imports":["from pynput import keyboard","from pynput import mouse","from pynput.keyboard import Listener","from pynput.keyboard import Controller","from pynput.keyboard import Key","from pynput.mouse import Listener","from pynput.mouse import Controller","from pynput.mouse import Button"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from pynput import keyboard, mouse\nimport time\n\ndef on_press(key):\n    try:\n        print(f'Alphanumeric key pressed: {key.char}')\n    except AttributeError:\n        print(f'Special key pressed: {key}')\n\ndef on_release(key):\n    print(f'Key released: {key}')\n    if key == keyboard.Key.esc:\n        # Stop listener\n        return False\n\n# --- Keyboard Listener ---\nprint(\"Starting keyboard listener. Press 'Esc' to exit.\")\nkeyboard_listener = keyboard.Listener(on_press=on_press, on_release=on_release)\nkeyboard_listener.start()\n\n# --- Mouse Controller (runs after listener starts) ---\nmouse_controller = mouse.Controller()\nprint(f\"Current mouse position: {mouse_controller.position}\")\n\n# Move mouse to (100, 100) and click left button\nmouse_controller.position = (100, 100)\nprint(f\"Moved mouse to: {mouse_controller.position}\")\ntime.sleep(1)\nmouse_controller.click(mouse.Button.left, 1)\nprint(\"Left clicked.\")\n\n# Wait for keyboard listener to stop\nkeyboard_listener.join()\nprint(\"Keyboard listener stopped.\")","lang":"python","description":"This quickstart demonstrates both monitoring keyboard input and controlling mouse actions. A keyboard listener is started in a non-blocking thread, which prints pressed keys until 'Esc' is released. Concurrently, a mouse controller moves the cursor and performs a left-click. The script waits for the keyboard listener to be explicitly stopped by the user.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":null,"pypi_latest":"1.8.2","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":0,"avg_install_s":null,"avg_import_s":null,"wheel_type":null},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pynput","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pynput","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pynput","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pynput","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pynput","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pynput","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pynput","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pynput","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.8,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pynput","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pynput","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.7,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}