Vendor landscape · Scheduled re-entry
Two Vendors Just Shipped the Same Primitive — and Only One Put It in the Terminal
Independent convergence is the tell. Anthropic and OpenAI both schedule prompts, not executables. The surviving asymmetry is surface-specific: Claude Code’s /loop injects into a live terminal session; Codex CLI still has no Scheduled management interface.
Takeaways
- Two vendors shipping scheduled conversational re-entry is stronger evidence of a primitive than of a one-off feature race.
- On both sides, cloud and desktop scheduling can run without an open interactive session.
- The checkable terminal difference: Claude Code’s
/looprequires an open session and inherits that session’s tools; Codex CLI documents that it has no Scheduled management interface. - Same conversation is not the same as same process — especially once you separate OpenAI’s web surface from its desktop surface.
- This snapshot will age. The durable skill is reading one-clause delivery semantics as architecture.
When two competitors, with different products and different incentives, independently ship the same operating-system-shaped idea, you are probably not looking at a fashion. You are looking at a constraint that both of them finally admitted in public.
The idea is simple enough to miss. A scheduler does not run a hard-coded script that knows your stack. It re-enters an established conversation with an instruction — “check the deploy,” “summarise progress,” “keep going until the definition of done is real” — and lets the agent decide which tools, files, and sub-agents the moment requires.
That inversion — scheduled instructions over scheduled executables — is the primitive. The question this piece answers is not “which vendor is smarter.” It is narrower and more useful:
Is in-session prompt scheduling a quirk you should refuse to depend on, or a primitive you can build on — and on which surface does it actually exist today?
What this is not
This is a documentary account of public products, not an architecture essay. Why re-entry into a live process matters is owned by The Prompt Is the Interrupt. Here the unit of analysis is the vendor landscape itself.
Why “two vendors” is the evidence
One team shipping a clever slash command is a feature. Two teams, without any need for us to invent coordination stories, landing on the same shape is different. Independent convergence is the strongest signal short of a standard: demand is real enough that separate product organisations paid the implementation cost.
Both sides also moved the same conceptual direction. The interesting object is not a cron line that shells out to a fixed binary. It is a prompt — sometimes with optional skills — on a schedule. That sits in a broader drift toward agent software that spends tokens, uses tools, and iterates rather than merely replaying fixed workflows.
Long-running agent work already had a name for the problem class: the one-hour ceiling is architectural, not a model IQ limit, and multi-hour jobs need external liveness as well as durable state.
Field practice got there before the product pages did. An earlier LeverageAI line treated cron as the poor man’s orchestrator: externalise liveness so the model can stay relatively ephemeral while something outside it keeps poking the job.
So when the vendors arrive, the right reading is not “they invented supervision.” It is “the primitive left the workshop and showed up in two public manuals.”
Anthropic, as of the live docs
Claude Code’s scheduled-tasks page is no longer a changelog one-liner. It is a full delivery document. The opening definition is the claim that matters:
Use /loop and the cron scheduling tools to run prompts repeatedly, poll for status, or set one-time reminders within a Claude Code session.
That phrase — within a Claude Code session — is the architecture in five words. The page is explicit about scope:
Tasks are session-scoped: they live in the current conversation and stop when you start a new one.
Resumption is first-class for unexpired work: --resume or --continue brings back a recurring task created within the last seven days, or a one-shot whose fire time has not passed.
Anthropic also published the comparison table this piece has been waiting for. Three columns — Cloud, Desktop, /loop — and a row that should be framed and put on the wall:
| Cloud | Desktop | /loop |
|
|---|---|---|---|
| Requires open session | No | No | Yes |
| MCP servers | Connectors per task | Config / connectors | Inherits from session |
| Permission prompts | No (autonomous) | Configurable | Inherits from session |
Source: Claude Code “Run prompts on a schedule,” comparison table, retrieved 2026-07-27. Cloud and Desktop do not require an open session; /loop does — and inherits the live session’s MCP servers and permission posture.
Delivery semantics are equally concrete. A scheduled prompt fires between turns, not mid-response. There is no catch-up for missed fires: if the agent is busy, the prompt waits and fires once when idle — not once per skipped interval. Recurring tasks automatically expire seven days after creation. The whole scheduler can be disabled with CLAUDE_CODE_DISABLE_CRON=1.
None of that is poetry. It is a public description of an interrupt bus with known limits.
OpenAI, as of the live docs
OpenAI’s scheduled-tasks documentation (live URL: learn.chatgpt.com/docs/automations — older Codex URLs redirect here) starts from the same inversion. You schedule recurring background work and you can combine those tasks with skills for more complex jobs — instructions and packaged capability, not a hand-written shell pipeline as the unit of schedule.
Same-conversation continuation is no longer the missing half of the story. The docs distinguish standalone runs from in-chat schedules:
Use a scheduled task in a chat when you want ChatGPT to return to the same chat with its existing context.
The scheduled task uses the chat’s existing context instead of starting from a new prompt each time.
That kills an older, stale reading of the landscape: “OpenAI has the payload without the live session.” On the web and app surfaces, scheduled re-entry into a chat’s context is documented. Do not publish the dead version of that claim.
What you must keep carefully scoped is the worktree language. On the web surface, the page says scheduled tasks “don’t keep a local folder or worktree available between runs.” That sentence is about web runs. It is not a company-wide law. On the desktop surface, the same page says scheduled tasks can work with local projects and run in the project directory or an isolated worktree — with the machine powered on and the app running when local files are required.
Same conversation ≠ same process. Chat context continuity and local process/worktree continuity are different axes. Collapsing them into “OpenAI can’t do X” is how documentary pieces go stale mid-project.
And then the terminal sentence — still live, still load-bearing:
Codex CLI doesn’t provide the Scheduled management interface. Use ChatGPT web or the desktop app to create and manage scheduled tasks.
The IDE extension gets the same disclaimer. The CLI can help you prepare and test a prompt, skill, or script first — management of the schedule itself lives elsewhere.
The surface table, not the brand fight
Read both manuals together and the honest picture is not “Anthropic has scheduling; OpenAI does not.” Both ship scheduled re-entry. On both sides, cloud and desktop paths are designed to run work without an open interactive coding session (Anthropic’s table says Requires open session: No / No for Cloud and Desktop; OpenAI’s desktop path is background work with the app present for local files). The difference that still bites builders of supervised long jobs in a live terminal process is narrower:
| Surface | Anthropic (public docs) | OpenAI (public docs) |
|---|---|---|
| Cloud | Scheduled work; open session not required | Web scheduled tasks; can return to same chat context; no local folder/worktree between web runs |
| Desktop | Scheduled tasks; open session not required; local files | Scheduled tasks; local projects / worktrees when machine + app on |
| Terminal / CLI | /loop: Requires open session: Yes; inherits session MCP + permissions |
No Scheduled management interface in Codex CLI |
That is the asymmetry this piece will defend: the one surface that documents scheduling into a live terminal session is Claude Code’s /loop; the Codex CLI documents that it does not provide the management interface at all.
It is also why “only one put it in the terminal” is a statement about what has shipped in public interfaces — not about anyone’s roadmap, intention, or next quarter.
A public feature request as a specification
The community already described the missing terminal primitive in the Codex repository. Issue #15679 proposed a /loop <interval> <message> command that queues a user message on a repeating minute-based interval — examples include /loop 5m summarize progress. That is not a vague wishlist; it is a behavioural sketch of session-local recurring prompts.
As of this writing the issue is closed as not planned, with a maintainer pointing people at /goal for looping behaviours. That closure does not install a Scheduled management interface into the CLI. It does something almost as useful for readers of landscape pieces: it shows that the requested shape matches the primitive, and that the gap is still visible in the product docs even after the ticket closed.
Do not confuse “closed feature request” with “shipped capability,” and do not confuse “shipped on web/desktop” with “available in the terminal process you are supervising.”
How to read a one-clause docs line as architecture
The transferable skill is not memorising which vendor is ahead this week. It is treating product language as delivery semantics.
- “Within a session” and “Requires open session: Yes” mean the schedule is an interrupt into a live process, not a fresh cold start.
- “Inherits from session” (MCP, permissions) means the scheduled turn sees the tool and authority posture of the running conversation.
- “Same chat with its existing context” means conversational continuity — not, by itself, a local worktree or a long-lived terminal process.
- “Doesn’t provide the Scheduled management interface” means the binding constraint is the surface, not your ability to write a good prompt.
When a trade-off flips — when “stateless scheduled job” stops being enough and “re-enter the live agent” becomes the required pattern — you are at an architectural inflection: the same operating-point language that settles monolith-versus-services arguments applies to tooling choices.
Interface, not model capability, is the binding constraint on who can run these jobs in a live coding session today.
What we are not claiming
Explicit non-claims
- No coordination between vendors. Convergence is an observation about shipped interfaces, not a conspiracy theory.
- No roadmap inference. “Only one put it in the terminal” is present tense, public docs, retrieval-dated.
- No claim that OpenAI lacks same-conversation scheduling on web/app surfaces — that claim is stale and false as of 2026-07-27.
- No claim that “no worktree between runs” is a general OpenAI property — that sentence is web-scoped; desktop is different.
- No claim that Codex “wakes itself across days or weeks” — that line could not be held up from public docs and stays dropped.
- No head-to-head on models, pricing, or IDE quality. This is one primitive, three surfaces.
This piece is designed to decay. The feature table will move. The CLI sentence may reverse. Cloud and desktop columns may grow more alike. When they do, the durable residue is the method: open the live page, quote the delivery clause, place it on a surface (web / desktop / CLI), and refuse to let a brand name do the work of a process model.
The tooling decision
If your long job needs a supervisor that lands inside the same terminal process — sees the open tools, the sub-agents, the working narrative, the commands already in flight — you are shopping for a surface that can schedule into a live session. As of the public manuals re-read for this article, Claude Code’s /loop is the documented terminal answer. Codex’s schedule management lives in ChatGPT web or the desktop app, not in the CLI.
If your job is fine as a recurring chat with saved context, or as a desktop task over a local project with the machine left on, OpenAI’s scheduled tasks are not a non-event. They are the same primitive on different rails. Choose the rail that matches the process you actually need.
Three adjacent pieces own what this one leaves on the table:
- The Prompt Is the Interrupt — why in-session delivery is an architecture, not a convenience.
- The Heartbeat Is a Supervisory Program — what the payload should carry.
- Same-Session Supervision Preserves Its Mistakes — the failure mode that comes with warm loops (without restating it here).
For the pre-vendor field practice: Cron as the poor man’s orchestrator. For operational state that survives any vendor’s session model: Handover Notes for Robots.
Build on the primitive, not the brand
Treat scheduled conversational re-entry as infrastructure. Pin your design to delivery semantics you can re-check in the docs. When the terminal column changes, update the design — don’t pretend the snapshot was eternal.
Retrieval date for all vendor claims in this article: 2026-07-27.
References
- Anthropic. “Run prompts on a schedule.” Claude Code Docs. — “Use /loop and the cron scheduling tools to run prompts repeatedly… within a Claude Code session.” / “Tasks are session-scoped…” / comparison table row “Requires open session — Cloud: No · Desktop: No · /loop: Yes” / “Inherits from session” / “A scheduled prompt fires between your turns…” / “No catch-up for missed fires.” / seven-day expiry /
CLAUDE_CODE_DISABLE_CRON=1. Retrieved 2026-07-27. https://code.claude.com/docs/en/scheduled-tasks - OpenAI. “Scheduled tasks.” ChatGPT Learn / Codex docs. — “You can combine scheduled tasks with skills…” / “return to the same chat with its existing context” / “uses the chat’s existing context” / web: “don’t keep a local folder or worktree available between runs” / desktop: “scheduled tasks can work with local projects and run in the project directory or an isolated worktree” / “Codex CLI doesn’t provide the Scheduled management interface.” Retrieved 2026-07-27. https://learn.chatgpt.com/docs/automations
- openai/codex. Issue #15679, “Add a /loop recurring prompt command to the Codex TUI.” — Proposal for
/loop 5m summarize progressas recurring user messages; state closed/not_planned as of 2026-07-22. Retrieved 2026-07-27. https://github.com/openai/codex/issues/15679 - Farrell, Scott. “Ask Yourself If You’re Finished: Cron as the Poor Man’s Orchestrator.” LeverageAI. — Externalised liveness; cognition / liveness / memory split. Cite keys #cef692 #c75276. https://leverageai.com.au/wp-content/media/articles/article.php?article=123-cron-heartbeat
- Farrell, Scott. “Breaking the 1-Hour Barrier.” LeverageAI. — Long-running agents; one-hour ceiling as architecture. Cite key #9d6d5f.
- Farrell, Scott. “The Reshape,” chapter 8. LeverageAI. — Architectural inflection points. Cite key #65906f.
- Farrell, Scott. “The Agent Token Manifesto,” chapter 3. LeverageAI. — Software 3.0 agent-token paradigm. Cite key #c3beec.
- Farrell, Scott. “The Prompt Is the Interrupt.” LeverageAI. https://leverageai.com.au/wp-content/media/articles/article.php?article=178-prompt-interrupt-architecture
- Farrell, Scott. “The Heartbeat Is a Supervisory Program.” LeverageAI. https://leverageai.com.au/wp-content/media/articles/article.php?article=179-heartbeat-supervisory-program
- Farrell, Scott. “Same-Session Supervision Preserves Its Mistakes.” LeverageAI. https://leverageai.com.au/wp-content/media/articles/article.php?article=180-same-session-supervision
- Farrell, Scott. “Handover Notes for Robots.” LeverageAI. https://leverageai.com.au/wp-content/media/articles/article.php?article=125-handover-notes-for-robots
