A lightweight framework for the kind of internal dashboards, data explorers, and parameter tools you need at work or at home. Write Python, get a desktop window — no full-page re-execution on refresh, no nesting hell, no server.
The right tool for a simple lab or personal project — and deliberately nothing more.
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.
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)