"flows": a custom Markdown runtime for visualizing long-running agent loops A developer released 'flows', a custom Markdown runtime that allows users to write, run, and visualize long-running agent loops within a single .md file. The tool combines prompt blocks for fuzzy tasks and code blocks for deterministic work, with explicit inputs, outputs, and loop control driven by code output. It aims to simplify agent workflow development by making the process markdown-native and visually debuggable. Markdown-native agent workflows: write prompts, code blocks, inputs, outputs, goals, and loops in one .md file, then run or visualize the flow. Inspired by https://github.com/snarktank/ralph https://github.com/snarktank/ralph . - Prompt blocks handle fuzzy work such as rewriting, review, planning, and summarizing. - Code blocks handle deterministic work such as parsing, tests, validation, and benchmarks. - Inputs and outputs are explicit, so later blocks only receive what the flow declares. - Loops are ordinary start rules, driven by code output such as fast enough or too slow . - Goal cards attach human-readable objectives and validation criteria to a single agent block. make build-go ./flow validate examples/jax short goal loop.md ./flow chart examples/jax short goal loop.md Run the short JAX optimization demo: python3 -m venv .venv .venv/bin/python -m pip install "jax cpu " FLOW PYTHON COMMAND=.venv/bin/python ./flow run examples/jax short goal loop.md -f \ --input code=@examples/inputs/slow jax.py \ --input target ms=5 Each heading is one block. The first fenced yaml block configures inputs, start conditions, executor, model, and routing. Prompt text or an executable code fence supplies the block body. speed optimizer yaml inputs: code: from: external start: - always: {max runs: 1} - when: benchmark contains: too slow max runs: 3 prompt executor: codex cli model: gpt-5.3-codex-spark Rewrite the input code to reduce runtime. Return only the improved code. ./flow validate