Skip to main content
Most questions are answered in one reply. Some are not — “how many Windows users signed up last week?” may need OpenSRE to check whether PostHog is connected, write a query, run it, and only then answer. /goal gives OpenSRE a finish line instead of a single prompt. You state the condition once, and OpenSRE keeps taking turns until it reaches it, runs out of its turn budget, or you stop it. You can walk away and check the progress line when you come back.

Commands at a glance

Try it

Paste this into the interactive shell:
OpenSRE confirms the goal and immediately starts on it:
Setting a goal starts the work — you do not need to retype the condition as a prompt. The confirmation turn itself does not count against the budget, so the first real attempt is turn 1 of 4.
Write the condition the way you would brief a teammate: say what “done” looks like, and say what to do when something is missing (“otherwise draft the query and end with one setup CTA”). After every turn a separate small model reads what OpenSRE reported and decides met, not yet, or impossible, so the finish line has to be something the reply can show: a count, a table, a passing check. Numbered steps in the condition become the checklist.

Watching progress

Run /goal at any time:
When OpenSRE breaks the work into steps, /goal also prints a checklist with [x] for finished items and marking the one it is on. If no goal is set, you get an empty state instead:

Pause and resume

/goal pause stops the next turn from firing but keeps everything else — condition, turn count, and progress so far:
While paused you can still chat normally — OpenSRE answers your message and then stays put instead of continuing the goal. This is the way to ask a quick side question without losing your place. /goal resume picks the work back up from the same turn count:

Change the condition

/goal edit rewrites the finish line in place, keeping the turns already spent. Use it when the goal was nearly right but you want to redirect it:
If the goal is active, the updated condition starts running right away. If it is paused, the text changes and it stays paused until you /goal resume. Conditions longer than 400 characters are shortened.

Stop the goal

/goal clear prints goal cleared. and removes it — there is nothing left to resume.

How a goal ends

The turn budget defaults to 5 and exists so an impossible condition cannot loop forever. Raise it with --max-turns when the work genuinely needs more steps.

/goal vs /work vs /loops

Where goals live

A goal belongs to the session it was set in and is restored with it, so a goal you set in the shell is still there after /resume. Goals are remembered in chat transports such as Slack and Telegram as well, and the same status line appears in the timeline while OpenSRE works. /goal set starts the condition on that turn — the same as the interactive shell — and continuation proceeds from there.
After /goal set, OpenSRE begins the work immediately. You do not need a follow-up message to start the first turn.