Milo is a framework for building interactive terminal applications in Python 3.14t. It uses the Elm Architecture — an immutable state tree managed by pure reducer functions, a view layer driven by Kida templates, and generator-based sagas for side effects.
from milo import App
def reducer(state, action):
if state is None:
return {"count": 0}
if action.type == "@@KEY" and action.payload.char == " ":
return {**state, "count": state["count"] + 1}
return state
app = App(template="counter.kida", reducer=reducer, initial_state=None)
app.run()
The Bengal Ecosystem
A structured reactive stack — every layer written in pure Python for 3.14t free-threading.
| ᓚᘏᗢ | Bengal | Static site generator | Docs |
| ∿∿ | Purr | Content runtime | — |
| ⌁⌁ | Chirp | Web framework | Docs |
| =^..^= | Pounce | ASGI server | Docs |
| )彡 | Kida | Template engine | Docs |
| ฅᨐฅ | Patitas | Markdown parser | Docs |
| ⌾⌾⌾ | Rosettes | Syntax highlighter | Docs |
| ᗣᗣ | Milo | CLI framework ← You are here | Docs |
Python-native. Free-threading ready. No npm required.