Toga is a Python native, OS native cross-platform GUI toolkit from BeeWare that renders platform-native interface components on Windows, macOS, Linux, iOS, and Android from a single Python codebase.
- v0.5.7
- Published at
- 27d ago
- 5,422
- Stars
- 2,032
- Download
- Synced at
- 8d ago
Latest release
v0.5.7Oct 1, 2026, 06:41 AMDownloads slow? Switch the source anytime above
README
Project Overview
Toga is a Python native GUI toolkit from the BeeWare project, designed to let developers build applications that run on multiple platforms with one Python codebase. It does not emulate widgets; instead it talks directly to the native GUI toolkit on each platform, so apps look right at home on Windows, macOS, and Linux desktops as well as iOS and Android.
| Item | Value |
|---|---|
| Platforms | Windows, macOS, Linux, iOS, Android |
| Language | Python |
| License | BSD 3-Clause |
| Part of | BeeWare suite |
One codebase, native look, shared interface logic across desktop and mobile.
Key Features
- Native widgets: each platform backend maps directly to system-native controls, so apps match the local look and feel
- Cross-platform reuse: the same interface code runs on desktop and mobile, cutting duplicated work
- Pythonic API: widgets and layouts are described entirely with Python objects, no separate markup language to learn
- Demo app: ships with toga-demo, a one-command showcase of all available widgets
- Companion packaging tool: pairs with Briefcase from the BeeWare suite to produce installers for each platform
- Active community: full documentation, GitHub discussions, and a Discord server
Target Audience
- Python developers
- Teams shipping apps on both desktop and mobile
- Developers who want UIs that match native platform styling
- Beginners who want to build GUIs in pure Python
Quick Start
- Install the demo package and run it to see the widgets in action
pip install toga-demo
toga-demo- Install the core library in your own project
pip install toga- Follow the official documentation to build your first app; use Briefcase to package for iOS and Android
Core Advantages
- Native look: apps use platform-provided widgets instead of a foreign skin
- One codebase: desktop and mobile share the same interface logic, lowering maintenance cost
- Pure Python: interface, logic, and packaging all live inside the Python ecosystem
System Requirements
| Item | Requirement |
|---|---|
| Language | Python 3 |
| OS | backend-specific prerequisites, see the platform documentation |
| Mobile | iOS and Android packaging requires Briefcase |
Notes
- Backend differences: each platform backend has its own system dependencies and prerequisites, check the platform docs before starting
- Packaging dependency: building iOS or Android installers requires Briefcase, not toga itself
Release history
Sort