conseqa-viz turns any Conseqa model into a single interactive HTML file you can open directly from disk, attach to a pull request, or share as a design artifact. The output makes no network requests, has no external dependencies, and works fully offline. It renders both layers of the model: L0, the abstract application machine, is always drawn; L1, the optional runtime realization under Model.runtime, can be toggled from the top bar.
Generating a visualization
Pass your model file as the only required argument. By default the tool writes an HTML file alongside the model:--out and --title:
Overlaying proof results
The HTML viewer becomes most useful when it shows the checker’s verdicts alongside your architecture. You have two options:--verify runs the full model checker in-process before rendering. --report loads a JSON report you produced earlier with conseqa model.yaml --report proof.json. The two flags are mutually exclusive.
Validation during rendering
conseqa-viz runs analyzer validation before rendering and prints any diagnostics to stderr. Rendering proceeds even on a model with validation warnings — imperfect models can still be inspected. To suppress the validation pass entirely, pass --no-validate.
Scaffolding a report
If you want to understand the report format or fill in verdicts manually, generate a scaffold with every obligation set tounknown:
--out.
The three views
The HTML contains three interconnected views, all rendered as SVG in the browser. Navigate between them using the breadcrumbs in the top bar or by clicking entities in the current view.System View
The full architecture as an SVG graph: services, operations, topics, outboxes, external systems, and every information route between them. L1 runtime vertices (routers, subscription dispatches, execution pools) appear as intermediate nodes on their corresponding edges when L1 is enabled.
Operation View
Program flow, requirements, and inputs for any individual operation, including
write_outbox steps, async launches (execute_effect_async, execute_effect_intent_async), and synchronization barriers (join_all, race). Proof scope badges indicate whether an obligation is l0_only or runtime_dependent.State Machine View
Lifecycle diagrams for every declared state machine, with transitions, side-effect badges, and proof overlays. Transition side effects appear as implicit effect-intent artifacts.
Modeling a Checkout Flow
A step-by-step walkthrough of the flash-sale checkout example, from YAML to visualization.