HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
kivy
kivy
Python2012–2024
kivy / kivy

kivy

Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS

20Distinct people
23Mentions
0Explicit recommenders
19KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year23 dated mentions

Observed mentions: 2012-10-03 06:22:37 UTC to 2024-07-09 06:49:17 UTC.

012342012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 3 mentions; 2 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC101
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC000
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC303
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC404
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC303
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC101
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC321
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC404
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Kivy Kivy is an open-source Python framework for developing GUI apps that work cross-platform, including desktop, mobile and embedded platforms. The aim is to allow for quick and easy interaction design and rapid prototyping whilst making your code reusable and deployable: Innovative user interfaces made easy. Kivy is written in Python and Cython and is built on OpenGL ES 2.0. It supports various input devices and has an extensive (and extensible) widget library. With the same codebase, you can target Windows, macOS, Linux (including Raspberry Pi OS), Android, and iOS. All Kivy widgets are built with multitouch support. Kivy is MIT licensed, actively developed by a great community and is supported by many projects managed by the Kivy Organization. Installation, Documentation and Examples Extensive installation instructions as well as tutorials and general documentation, including an API reference, can be found at https://www.kivy.org/docs. A PDF version is also available. Kivy ships with many examples which can be found in the examples folder. Support Are you having trouble using the Kivy framework, or any of its related projects? Is there an error you don’t understand? Are you trying to figure out how to use it? We have volunteers who can help! The best channels to contact us for support are listed in the latest Contact Us document. Contributing We love pull requests and discussing novel ideas. Check out our latest contribution guide and feel free to improve Kivy. It gives details of the best places online to discuss the development with the core developers and other enthusiasts. Sibling projects The Kivy team manages a number of additional projects that support the Kivy eco-system. Buildozer: a development tool for turning Python applications into binary packages ready for installation on any of a number of platforms, including mobile devices. Plyer: a platform-independent Python API for accessing hardware features of various platforms (Android, iOS, macOS, Linux and Windows). PyJNIus: a Python library for accessing Java classes using the Java Native Interface (JNI). Pyobjus: Python module for accessing Objective-C classes as Python classes using Objective-C runtime reflection. Python for Android: a development tool that packages Python apps into binaries that can run on Android devices. Kivy iOS: a toolchain to compile the necessary libraries for iOS to run Kivy applications, and manage the creation of Xcode projects. Audiostream: library for direct access to the microphone and speaker. KivEnt: entity-based game engine for Kivy. Oscpy: a Python implementation of Open Sound Control (OSC) network protocol. Garden: widgets and libraries created and maintained by users. Licenses Kivy is released under the terms of the MIT License. Please refer to the LICENSE file. The provided fonts Roboto and Roboto Mono are licensed and distributed under the terms of the Apache License, Version 2.0. The DejaVuSans (used for the virtual keyboard) license can be viewed here. The current UI design has been adapted from Moblintouch theme's SVGs and is licensed under the terms of the LGPLv2.1. Code of Conduct In the interest of fostering an open and welcoming community, we as contributors and maintainers need to ensure participation in our project and our sister projects is a harassment-free and positive experience for everyone. It is vital that all interaction is conducted in a manner conveying respect, open-mindedness and gratitude. Please consult the latest Code of Conduct. Contributors This project exists thanks to all the people who contribute. [Become a contributor]. Backers Thank you to all of our backers! 🙏 [Become a backer] Sponsors Special thanks to all of our sponsors, past and present. Support this project by [becoming a sponsor]. Here are our top current sponsors. Please click through to see their websites, and support them as they support us.
Read the full README on GitHub

What Hacker News says

