skillfed

Kivy

An open-source Python framework for developing GUI apps that work cross-platform, including desktop, mobile and embedded platforms.

kivy v2.3.1 279.3K downloads/30d#8,122 on PyPI18,992
Permissive license MIT Active released

What it is and what it does

Kivy is a production-stable Python GUI framework built on OpenGL ES 2.0 that lets you write desktop and mobile applications once and deploy them to Windows, macOS, Linux, Android, and iOS. It emphasizes rapid prototyping and code reuse through a unified widget library with native multitouch support. The framework is written in Python and Cython and comes with an extensive, extensible widget set.

You use Kivy to design interactive user interfaces declaratively, bind them to event handlers, and package them for multiple platforms. It handles the platform-specific rendering and input abstraction, so your application logic remains portable. The framework depends on system graphics libraries and platform-specific binary packages (SDL2, GLEW, ANGLE), which are managed through companion packages like kivy-deps.sdl2.

Use it for:

  • Build a desktop application in Python that runs identically on Windows, macOS, and Linux without code changes.
  • Develop a mobile app for Android or iOS using Python, avoiding platform-specific languages while sharing core logic.
  • Create a touchscreen interface for embedded systems or kiosks with multitouch gesture support.
  • Prototype interactive data visualization or scientific applications with real-time UI updates.
  • Build games or multimedia applications that require hardware-accelerated graphics and input handling.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Kivy is a Python framework for building graphical user interfaces that run on desktop, mobile, and embedded platforms from a single codebase, with native support for multitouch input and cross-platform deployment.

Yes, if you need to build cross-platform GUIs in Python and are willing to manage platform-specific dependencies. Kivy is production-stable, actively maintained, and has no known vulnerabilities. The medium install friction is a trade-off for genuine code reuse across desktop and mobile. Not recommended if you need native platform look-and-feel or tight integration with platform-specific APIs—consider platform-specific frameworks for those cases.

Install

kivy on PyPI

pip

pip install kivy

uv

uv add kivy

poetry

poetry add kivy

Installing Kivy

Before you install

Medium install friction due to compiled dependencies (SDL2, GLEW, ANGLE on Windows) and platform-specific wheels. Actively maintained with recent commits; production-stable status and 18992 repository stars indicate solid community backing.

License in practice

MIT license permits commercial and private use with minimal restrictions. Bundled fonts (Roboto, DejaVuSans) and UI design elements carry separate Apache 2.0 and LGPLv2.1 licenses, which do not restrict your own code.

Quickstart

pip install Kivy

from kivy.app import App
from kivy.uix.label import Label

class HelloApp(App):
    def build(self):
        return Label(text='Hello Kivy')

if __name__ == '__main__':
    HelloApp().run()

Requires system graphics libraries (OpenGL ES 2.0 support); on Windows, kivy-deps.angle, kivy-deps.sdl2, and kivy-deps.glew are installed automatically but may need Visual C++ redistributables.

Verify before relying

  • Performance characteristics and memory footprint for complex UIs or large datasets
  • Maturity and stability of iOS and Android deployment workflows via companion tools
  • Real-world app store submission experience and toolchain reliability

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.8)
Install friction medium — platform-specific wheel
Runtime dependencies 9 — Kivy-Garden, docutils, pygments, requests, filetype, kivy-deps.angle, kivy-deps.sdl2, kivy-deps.glew, pypiwin32
Maintenance actively maintained — 596 days since the last release
Last repo commit
First released
Downloads 279,341/month — #8,122 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: Kivy-2.3.1-cp310-cp310-macosx_10_15_universal2.whl; Kivy-2.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; Kivy-2.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; Kivy-2.3.1-cp310-cp310-win_amd64.whl; Kivy-2.3.1-cp311-cp311-macosx_10_15_universal2.whl; Kivy-2.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; Kivy-2.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; Kivy-2.3.1-cp311-cp311-win_amd64.whl; Kivy-2.3.1-cp312-cp312-macosx_10_15_universal2.whl; Kivy-2.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; Kivy-2.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; Kivy-2.3.1-cp312-cp312-win_amd64.whl; Kivy-2.3.1-cp313-cp313-macosx_10_15_universal2.whl; Kivy-2.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; Kivy-2.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; Kivy-2.3.1-cp313-cp313-win_amd64.whl; Kivy-2.3.1-cp38-cp38-macosx_10_15_universal2.whl; Kivy-2.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; Kivy-2.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; Kivy-2.3.1-cp38-cp38-win_amd64.whl

Development Status :: 5 - Production/StableEnvironment :: MacOS XEnvironment :: Win32 (MS Windows)Environment :: X11 ApplicationsIntended Audience :: DevelopersIntended Audience :: End Users/DesktopIntended Audience :: Information TechnologyIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIX :: BSD :: FreeBSDOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Artistic SoftwareTopic :: Games/EntertainmentTopic :: Multimedia :: Graphics :: 3D RenderingTopic :: Multimedia :: Graphics :: Capture :: Digital CameraTopic :: Multimedia :: Graphics :: PresentationTopic :: Multimedia :: Graphics :: ViewersTopic :: Multimedia :: Sound/Audio :: Players :: MP3Topic :: Multimedia :: Video :: DisplayTopic :: Scientific/Engineering :: Human Machine InterfacesTopic :: Scientific/Engineering :: VisualizationTopic :: Software Development :: Libraries :: Application FrameworksTopic :: Software Development :: User Interfaces

Tags

cross-platform GUI framework Pythonmobile app development Pythondesktop application frameworkmultitouch UI frameworkPython GUI builder
cross-platform-guimobile-developmentmultitouch

More Application Frameworks packages