[FEATURE] Custom action choices in plan approval dialog

Resolved 💬 4 comments Opened Mar 23, 2026 by superbiche Closed Apr 21, 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)

Problem Statement

When Claude finishes a plan and presents the approval dialog ("Accept this plan?"), the choices are fixed: proceed, edit, reject. There's no way to inject custom actions.

I built a tool that reads plan files aloud using LLM preprocessing + TTS (plan-reader — converts markdown plans to natural speech via a local LLM + Kokoro TTS). The ideal UX would be an extra choice in the plan approval dialog: "Read aloud" — which triggers my tool with the plan content before I decide whether to proceed.

Other use cases for custom actions at plan approval:

  • Export plan to a ticketing system (Jira/Linear/ClickUp)
  • Send plan to a teammate for review (Slack/email)
  • Save plan as a document (PDF/markdown)
  • Run a cost estimator on the plan
  • Diff against a previous plan version

None of these are possible today. The plan approval dialog is not extensible.

Proposed Solution

Allow users to define custom actions in the plan approval dialog via hooks or settings:

{
  "planApprovalActions": [
    {
      "label": "Read aloud",
      "command": "plan-reader --skip-save",
      "input": "plan_content"
    },
    {
      "label": "Export to ClickUp",
      "command": "plan-export-clickup",
      "input": "plan_content"
    }
  ]
}

When defined, these would appear as additional choices in the approval prompt. The command receives the plan content via stdin or a temp file. After the custom action completes, the user returns to the same approval dialog to make their final decision (proceed/edit/reject).

This is distinct from notification hooks (#13024) — those fire automatically. This is about user-initiated actions at a specific decision point.

Alternative Solutions

  • Slash commands: I currently use /read-plan which works but requires exiting the approval flow, running the command, then coming back. It breaks the decision flow.
  • Stop hook + prompt: A Stop hook could detect plan completion, but it can't inject choices into the dialog — it can only run commands automatically.
  • PreToolUse on ExitPlanMode: Can only allow/deny, not add custom actions.

Priority

Medium - Quality of life improvement

Feature Category

Configuration and settings

Use Case Example

  1. I ask Claude to plan a refactoring
  2. Claude presents the plan with approval choices:

```
Accept this plan?

  1. Yes, auto-accept edits
  2. Yes, but ask before each edit
  3. Read aloud ← custom action
  4. Export to ClickUp ← custom action
  5. Edit plan
  6. Reject

```

  1. I pick "Read aloud" — my TTS tool plays the plan as audio
  2. After listening, I'm back at the same dialog and pick "Yes, auto-accept edits"
  3. Claude proceeds with implementation

Additional Context

The plan approval moment is a natural decision point where users often want to do something with the plan before deciding. Making this extensible would unlock a whole category of integrations that don't fit the existing hook model (which is about automatic reactions, not user-initiated actions).

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