23 sources
In case anyone is interested, the $N-Protractor algorithm was ported to Python for use in the Kivy framework [0]. Unfortunately it's tied to kivy's clock among other things, but easy to rip it out should you need it in a different context. There is also anexample application that can be used to create gesture templates [1] [0] https://github.com/kivy/kivy/blob/master/kivy/multistroke.py [1] https://github.com/kivy/kivy/tree/master/examples/demo/multi...
In $1 Unistroke Recognizer (2007)
Not sure about Tkinter for Android[0], but for Python for Android take a look on Kivy/Py4A.[1,2] As for Py/Qt for Android there is QPython.[3] But, sadly, there are NO good Android alternative to "PyS60" (Python for Symbian S60).[4] [0] https://learning-python.com/using-tkinter-programs-on-androi... [1] https://github.com/kivy/kivy [2] https://github.com/kivymd/KivyMD [3] https://github.com/qpython-android/qpython3 [4] https://en.wikipedia.org/wiki/PyS60
In AndroWish – run desktop Tcl/Tk programs almost unaltered on the Android Platform
Incredible! The sphinx docs look great. Also, the logo! Not to mention, the translations: - https://pygame-zero.readthedocs.io/zh_CN/latest/ - https://pygame-zero.readthedocs.io/ja/latest/ - https://pygame-zero.readthedocs.io/sk/latest/ One reason of why I wouldn't use it yet: LGPL. This is the issue pygame had when I tried it. The license made it very difficult to incorporate and use in practice, and I ended up playing with kivy instead (https://github.com/kivy/kivy). The reasons why: 1. Writing anything commercial would be a gamble. I've wrote at length on why this license isn't meant for scripting languages, but even if it's a compiled language, SDL moved away from LGPL here: https://youtu.be/MeMPCSqQ-34?t=430. 2. LGPL and scripting languages just don't work from an open source perspective. It's not copy-paste and vendorize friendly. F
Read the rest
unctions can't be copied a la carte. I'd rather write something from scratch than link an LGPL library in one of my MIT licensed projects. I'm just not willing to open downstream users to the risk. What ends up happening is 5/10 years on, someone ends up writing a new MIT/BSD library to get around a viral one (e.g. GCC -> Clang/LLVM).
In Pygame Zero: Creating games without boilerplate
There appears to be a multi-step process to install Kivy on Windows. Isn't the whole point of pip to not have to worry about that? I was expecting "pip install kivy" > "python helloworld.py" > done Instead I got "install these things", "if you're using this version install this other thing", "cool now install kivy". I went ahead and tried to package a Windows app using their recommended method (PyInstaller), and PyInstaller doesn't support current version of Python. Thought I'd take a look at other offerings, for iOS there's a weird project-mirror XCode generator script. Android isn't any better. I mean, this is more of a reflection on the disparity across different platforms and packaging tools rather than Kivy itself. There's a reason some large Enterprises won't touch all of these tiny, moving, fragile tech. In saying all of that, I th
Read the rest
ink Kivy has some very nice points. The examples are straightforward, and to-the-point, covering a lot of use cases. However I think having this as a >1.0 versioned release is kind of crazy. When comparing this to other frameworks, why would you ever choose this? Aside from "I like Python"? Definitely shows a lot of promise, but I think sitting in sub 1 state for a while like Rust until you've got something going for you would help with adoption and on-boarding. EDIT: Tried to use PyInstaller from source, no luck - SDL required. Found a closed bug report which explains how to fix it - the "optional" library has to be installed for PyInstaller to work. Go figure. https://github.com/kivy/kivy/issues/4482
In Kivy 1.10.0 released
I think game-like style is not typical for Kivy apps which do not aim to be games, though looking native has not been Kivy's goal either. I've recently released Viorise, a video rank tracker aimed for desktop platforms (https://viorise.com), though it may also qualify as an Android UI, I've followed Material Design guidelines for most of the widgets and the overall layout of the app. There have been some proposals for theming (https://github.com/kivy/kivy/issues/691), but none of them were truly favored by the community. There are also a couple of third-party approaches like KivyMD, or FlatKivy. What they lack is a swappable theme, since there is no true theming support, they are just styled widgets. Finding a good way to make a declared theme independent from widgets, but still keeping it customizable at runtime has been our main issue.
Read the rest
The difficulty comes from theming being much more than a backgorund color, we should also be able to define certain behaviors and interactions, animations etc. These are rather easy and IMHO pleasant to achieve in the scope of widgets, but we haven't yet found a good way to decouple them.
In Kivy: Develop multi-touch enabled Python apps

Showing the 15 most recent of 23 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.