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”). A condition that can never be satisfied will just burn the whole turn budget.

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 /background

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. One difference matters there: /goal set does not start the work on its own. OpenSRE stores the goal and replies with a hint to run the condition in the interactive shell, and the goal sits at turn 0 until you send your next message — that message becomes the first turn, and continuation proceeds normally from there.
Set goals from the interactive shell when you want the work to begin immediately without sending a follow-up message.