SymvibeDocs
  1. Docs
  2. Orchestration
  3. Loops

Loops

A loop types an instruction into chosen consoles again and again, on the trigger you set, until a stop condition ends it. Use it to keep agents moving, watch a build or check in every hour.

Updated October 22, 20263 min read

On this page

Open loops#

Press L, or use ToolsLoops, the right rail's Loops (its badge counts running loops), or the Loops chip in the open thread. You can also start one by voice: every 10 minutes run the tests, which asks you to confirm in a macOS dialog.

Make a loop#

  1. Pick a trigger

    On a schedule: every 1 minute to 24 hours, with 5, 10, 15 and 30 minutes and 1 and 2 hours as presets, 15 minutes by default. When an agent goes idle: when a console finishes its turn. When output contains: when new output shows the text you give, at least two characters, matching case only if you type a capital letter.

  2. Write the instruction

    What to type into the consoles each time.

  3. Choose the consoles

    All consoles, the consoles of one orchestrator card, or Pick consoles.

  4. Set when it stops

    After a number of runs, 1 to 200. After a time limit, 15 minutes to 24 hours. When a goal is met, described below.

For a scheduled loop, the composer estimates how many prompts per hour it will send, across how many consoles, before you save.

A loop with a goal, and its runs.

Goals#

A command passes
Runs a command in your repo with zsh. Exit code 0 means the goal is met. A check is stopped after five minutes.
An agent judges
Asks your CLI, in a session the app runs out of sight, whether the goal is met, and reads its verdict. It does not run commands. Each check is a turn on your plan.

A goal is checked before a scheduled run and when a targeted console finishes a turn, which Symvibe learns from live agent status, but never twice within 90 seconds. At most two checks run at once. A check that cannot reach a verdict, for example because the CLI is signed out, lets the run go ahead.

Templates#

Seven starting points: Progress check, Keep them moving, Build rescue, Test watchdog, Commit checkpoint, Review sweep and Hourly standup.

How loops deliver#

  • The instruction is typed and submitted, like any order. Each run is a turn on that agent's plan.
  • Only consoles running an agent receive it. A console showing a permission prompt or a question is skipped: a scheduled run that reached no console tries again a minute later, and otherwise the skipped console waits for the next run. An output trigger delivers once the console is free; an idle trigger lets that turn pass.
  • Idle and output triggers fire at most once every two minutes per console.
  • When an agent goes idle relies on live agent status: without it, Symvibe cannot tell when an agent finished a turn.
  • Loops run only while Symvibe is open and the Mac is awake. Keep running behind other tabs lets a loop keep reaching consoles in a background workspace.
  • The history shows the last 20 entries of this session, runs and skips alike, and is cleared when you quit.

Notifications#

While Symvibe is in the background, loops send a silent notification when a scheduled loop finds a console waiting on you and holds its instruction, and when a loop ends: goal met, time limit reached or run cap reached. macOS asks for permission the first time you create or turn on a loop. These are the only notifications the app sends.

Keep going#

Something on this page does not match what you see in the app? Write to hello@symvibe.com or tell us in the Discord, and we will fix it.