Milo has two related building blocks:
CLIturns typed functions into commands, schemas, MCP tools, and llms.txt.Appruns a reducer-driven terminal interface with templates and input.
The shared concepts are:
| Concept | Role |
|---|---|
| Command handler | Typed Python function exposed to humans and agents |
| Schema | JSON Schema derived from annotations and docstrings |
| Context | Injected runtime object for output, global options, and app bridges |
| State | Serializable model for interactive apps |
| Reducer | Pure function that turns actions into new state |
| Saga / Cmd | Explicit side-effect boundary |
| Template | Kida view rendered from state |
In This Section
App Lifecycle
How a Milo terminal app starts, dispatches actions, renders, and exits.
Configuration
system with TOML/YAML/JSON loading, deep merge, profiles, and origin tracking.
Return Values
How command return values become CLI output and MCP content.
Related Pages
About
Philosophy, architecture, concepts, thread safety, and ecosystem.
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.