{"categories":[{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/21"}],"enrichment":{"capability":"Captures keyboard input via callbacks in SSH sessions and headless environments without requiring X server, uinput, or root access.","skillfed_tags":["ssh-friendly","headless-input","asyncio-ready"],"use_cases":["Control a Raspberry Pi robot or RC car remotely over SSH by mapping key presses to motor commands.","Build a headless server application that responds to keyboard input without X server or uinput.","Create a simple terminal-based game or interactive tool that runs inside WSL 2 or a remote terminal.","Monitor or debug a system via SSH with keyboard-driven callbacks for quick actions.","Prototype keyboard-driven automation on systems where other keyboard libraries do not work."],"what_it_does":"sshkeyboard is a keyboard event callback library designed to work in environments where traditional keyboard libraries fail\u2014specifically SSH sessions, headless servers, and WSL. It reads keyboard input from stdin on Unix systems (using fcntl and termios) and from msvcrt on Windows, then fires on_press and on_release callbacks for each key. It supports both synchronous and asynchronous callbacks, sequential or concurrent execution modes, and can be controlled via asyncio.\n\nThe trade-off is significant: it cannot detect modifier keys (Ctrl, Shift, Alt, Super, Caps Lock), does not reliably handle multiple simultaneous key presses, and may lose input during rapid key spam. These limitations are inherent to reading from stdin rather than using system-level input APIs. The library is useful for simple remote control scenarios\u2014like steering a Raspberry Pi robot over SSH\u2014but not for applications requiring full keyboard state or complex key combinations.","worth_installing":"Yes, if you need keyboard input in an SSH session or headless environment and can accept the limitations (no modifier keys, no simultaneous multi-key presses). The library is stable, dependency-free, and permissively licensed. Maintenance is dormant but the codebase relies only on standard library, so breakage is unlikely. Not suitable for applications requiring full keyboard state or complex key combinations."},"id":"sshkeyboard","links":{"html":"https://skillfed.io/packages/sshkeyboard","md":"https://skillfed.io/packages/sshkeyboard.md","pypi":"https://pypi.org/project/sshkeyboard/"},"maintenance":{"status":"dormant"},"meta":{"latest_release":"2021-10-28","license_spdx":null,"license_treatment":"permissive","name":"sshkeyboard","python_support":"supports_current","summary":"sshkeyboard"},"popularity":{"monthly_downloads":89417,"position":13661,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"2.3.1"}
