Demos & Showcase
Real programs written in Milo. The emulators compile to JavaScript via milo emit-js and run in your browser; everything else compiles to a small native binary from a single .milo file.
Emulators in the browser
Three retro-console cores. No plugins — drop a ROM and play.
NES →
Cycle-stepped 6502, PPU, and APU with DMC audio and multiple mappers. Ships six free homebrew games playable in one click: Blade Buster, Battle Kid, Super PakPak, Sir Ababol, Lawn Mower, Mad Wizard. Drag in your own .nes ROM to play anything else.
Genesis / Mega Drive →
Motorola 68000 + Z80 dual-CPU core with the VDP graphics processor and FM/PSG audio. Preset homebrew: Headship, Astro Perdido, Gravity Pig, Dragon's Castle. Accepts .md / .bin / .gen / .smd ROMs.
SNES →
65C816 CPU plus the SNES PPU, including a Super FX (GSU) coprocessor core. Plays Super Mario World and Donkey Kong Country; Star Fox boots with GSU-rendered 3D. Load an .sfc / .smc ROM.
All three run natively too —
examples/apps/arcade.sh <rom>builds the right core with SDL video, audio, and input.examples/apps/retro/turns them into a Raspberry Pi couch console with a gamepad-driven menu.
Debugger
hades →
A web + AI interface for any DAP debugger (lldb-dap, debugpy), written in Milo. One binary, two subcommands: hades web serves a React + Monaco + xterm.js debugging UI from a Milo HTTP/WebSocket server — breakpoints, stepping, call stacks, expandable locals, watch expressions, an ARM64/x86 disassembly pane, and a real PTY terminal you can type into while your program runs. hades mcp exposes the same session to an AI over MCP: both you and the model see and drive the same debuggee. Debugs Milo binaries too — the compiler emits standard DWARF.
Terminal & graphics apps
TUIs in examples/apps/, built on the standard library's terminal, PTY, SDL, and green-thread APIs.
| Program | What it is |
|---|---|
| tetris | Event-driven terminal Tetris — one green task parked on a Select, no polling |
| sysmon | htop-style live system monitor |
| donut | The classic spinning 3D torus, truecolor-shaded |
| plasma | Full-screen truecolor animation; doubles as a render-throughput benchmark |
| aquarium | Truecolor pixel aquarium — fish, bubbles, swaying seaweed |
| chihuahua | DVD-logo-style bouncing screensaver with a shaded pixel-art sprite |
| splitPty | Two commands side-by-side in real PTYs — a mini tmux |
| flightController | Single-axis PID altitude controller with an interactive TUI |
| menu | Fullscreen SDL retro-console front-end — gamepad/keyboard ROM picker |
Servers & network apps
| Program | What it is |
|---|---|
| termpair | Share your terminal in the browser — WebSocket relay with end-to-end AES encryption, client and server both in Milo |
| weather | weather.gov frontend served from a single static binary |
| serve | Static file server with directory listing |
| webserver | HTTP server with routing, path params, middleware |
| httpClient | HTTP client for fetching URLs |
| fetch | Fetch an HTTP API over TLS and parse the JSON response |
Data & interpreters
| Program | What it is |
|---|---|
| kvstore | Page-based key-value store with cursors, in the sled/buffer-pool style |
| minilang | Tree-walking interpreter for a small expression language |
CLI tools
Coreutils-style tools in examples/cli-tools/, each a single .milo file.
| Program | What it is |
|---|---|
| grep | Pattern search with color, -i / -n / -c / -v |
| rg | ripgrep-lite: regex-powered recursive search |
| jq | JSON query tool |
| tree | Recursive directory tree with depth limiting |
| cat | File viewer with line numbers and syntax highlighting |
| wc | Line/word/char counter |
| hex | Hex dump viewer with ASCII column |
| shuf | Shuffle input lines |
| calc | Expression evaluator |
| parallel | Run shell commands in parallel across input lines (fork-based) |
| timeout | Run a command with a time limit |
| fmt | Milo source formatter |
| pkg | Package manager for Milo — git transport, GitHub registry, lockfile |
Playground
Compile and run Milo in your browser — no install — on the Playground.
