Milo

Template-driven CLI applications for free-threaded Python

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.