What
/loop runs a prompt again and again while a session is open, and Claude uses the ScheduleWakeup tool to set when the next run happens. A scheduled run of this kind is stored as a cron entry, which is a timed task. This release changes how those timed runs are recorded and handled:
- Loop wakeups now record an owner, and a loop can be tied to a plugin, which is an add-on package for Claude Code.
- When a pending wakeup is set again after you resume a session, its cron entry is tagged with a
pluginfield. - Each time a scheduled task fires, its
pluginvalue is passed along, so the plugin is recorded on the loop. - The scheduler gains an
onMissedhandler. Before, it had onlyonFireandonFireTask. The new handler builds a notification for a scheduled task that did not run on time. ScheduleWakeupcan now refuse a request with an error that beginsScheduleWakeup refused:. The condition that triggers the refusal was not identified.- The limit on how long a wakeup can be delayed gains a maximum-age cap.
- Loop creation is now handled by a single helper, and after a scheduled run is queued, an extra completion step runs.
Why
Loops and scheduled tasks can now be linked to the plugin that created them, and missed runs have their own notification path. If you use /loop, expect occasional ScheduleWakeup refused: messages, and note that a wakeup can no longer be pushed back indefinitely.
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
| v2.1.295 | `Ctrl+C` at the idle prompt of an [attached background session](#attach-to-a-session) leaves the pending wakeup of a [self-paced `/loop`](/docs/en/scheduled-tasks#let-claude-choose-the-interval) alone, so pressing it twice det…agent-view see the edit
Backgrounding starts a fresh process that resumes from the saved conversation, and in-flight background work moves to it. Running background shell commands, backgrounded subagents, dynamic workflows, scheduled tasks you created with [`/loo…agent-view see the edit
A small documentation edit on Manage multiple agents with agent view touched a line naming /loop after this was published.
Fixed self-paced /loop wakeups scheduled at the 1-hour maximum firing just after the 1-hour prompt cache expired, so those wakeups no longer…