First RC · 0.1.0-rc.19
YYLO documentation
YYLO (why-lo) runs coding agents in bounded iterations while preserving task, log, commit, and session evidence across providers.
Install and initialize
The yy and yylo launchers are behaviorally equivalent. Use one installation; collisions or mixed legacy installs fail clearly.
Make the first run bounded
Use first-class product delegates
Repeat commands with yy loop
yy loop repeats arbitrary shell commands sequentially. Its -n/--iterations flag bounds the outer command workflow; the existing global and agent -i/--max-iterations flag keeps its meaning of bounding iterations inside one agent invocation. The loop never parses or rewrites yy pi, yy cc, clone, switch, or other provider commands.
Save the same contract as YAML for a reusable workflow. CLI values override YAML top-level defaults, for example yy loop --workflow flow.yaml -n 2 --continuity run --on-error stop. The workflow accepts only iterations, continuity, on_error, and a nonempty ordered steps list; every step requires nonempty run text and may set its own on_error: continue|stop.
Continuity controls which existing YYLO continue scope child commands share:
iteration(default): every iteration gets a new scope.yy pi,yy cc,yy clone, andyy switchsteps in that iteration share it; the next iteration is isolated.run: all iterations share one scope, enabling explicit continuation or cloning across iteration boundaries.shell: the loop injects no scope and preserves the caller’s inheritedYYLO_CONTINUE_SCOPEbehavior.
The default failure policy is continue: a failed step is recorded, the remaining steps in that iteration are skipped, and the next iteration starts. With --on-error stop (or a YAML step override of on_error: stop), nothing further is launched. Any failed command makes the final loop exit nonzero even if later iterations run. SIGINT/SIGTERM stop the active child and prevent later launches, and the terminal summary reports the loop ID with completed, failed, and skipped work.
Every step receives one-based loop metadata through YYLO_LOOP_ID, YYLO_ITERATION, YYLO_ITERATION_COUNT, YYLO_STEP, and YYLO_STEP_COUNT.