asynckivy
Async library for Kivy
Decision gist · record as of 2026-08-14
Yes. AsyncKivy is actively maintained, has zero known vulnerabilities, low install friction, and a permissive MIT license. It directly solves a real pain point in Kivy development—callback hell—and is well-tested on modern Python versions. Install it if you're building a Kivy app and want cleaner, more maintainable event-handling code.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later and an active Kivy application context to run event-driven code.
- Low friction: pure Python wheel with a single runtime dependency (asyncgui).
- Actively maintained with recent releases; tested on Python 3.10–3.13 with Kivy 2.3.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; you must include a copy of the license in distributions.
last release 2026-06-02 (73 days) · last repo commit 2026-08-13 · 90 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 82,768 downloads/mo, #14,136 on PyPI
Alternatives
Verify before relying
pip install asynckivy
import asynckivy as ak
async def task(button):
await ak.sleep(2)
await ak.event(button, 'on_press')
ak.managed_start(task(button))- Whether asynckivy integrates with Kivy's event loop automatically or requires manual setup beyond managed_start().
- Performance characteristics when handling many concurrent async tasks in a Kivy app.
- Compatibility with Kivy versions other than 2.3.
What it is and what it does
AsyncKivy is a library that layers async/await syntax on top of Kivy's event system, eliminating the nested callback chains that make event-driven Kivy code hard to follow. Instead of binding callbacks to buttons or timers and manually unbinding them, you write async functions that await events and delays in a linear, top-to-bottom flow. It depends on asyncgui for its core async machinery and integrates with Kivy's clock and event system.
The library provides primitives like ak.sleep() for time delays, ak.event() to wait for button presses or property changes, ak.wait_any() for timeout-like patterns, and ak.wait_all() for coordinating multiple concurrent waits. You start an async task with ak.managed_start(), which handles lifecycle and cleanup. It's tested on Python 3.10–3.13 with Kivy 2.3 and carries no known vulnerabilities.
Use it for
- Simplify Kivy UI sequences: wait for a button press, then a timer, then a property change—all in one readable async function.
- Implement timeouts: use ak.move_on_after() to wait for an event with a maximum duration before moving on.
- Coordinate multiple events: use ak.wait_all() to ensure both a button press and a timer have completed before proceeding.
- Handle conditional waits: filter events with predicates (e.g., wait for button.x to exceed a threshold) without extra state variables.
- Nest async logic: compose complex event sequences by nesting ak.wait_any() and ak.wait_all() calls.
- Replace Kivy Clock callbacks: replace Clock.schedule_once() and event binding chains with linear async code.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
AsyncKivy is actively maintained, has zero known vulnerabilities, low install friction, and a permissive MIT license. It directly solves a real pain point in Kivy development—callback hell—and is well-tested on modern Python versions. Install it if you're building a Kivy app and want cleaner, more maintainable event-handling code.
Install
asynckivy on PyPI
Before you install
Low friction: pure Python wheel with a single runtime dependency (asyncgui). Actively maintained with recent releases; tested on Python 3.10–3.13 with Kivy 2.3.
Requires Python 3.10 or later and an active Kivy application context to run event-driven code.
License in practice
MIT license permits commercial and private use with minimal restrictions; you must include a copy of the license in distributions.
Quickstart
pip install asynckivy
import asynckivy as ak
async def task(button):
await ak.sleep(2)
await ak.event(button, 'on_press')
ak.managed_start(task(button))
Verify before relying
- Whether asynckivy integrates with Kivy's event loop automatically or requires manual setup beyond managed_start().
- Performance characteristics when handling many concurrent async tasks in a Kivy app.
- Compatibility with Kivy versions other than 2.3.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4.0,>=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packageasyncgui |
| Maintenance | Actively maintained 73 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 82,768 / month, #14,136 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/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: Software Development :: Libraries |
Evidence: asynckivy-0.11.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 › “kivy async await”
- asynckivyAsyncKivy replaces Kivy's callback-based event handling with…
- KivyKivy is a Python framework for building graphical user interfaces…
- buildozerBuildozer turns Python applications into binary packages for Android,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
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.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
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.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also asyncgui · Kivy · sshkeyboard · pynput · psycogreen · waiting · pynput-robocorp-fork · pyventus · python-backoff · busypie