beeware

toga

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 AM
Downloads 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

  1. Install the demo package and run it to see the widgets in action
pip install toga-demo
toga-demo
  1. Install the core library in your own project
pip install toga
  1. 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