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.
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)
gui.run()