The REPL’s stdout seam. Command rendering writes through [out!] /
[outln!] instead of print!/println!, so a host that owns stdout for
something else (the stdio MCP transport, which speaks JSON-RPC on it) can
run a command and take its text with capture. With no capture active
the macros are plain stdout, so the interactive REPL is unchanged.
REPL command line → structured View, for hosts that want typed values
(the MCP command tool’s format=json). Each arm evaluates the line’s
arguments with the REPL’s expression grammar and radix, then calls the same
core function and view builder the Python SDK method uses, so the three
surfaces cannot drift. Commands without a structured decoding return
None and the caller falls back to the text renderer.
The single presentation layer for terminal styling. Domain types (e.g.
VirtAddr) stay plain; everything that adds color goes through here, so the
palette lives in one place and stays consistent.