Interactive Profile
This page covers the maintained prompt-facing and tool-facing interactive surface.
Prompt and Evaluation
REPL (interactive profile)
Layer: core
Behavior: Reads top-level forms, evaluates complete input, prints the result of
top-level expression evaluation, and keeps the prompt alive on recoverable
errors.
Example:
1 + 1
multiline input (interactive profile)
Layer: core
Behavior: Keeps accumulating input while delimiters remain open. Incomplete
input includes unclosed (, [, or string literals.
Example:
to blink with pin [
gpio.high: pin;
ms: 75;
gpio.low: pin
]
Interrupts and Recovery
Ctrl-C (interactive profile)
Layer: core
Behavior: Interrupts the current running evaluation or pending multiline input
and returns the prompt to a usable state. The maintained evaluator checks for
interrupts at safe points.
Example:
Press Ctrl-C during a loop or during multiline entry.
safe boot (interactive profile)
Layer: core
Behavior: Lets you skip restore and boot during startup so you can recover
from bad saved state, inspect the image, and repair or wipe it.
Example:
Press Ctrl-C during the safe-boot window, then inspect `boot` and run `dangerous.wipe` if needed.
Inspection Commands
words, show, see, core, info (interactive profile)
Layer: core
Behavior: Inspect the live image through prompt-facing built-ins. show and
see route to the normalized binding view; core is debug-oriented; info
reports metadata such as owner, kind, and persistability.
Example:
words
show @boot
info @matrix.init
Structured Tooling Sessions
.control (control session)
Layer: core
Behavior: Switches the prompt into an exclusive structured control session for
host tooling. Raw REPL is the default human surface; structured control is an
explicit tool-owned mode.
Example:
The host tool opens the port, acquires the prompt, sends `.control`, and then uses framed control messages.
extension-owned helper session (editor path)
Layer: core
Behavior: The VS Code extension owns a helper child process which owns one
control session at a time. There is no daemon and no concurrent shared port
owner in the maintained Frothy editor path.
Example:
VS Code connect, send line, send file, interrupt, and simple inspection all ride on the helper-owned control session.