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.