Leverage AI

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.

Scott Farrell · LeverageAI · July 2026 · ~10 min · Documentary facts re-verified against live vendor docs on 2026-07-27

Takeaways

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.

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

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:

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

  1. 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
  2. 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
  3. openai/codex. Issue #15679, “Add a /loop recurring prompt command to the Codex TUI.” — Proposal for /loop 5m summarize progress as recurring user messages; state closed/not_planned as of 2026-07-22. Retrieved 2026-07-27. https://github.com/openai/codex/issues/15679
  4. 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
  5. Farrell, Scott. “Breaking the 1-Hour Barrier.” LeverageAI. — Long-running agents; one-hour ceiling as architecture. Cite key #9d6d5f.
  6. Farrell, Scott. “The Reshape,” chapter 8. LeverageAI. — Architectural inflection points. Cite key #65906f.
  7. Farrell, Scott. “The Agent Token Manifesto,” chapter 3. LeverageAI. — Software 3.0 agent-token paradigm. Cite key #c3beec.
  8. Farrell, Scott. “The Prompt Is the Interrupt.” LeverageAI. https://leverageai.com.au/wp-content/media/articles/article.php?article=178-prompt-interrupt-architecture
  9. Farrell, Scott. “The Heartbeat Is a Supervisory Program.” LeverageAI. https://leverageai.com.au/wp-content/media/articles/article.php?article=179-heartbeat-supervisory-program
  10. Farrell, Scott. “Same-Session Supervision Preserves Its Mistakes.” LeverageAI. https://leverageai.com.au/wp-content/media/articles/article.php?article=180-same-session-supervision
  11. Farrell, Scott. “Handover Notes for Robots.” LeverageAI. https://leverageai.com.au/wp-content/media/articles/article.php?article=125-handover-notes-for-robots