Background on Milo's philosophy, architecture, concepts, free-threading model, and ecosystem.
| Aspect | Milo's approach |
|---|---|
| State | Immutable dicts or frozen dataclasses — never mutated |
| Updates | Pure reducer functions — deterministic, testable |
| Views | Kida templates — declarative, hot-reloadable |
| Effects | Generator-based sagas — explicit, composable, thread-pool parallel |
| Concurrency | Python 3.14t free-threading — no GIL contention |
Philosophy
The design constraints behind Milo's command and app model.
Architecture
How Milo's Elm Architecture maps to terminal applications.
When to Use Milo
Choose Milo for typed CLIs, MCP tools, and reducer-driven terminal apps.
Ecosystem
How Milo fits with Kida templates, Bengal docs, and agent-facing CLIs.
Thread Safety
How Milo approaches free-threaded Python and shared mutable state.
In This Section
Core Concepts
The main ideas shared by Milo CLIs and interactive apps.
Architecture
How Milo's Elm Architecture maps to terminal applications.
Ecosystem
How Milo fits with Kida templates, Bengal docs, and agent-facing CLIs.
Philosophy
The design constraints behind Milo's command and app model.
Thread Safety
How Milo approaches free-threaded Python and shared mutable state.
When to Use Milo
Choose Milo for typed CLIs, MCP tools, and reducer-driven terminal apps.
Related Pages
Return Values
How command return values become CLI output and MCP content.
App Lifecycle
How a Milo terminal app starts, dispatches actions, renders, and exits.
Core Concepts
The main ideas shared by Milo CLIs and interactive apps.