Guide · Open source
How to use CustomTkinter: install, build a window and dark mode
Updated · written with AI from the project's own documentation and checked against our catalogue data
CustomTkinter is an open-source Python UI library built on top of Tkinter, the standard GUI toolkit that ships with Python. It provides replacement widgets that look more modern and can be customized, and it includes a dark theme option. This guide is for Python developers and students who want to build desktop windows without learning a new GUI framework, and it explains what you need, how to get the project and where to look next.
Quick start
- 1Install Python. Make sure Python is installed on your computer, since it is the listed prerequisite for CustomTkinter.
- 2Clone the repository. Run the git clone command for TomSchimansky/CustomTkinter to download the source into a folder.
- 3Read the README. Open the README in the cloned folder and follow its current install instructions, because the source used for this page did not include the package-manager command.
- 4Create a window. Write a short script that imports CustomTkinter, creates a main window and sets a title.
- 5Add a widget. Place one modern-looking widget in the window, such as a label or button.
- 6Start the main loop. Run the event loop so the window stays open and responds to clicks.
- 7Try dark mode. Switch the appearance to dark and check how your widgets look.
What CustomTkinter is and how it relates to Tkinter
CustomTkinter is a layer on top of Tkinter, not a separate toolkit. Tkinter is the standard GUI toolkit bundled with Python, and CustomTkinter supplies replacement widgets that look more modern and can be customized.
Because it builds on Tkinter, the programming model is familiar if you already know Tkinter. Its main draw is the newer appearance and built-in dark mode, which the project's description and topics mention.
- Base: Tkinter, which ships with Python
- Purpose: modern, customizable replacement widgets
- Licence: MIT
- Output: desktop GUIs only
Get the CustomTkinter source code
The project's README, as provided in the source for this page, gives a git clone command for the repository. Clone it into a folder of your choice, then open the cloned folder in your editor.
The analysis for this directory lists the install method as a package manager, but the exact package-manager command was not in the source we had. Check the repository's README for the current installation instructions before you start.
- You need Python installed first, since it is the listed prerequisite.
- Clone the repository and read the README in the cloned folder for install steps.
git clone https://github.com/TomSchimansky/CustomTkinterBuild your first CustomTkinter window
Start from the same pattern you would use with Tkinter: create a root window, add widgets, then start the event loop. The main difference is that you import and use CustomTkinter's widgets in place of the standard ones where you want the modern look.
Keep the first program small, such as one window with a label and a button, so you can confirm the library works in your environment before building more.
- Import the library in your script.
- Create the main window and give it a title.
- Add a widget, then start the main loop so the window stays open.
Use dark mode and customize the look
The project describes a dark theme option, and the repository topics include dark mode. Use the library's appearance settings to switch between light and dark, then adjust widget colours where you need a specific style.
Check the repository for the exact setting names and any theme files, since the source used here does not list them.
- Choose a dark or light appearance for the whole application.
- Customize individual widgets where the default look does not fit your tool.
Know the limits before you commit
CustomTkinter produces desktop interfaces only. If you need a web or mobile app, pick a different tool. The source also did not confirm the full widget set, so if your project depends on many ready-made complex widgets, verify what is included before you commit.
Because the library is built on Tkinter, it inherits Tkinter's scope. Compare it with the alternatives below if your needs go beyond a clean desktop window.
- Not for web or mobile apps.
- Verify the widget set if you need complex components.
- Comparable projects include PySimpleGUI, PyQt, Kivy and wxPython.
What people use it for
- A student building a simple desktop calculator or note-taking app in Python.
- A developer who already uses Tkinter and wants a newer look without rewriting the app.
- A small internal tool with a dark interface for a Python workflow.
- A prototype form or settings window for a Python desktop program.
Frequently asked questions
Is CustomTkinter free to use?
CustomTkinter is released under the MIT licence, which is a permissive open-source licence. Check the LICENSE file in the repository for the full terms before you use it in a project.
Do I need to know Tkinter first?
It helps. CustomTkinter is built on Tkinter, so if you know Tkinter basics, the structure of your code will feel familiar. Beginners can still learn it, but reading a Tkinter introduction first makes the library easier to follow.
What do I need to install CustomTkinter?
The listed prerequisite is Python. Clone the repository with git and follow the install instructions in its README.
Can CustomTkinter build web or mobile apps?
No. CustomTkinter produces desktop GUIs only, because it is based on Tkinter. For web or mobile apps, use a tool designed for those platforms.
What are the alternatives to CustomTkinter?
Comparable projects include PySimpleGUI, PyQt, Kivy and wxPython. Choose based on whether you need a simple desktop look, a large widget set or cross-platform mobile support.
Does CustomTkinter support dark mode?
Yes. The project describes a dark theme option, and dark mode is one of its listed topics. Check the repository for the exact setting to enable it.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
CustomTkinter suits Python developers who already know Tkinter and want a newer, customizable look with dark mode, and students building simple desktop apps. Skip it if you need web or mobile apps, or if your project depends on a large set of ready-made complex widgets, since the source did not confirm that widget set; consider PyQt, wxPython or Kivy in those cases.
Install options & downloads