guile
v0.7.0 · MIT · Python ≥ 3.9
guile

Python desktop apps, top to bottom.

A lightweight framework for the kind of internal dashboards, data explorers, and parameter tools you need at work or at home. An interactive layer on top of the Python you already have: change a state value and the window updates — no full-page refresh, no server.

$ pip install guile COPY COPIED

The right tool for a simple lab or personal project — and deliberately nothing more.

— Quick start

A converter, end to end.

This is the entire app. A plain Python function does the maths; gui.state holds the input; the slider updates it and the reading recomputes on every change. The layout is built using with: blocks.

converter.py
import guile as gui

def to_celsius(f):
    return round((f - 32) * 5 / 9, 1)

fahrenheit = gui.state(32.0)

@gui.app("Converter", width=360, height=300, center=True)
def ui():
    with gui.card(gap=16):
        gui.title("Temperature converter")
        gui.slider("°F", value=fahrenheit,
                   on_change=fahrenheit.set, min=0, max=212)
        gui.text(f"{to_celsius(fahrenheit.value)} °C",
                 size="2xl", bold=True)

gui.run()
Converter — preview
desktop window
Temperature converter
0 °C
drag the slider
ships with 4 built-in themes CSS grid layouts 25+ widgets see the reference