wakepy
wakelock / keep-awake / stay-awake
Decision gist · record as of 2026-08-14
Yes. Wakepy is actively maintained, has zero known vulnerabilities, minimal dependencies, and a permissive MIT license. It solves a real cross-platform problem using proper system APIs rather than hacks. Install it if you need to prevent sleep or lock during long tasks.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction: pure Python wheel with only two runtime dependencies (jeepney and typing-extensions), both lightweight.
- Active maintenance with recent releases; last commit 2026-04-01.
License · maintenance · safety
permissive license (permissive) — MIT License (permissive) — you can use, modify, and distribute wakepy freely in commercial and private projects with minimal restrictions.
last release 2026-02-07 (188 days) · last repo commit 2026-04-01 · 261 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 168,094 downloads/mo, #10,454 on PyPI
Alternatives
Verify before relying
pip install wakepy
from wakepy import keep
@keep.running
def long_task():
# Your long-running code here
pass- Whether the package works reliably across all listed Unix desktop environments without additional system configuration
- Performance overhead when running keep.running or keep.presenting modes over extended periods
What it is and what it does
Wakepy is a cross-platform Python library and CLI tool that prevents your system from automatically sleeping, suspending, or locking the screen during long-running tasks. It works on Windows (via SetThreadExecutionState), macOS (via caffeinate), and Linux/Unix systems with GNOME, KDE Plasma, or Freedesktop.org desktop environments. The package offers two main modes: keep.running inhibits sleep and suspend but allows screen lock and screensaver, while keep.presenting also keeps the display active and prevents screen lock.
You use it either as a decorator or context manager around your code, or invoke it from the command line. It's designed to be non-disruptive—it uses only the system APIs provided for this purpose, never simulates keyboard or mouse input—and safe to crash; killing the process leaves no lingering state. The package has minimal dependencies: on Linux it requires jeepney for D-Bus communication, and on Python 3.9 and earlier it needs typing-extensions; otherwise it has no Python dependencies.
Use it for
- Training machine learning models or running long data-processing pipelines that must not be interrupted by system sleep
- Video encoding, transcoding, or upscaling tasks that require the system to stay awake for hours
- Displaying dashboards, monitoring applications, or videos that require the screen to remain on and unlocked
- Web scraping or data archival operations that run unattended overnight or over many hours
- Automated hardware control or instrumentation tasks (e.g., knitting machines, scientific instruments) that must complete without interruption
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Wakepy is actively maintained, has zero known vulnerabilities, minimal dependencies, and a permissive MIT license. It solves a real cross-platform problem using proper system APIs rather than hacks. Install it if you need to prevent sleep or lock during long tasks.
Install
wakepy on PyPI
Before you install
Low friction: pure Python wheel with only two runtime dependencies (jeepney and typing-extensions), both lightweight. Active maintenance with recent releases; last commit 2026-04-01.
License in practice
MIT License (permissive) — you can use, modify, and distribute wakepy freely in commercial and private projects with minimal restrictions.
Quickstart
pip install wakepy
from wakepy import keep
@keep.running
def long_task():
# Your long-running code here
pass
Verify before relying
- Whether the package works reliably across all listed Unix desktop environments without additional system configuration
- Performance overhead when running keep.running or keep.presenting modes over extended periods
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesjeepneytyping-extensions |
| Maintenance | Actively maintained 188 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 168,094 / month, #10,454 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIXOperating System :: POSIX :: BSDOperating System :: POSIX :: BSD :: FreeBSDOperating System :: POSIX :: BSD :: NetBSDOperating System :: POSIX :: BSD :: OpenBSDOperating System :: POSIX :: LinuxOperating System :: POSIX :: OtherOperating System :: UnixProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Free ThreadingProgramming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: UtilitiesTyping :: Typed |
Evidence: wakepy-1.0.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “prevent system sleep”
- wakepyWakepy prevents a system from sleeping or locking the screen during…
- python-timeoutGenerates random timeouts between specified minimum and maximum…
- win-precise-timeProvides high-resolution time measurement and sub-millisecond sleep…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also filelock · celery_once · pyps4-2ndscreen · mss · appnope · screeninfo · fasteners · dearpygui · win-precise-time · pyobjc-framework-ScreenSaver