What task are you trying to do?
I want PawWork to run a chat on its own, without me sitting and driving every run:
- On a schedule — "every morning at 9, summarize today's email into a brief."
- Repeatedly until something is true — "keep fixing the code until the tests pass."
- Once, later — "remind me / check back on this in 10 minutes."
Today none of this is possible. Every run is manual and in-session.
Which area would this change affect?
App flow or product behavior (primary). Also touches model harness / tools / session mechanics, since the same capability is exposed to the agent as a single tool and runs inside the engine.
What do you do today?
Nothing — there is no scheduling or looping. I have to be present, type the prompt, and watch each run. Confirmed in code: there is no scheduling/background infrastructure at all (packages/opencode/src/cli/cmd/serve.ts is a passive HTTP server that just waits forever; no cron, interval, or detached-run primitives anywhere).
What would a good result look like?
One unified "Automation" concept — not three separate tools (Loop / Schedule / Reminder). It is modeled in two layers: an Automation (the rule: a tagged union of one-shot vs recurring) and an AutomationRun (the record of each execution). The rule's orthogonal knobs:
- Trigger rhythm — one-shot time · interval-after-completion (loop) · cron (automation)
- Prompt — what to do
- Continue vs fresh — continue the automation's own ongoing session, or start a new empty one (never pollutes your main chat)
- Stop condition — count / condition / never (recurring only)
- Where it runs — which project (and, for fresh runs, optionally an isolated worktree)
The same object is created by the user (natural language, or a manual form) and by the agent itself (self-scheduling, e.g. "I'll check back in 10 minutes"). One tool, so the agent never has to choose between overlapping primitives.
It runs locally while PawWork is open. When an unattended run hits a permission prompt, it parks and shows the existing pending marker in the sidebar; I approve when I return.
What would count as done?
- I can say "every day at 9am, summarize today's email" in chat → an Automation is created and shown back on a confirmation card that echoes the parsed fields.
- I can create the same Automation via a manual form (title, prompt, project, schedule) and from a template.
- An "Automations" section in the sidebar lists my automations; I can view, edit, pause, delete, Run now, and review each run's history (including skipped runs and why).
- A recurring automation fires on schedule while the app is open; results land in a new empty session (fresh) or its own ongoing session (continue) — never in my main chat — following the continue/fresh knob.
- A loop-style automation ("keep doing X until Y") repeats and stops when its condition is met (with hard ceilings as a backstop).
- The agent can schedule its own follow-up run from within a conversation, using the same single tool.
- When an unattended run needs approval, the session parks, the sidebar shows the pending marker, and approving it resumes the run.
- Automations run under the existing permission framework (allow / deny / ask + autoAccept); the scheduler adds no separate permission system.
What should stay out of scope?
- No cloud execution / "runs while the app is closed" — local, app-open only in v1.
- No separate permission system inside the scheduler — reuse the existing one.
- No catch-up for missed runs — if the app/machine wasn't up at the trigger time, that fire is skipped (recorded with a reason); use Run now to trigger it manually.
- No auto-pause on repeated failure — failures are made visible (run history + consecutive-failure count + notification), not silently paused.
- No cross-restart persistence of pending approvals in v1 (in-memory; lost on app restart).
Which audience does this matter to most?
Both.
Extra context
Reference: OpenAI Codex Automations — adopt its UI shell (sidebar "Automations" entry, create-via-chat / create-manually toggle, templates such as Daily brief / Weekly review / Project monitor, a friendly schedule picker, an explicit project selector, and a per-task worktree toggle), and extend it with the two loop knobs Codex lacks: continue-vs-fresh context and a stop condition.
Full design doc, the architecture-review revisions, competitor comparison, and codebase grounding are in the first comment.
What task are you trying to do?
I want PawWork to run a chat on its own, without me sitting and driving every run:
Today none of this is possible. Every run is manual and in-session.
Which area would this change affect?
App flow or product behavior (primary). Also touches model harness / tools / session mechanics, since the same capability is exposed to the agent as a single tool and runs inside the engine.
What do you do today?
Nothing — there is no scheduling or looping. I have to be present, type the prompt, and watch each run. Confirmed in code: there is no scheduling/background infrastructure at all (
packages/opencode/src/cli/cmd/serve.tsis a passive HTTP server that just waits forever; no cron, interval, or detached-run primitives anywhere).What would a good result look like?
One unified "Automation" concept — not three separate tools (Loop / Schedule / Reminder). It is modeled in two layers: an Automation (the rule: a tagged union of one-shot vs recurring) and an AutomationRun (the record of each execution). The rule's orthogonal knobs:
The same object is created by the user (natural language, or a manual form) and by the agent itself (self-scheduling, e.g. "I'll check back in 10 minutes"). One tool, so the agent never has to choose between overlapping primitives.
It runs locally while PawWork is open. When an unattended run hits a permission prompt, it parks and shows the existing pending marker in the sidebar; I approve when I return.
What would count as done?
What should stay out of scope?
Which audience does this matter to most?
Both.
Extra context
Reference: OpenAI Codex Automations — adopt its UI shell (sidebar "Automations" entry, create-via-chat / create-manually toggle, templates such as Daily brief / Weekly review / Project monitor, a friendly schedule picker, an explicit project selector, and a per-task worktree toggle), and extend it with the two loop knobs Codex lacks: continue-vs-fresh context and a stop condition.
Full design doc, the architecture-review revisions, competitor comparison, and codebase grounding are in the first comment.