[FEATURE] Action approval queue for unattended agents: queue actions instead of blocking, review them later in one batch

Status Open
Maintainer reply None cached
Activity 0 comments · opened Oct 15, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Related, but different:

  • #44771 asked for async approval of scheduled agents through Slack. It closed as stale, and the bot asked for a new issue if the need is still relevant. It is. This request asks for a built-in queue instead of an external channel.
  • #85151 asked for a permission queue that does not block, in interactive mode only. It also closed as stale.
  • #100798 asks for a live pane of pending approvals across sessions. There, each session still blocks until someone clicks. This request is about approvals that do not block, reviewed later in one batch.
  • #85820 and #86915 are open bugs: an unanswered prompt in a scheduled task hangs for days and stops later runs. This feature removes the cause.

Problem Statement

I use scheduled tasks, routines and /loop for work that runs while I am away. The agent often reaches an action that needs my approval: send a message, write to an external service, or use sensitive data.

Today I have two bad choices:

  • Block and wait. A Desktop scheduled task in Manual mode stalls until I approve. I must watch for notifications and answer each prompt when it comes. If I miss one, the run hangs, and later runs of the same task can be skipped (#85820, #86915).
  • No check at all. Routines use connector tools, including writes, without asking. For Desktop tasks, "always allow" approves the same tool for every future run, with any input.

I do not need to approve these actions in real time. I need to approve each one before it happens, at a time I choose.

Proposed Solution

An action approval queue for unattended sessions.

  1. When an unattended session reaches a tool call that needs approval, it does not block. It adds the request to a queue. Then it continues with other work, or ends the run cleanly.
  2. Each queue item shows:
  • the session or task, and the time it was queued
  • the tool and its exact inputs (for example, the full message text and the recipient)
  • the agent's reason for the action
  • a link to the session transcript
  1. I review all items on one page in the desktop, web and mobile apps, at a time I choose (for example, each morning). For each item I can: Approve, Deny, Edit inputs and approve, or Reply with an instruction.
  2. After approval, the action runs, in the resumed session or in the next run of the task. The result goes into that session's transcript.
  3. Safety rules:
  • One approval applies to one item, with the exact inputs I saw. It is not a blanket allow rule.
  • Items expire after a time I set. An expired item is denied, not run.
  • If the context changes before the action runs (for example, new replies in the thread the agent wants to answer), the agent queues the item again and does not run it.
  1. Opt-in per task, routine or session, for example a setting such as "unattendedApproval": "queue", next to today's behaviour.

Alternative Solutions

  • PreToolUse "defer" is the closest primitive. It pauses a claude -p run at one tool call and keeps the exact inputs in deferred_tool_use. But it works only with -p, only when the turn has a single tool call, and the caller must build its own queue, storage and review UI. Open bugs on resume: #97196, #97358.
  • "Always allow" on a Desktop task removes the stall, but it approves every future input of that tool, not only the one I reviewed.
  • Third-party relays to Slack, Discord or a phone (see #37797, #44771) need my own server, and the session still blocks while it waits.
  • Watching the session works, but I must be available when the prompt comes.

Priority

High - Significant impact on productivity

Feature Category

Other

Use Case Example

  1. At 02:00 a scheduled task triages new issues. It drafts replies to three Slack threads and a status comment on a ticket.
  2. Each send needs my approval. The task queues four items and finishes the rest of its work. It does not hang.
  3. At 09:00 I open the queue. I approve two replies, edit the text of the third, and deny the ticket comment because a teammate already answered.
  4. The approved actions run. The transcript shows what ran and when.
  5. The next run of the task starts on time, because nothing blocked it.

Additional Context

  • A possible path: extend "defer" to scheduled tasks, routines, /loop and background sessions, support turns with several tool calls, and add a review page over the deferred calls.
  • Push notifications and Remote Control help when I am available. They do not help at night or during meetings, and the session still blocks.
  • The queue also gives an audit trail: what the agent asked to do, and what I decided.

View original on GitHub ↗