customtkinter
Create modern looking GUIs with Python
Decision gist · record as of 2026-08-14
Yes. CustomTkinter is actively maintained, has no known vulnerabilities, installs with minimal friction, and offers permissive licensing. It's a practical choice for developers who want modern GUI styling without abandoning Tkinter's simplicity or adopting a heavier framework. Install it if you're building desktop applications and want contemporary appearance with familiar Tkinter semantics.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.7 or later; underlying Tkinter must be available on the system.
- Low friction installation; the package is actively maintained with a recent release cycle and depends only on lightweight runtime libraries (darkdetect, typing_extensions, packaging).
License · maintenance · safety
permissive license (permissive) — Licensed under Creative Commons Zero v1.0 Universal with MIT classifier, offering permissive terms suitable for most use cases including commercial projects.
last release 2026-06-24 (51 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,205,840 downloads/mo, #4,223 on PyPI
Alternatives
Verify before relying
pip install customtkinter
import customtkinter
app = customtkinter.CTk()
app.mainloop()- Whether darkdetect integration enables automatic light/dark mode detection on all supported platforms.
- Extent of widget customization options and styling API surface compared to standard Tkinter.
What it is and what it does
CustomTkinter is a wrapper around Python's standard Tkinter library that adds modern visual styling and customization capabilities to desktop GUI applications. It allows developers to build graphical interfaces with a contemporary appearance while retaining Tkinter's simplicity and cross-platform compatibility. The package depends on darkdetect for system appearance detection, typing_extensions for type hints, and packaging for version handling.
Developers use CustomTkinter when they want to create desktop applications with polished, modern-looking interfaces without switching to heavier frameworks. It's particularly useful for projects where Tkinter's native widgets feel dated but a full framework like PyQt or wxPython adds unnecessary complexity. The library maintains active development and has achieved significant adoption in the Python GUI community.
Use it for
- Build desktop applications with modern dark/light theme support and contemporary widget styling.
- Create simple data entry or configuration tools with a polished appearance using familiar Tkinter patterns.
- Develop cross-platform GUI applications that look native on Windows, macOS, and Linux without framework overhead.
- Prototype or iterate on GUI designs quickly while maintaining Tkinter's lightweight footprint and ease of learning.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
CustomTkinter is actively maintained, has no known vulnerabilities, installs with minimal friction, and offers permissive licensing. It's a practical choice for developers who want modern GUI styling without abandoning Tkinter's simplicity or adopting a heavier framework. Install it if you're building desktop applications and want contemporary appearance with familiar Tkinter semantics.
Install
customtkinter on PyPI
Before you install
Low friction installation; the package is actively maintained with a recent release cycle and depends only on lightweight runtime libraries (darkdetect, typing_extensions, packaging).
Requires Python 3.7 or later; underlying Tkinter must be available on the system.
License in practice
Licensed under Creative Commons Zero v1.0 Universal with MIT classifier, offering permissive terms suitable for most use cases including commercial projects.
Quickstart
pip install customtkinter
import customtkinter
app = customtkinter.CTk()
app.mainloop()
Verify before relying
- Whether darkdetect integration enables automatic light/dark mode detection on all supported platforms.
- Extent of widget customization options and styling API surface compared to standard Tkinter.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesdarkdetecttyping_extensionspackaging |
| Maintenance | Actively maintained 51 days since the last release |
| First released | |
| Downloads | 1,205,840 / month, #4,223 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 :: Only |
Evidence: customtkinter-6.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 › “modern tkinter gui library”
- customtkinterCustomTkinter wraps Python's Tkinter to provide modern, customizable…
- sv-ttkApplies a modern, Windows 11-inspired visual theme to Tkinter ttk…
- ttkbootstrapApplies Bootstrap-inspired themes and a one-keyword styling system to…
Give your agent the search over MCP, or paste the wish link into any chat.
More Application Frameworks packages
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Textual is a Python framework for building cross-platform user interfaces that run in the terminal or web browser using a modern, component-based API.
Install it if you're developing CLI tools, dashboards, or interactive terminal applications.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Build and connect to Model Context Protocol servers that expose tools, resources, and prompts to LLM applications over stdio, HTTP, or SSE transports.
Install it if you need to build or connect to servers.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
See also tkinterdnd2 · ttkbootstrap · pysimplegui · sv-ttk · easygui · magicgui · tkcalendar · django-admin-interface · panel-material-ui · rich-toolkit