# Milo > Build CLIs that humans and AI agents both use natively ## Overview - [Milo](/milo-cli/): Build CLIs that humans and AI agents both use natively ## Authors - [lbliii](/milo-cli/authors/lbliii/) ## Documentation - [Documentation](/milo-cli/docs/): Learn how to build typed CLI commands and interactive terminal apps with Milo. ## Releases - [Milo 0.1.0](/milo-cli/releases/0.1.0/): Initial release — Elm Architecture for the terminal. - [Milo 0.1.1](/milo-cli/releases/0.1.1/): Reducer combinators, Bubbletea-inspired effects, CLI polish, and developer experience improvements. - [Milo 0.2.0](/milo-cli/releases/0.2.0/): Saga effects, structured concurrency, extended theme colors, pipeline TUI, and orchestration hardening. - [Milo 0.2.1](/milo-cli/releases/0.2.1/): Fix group help display, lazy command defaults, and schema hardening. - [Milo 0.2.2](/milo-cli/releases/0.2.2/): Pipeline observability, dispatch refactor, performance improvements, and sharp edge fixes. - [Milo 0.3.0](/milo-cli/releases/0.3.0/): Agent-native scaffolding and verification, Kida 0.7 templates, terminal layout filters, and contract hardening. - [Releases](/milo-cli/releases/): Stay up to date with the latest features, improvements, and fixes. ## About - [About](/milo-cli/docs/about/): Philosophy, architecture, concepts, thread safety, and ecosystem. - [Architecture](/milo-cli/docs/about/architecture/): How Milo's Elm Architecture maps to terminal applications. - [Ecosystem](/milo-cli/docs/about/ecosystem/): How Milo fits with Kida templates, Bengal docs, and agent-facing CLIs. - [Philosophy](/milo-cli/docs/about/philosophy/): The design constraints behind Milo's command and app model. - [Thread Safety](/milo-cli/docs/about/thread-safety/): How Milo approaches free-threaded Python and shared mutable state. - [When to Use Milo](/milo-cli/docs/about/when-to-use/): Choose Milo for typed CLIs, MCP tools, and reducer-driven terminal apps. ## Applied Tutorials - [Applied Tutorials](/milo-cli/docs/applied-tutorials/): Step-by-step guides for building real CLI and terminal applications with Milo. - [Build a Counter App](/milo-cli/docs/applied-tutorials/build-a-counter/): Build your first interactive Milo app with a reducer and Kida template. - [Build an Install Wizard](/milo-cli/docs/applied-tutorials/build-a-wizard/): Build a multi-screen install wizard with forms, validation, and side effects. ## Build Apps - [Build Apps](/milo-cli/docs/build-apps/): Build reducer-driven terminal apps with templates, input, forms, flows, commands, and sagas. - [Commands](/milo-cli/docs/build-apps/commands-effects/): Lightweight Cmd thunks, Batch, Sequence, TickCmd, and ViewState for simple side effects. - [Dev Server](/milo-cli/docs/build-apps/dev/): Hot-reload dev server with filesystem polling and @@HOT_RELOAD dispatch. - [Multi-Screen Flows](/milo-cli/docs/build-apps/flows/): Declarative multi-screen state machines with the >> operator. - [Interactive Forms](/milo-cli/docs/build-apps/forms/): Text, select, confirm, and password fields with validation and TTY fallback. - [Input Handling](/milo-cli/docs/build-apps/input/): Cross-platform key reader with VT100/xterm escape sequence support. - [Live Rendering](/milo-cli/docs/build-apps/live/): In-place terminal updates via milo.live for scripts and one-shot commands. - [Plugins & Hooks](/milo-cli/docs/build-apps/plugins/): Hook registry with named extension points, listeners, and Store middleware. - [Sagas](/milo-cli/docs/build-apps/sagas/): Generator-based side effects with Call, Put, Select, Fork, Delay, Race, All, Take, and more. - [State Management](/milo-cli/docs/build-apps/state/): Redux-style Store with dispatch, listeners, middleware, and saga scheduling. - [Templates](/milo-cli/docs/build-apps/templates/): Kida-powered terminal rendering with built-in form, field, help, and progress templates. ## Build Clis - [Build CLIs](/milo-cli/docs/build-clis/): Build typed command-line tools that also expose MCP tools and llms.txt discovery. - [CLI & Commands](/milo-cli/docs/build-clis/commands/): AI-native CLI with typed commands, automatic argparse, MCP tools, and llms.txt. - [Context & Global Options](/milo-cli/docs/build-clis/context/): Execution context with verbosity levels, output format, and custom global options. - [Command Groups](/milo-cli/docs/build-clis/groups/): Nested command groups for hierarchical CLI structures. - [Help Rendering](/milo-cli/docs/build-clis/help/): Drop-in argparse HelpFormatter using Kida templates. - [Lazy Loading](/milo-cli/docs/build-clis/lazy/): Deferred command imports for fast CLI startup with large command sets. - [llms.txt Generation](/milo-cli/docs/build-clis/llms/): Generate AI discovery documents from CLI command definitions. - [MCP Server](/milo-cli/docs/build-clis/mcp/): Expose CLI commands as MCP tools, register CLIs for discovery, and run a unified gateway. - [Output Formatting](/milo-cli/docs/build-clis/output/): Structured output with plain, JSON, table, and template formats. ## Concepts - [Core Concepts](/milo-cli/docs/about/concepts/): The main ideas shared by Milo CLIs and interactive apps. - [App Lifecycle](/milo-cli/docs/about/concepts/app-lifecycle/): How a Milo terminal app starts, dispatches actions, renders, and exits. - [Configuration](/milo-cli/docs/about/concepts/configuration/): Configuration system with TOML/YAML/JSON loading, deep merge, profiles, and origin tracking. - [Return Values](/milo-cli/docs/about/concepts/return-values/): How command return values become CLI output and MCP content. ## Examples - [Examples](/milo-cli/docs/examples/): Runnable example applications and copy paths. ## Get Started - [Get Started](/milo-cli/docs/get-started/): Install Milo and build your first typed CLI command. - [Install Milo](/milo-cli/docs/get-started/installation/): Install Milo using pip, uv, or from source. - [Quickstart](/milo-cli/docs/get-started/quickstart/): Build a typed CLI command that also works as an MCP tool. ## Migrate Existing Cli - [Migrate Existing CLIs](/milo-cli/docs/get-started/migrate-existing-cli/): Translate existing CLI patterns from argparse, Click, Typer, Fire, and Cobra into Milo. - [From argparse](/milo-cli/docs/get-started/migrate-existing-cli/from-argparse/): Replace parser-first argparse code with typed Milo command handlers. - [From Click](/milo-cli/docs/get-started/migrate-existing-cli/from-click/): Translate Click command decorators, options, groups, and context into Milo. - [From Cobra](/milo-cli/docs/get-started/migrate-existing-cli/from-cobra/): Map Cobra command trees, flags, and generated app structure into Milo groups. - [From Python Fire](/milo-cli/docs/get-started/migrate-existing-cli/from-fire/): Narrow automatic Python object exposure into explicit Milo command contracts. - [From Typer](/milo-cli/docs/get-started/migrate-existing-cli/from-typer/): Move from type-hint CLI ergonomics to Milo's CLI/MCP/llms.txt contract. ## Quality - [Quality and Operations](/milo-cli/docs/quality/): Test, verify, debug, and operate Milo CLIs and apps. - [Pipeline Orchestration](/milo-cli/docs/quality/pipeline/): Declarative build pipelines with phases, dependency graphs, retry policies, output capture, and Store integration. - [Testing](/milo-cli/docs/quality/testing/): Snapshot testing, session recording, replay, and deterministic assertions. ## Reference - [Reference](/milo-cli/docs/reference/): API reference, built-in actions, error codes, and type definitions. - [Built-in Actions](/milo-cli/docs/reference/actions/): Every action Milo dispatches automatically. - [Dispatch Contract](/milo-cli/docs/reference/dispatch/): How CLI, programmatic, and MCP command calls agree. - [Error Codes](/milo-cli/docs/reference/errors/): Structured errors for terminal output, tests, and MCP repair loops. - [Schema Contract](/milo-cli/docs/reference/schema/): How Milo derives JSON Schema from Python functions. - [Types & Protocols](/milo-cli/docs/reference/types/): Frozen dataclasses, enums, and protocol definitions. ## Optional - [index.json](/milo-cli/index.json): Search index with page metadata and excerpts - [robots.txt](/milo-cli/robots.txt): Content Signals directives for AI crawlers