Repository navigation
[FEATURE] Add a mode with approval granularity somewhere between approving every edit and accepting all changes #7760
Description
Activity
- addedhas reproHas detailed reproduction stepsHas detailed reproduction steps
on Sep 17, 2025 This is a fantastic suggestion, and something I've struggled with too. Claude can sometimes be like an overly enthusiastic pair programmer that starts refactoring three other files before you've even had a chance to review the first change.
While we wait for an official feature, I've found a workaround that gives me back some of that granular control. It combines two features that are a bit hidden in the docs: Plan Mode and Hooks.
My Workflow for "Task-by-Task" Approval
The goal is to force Claude to stop and wait for my explicit "go-ahead" after it completes each step in its plan.
1. Start in Plan Mode
I always start complex tasks in
planmode now. This forces Claude to use only read-only tools to analyze the codebase and create a detailed plan without touching any code. It's a great way to agree on the approach before any changes are made.claude --permission-mode plan
"I want to add a new GraphQL endpoint for user profiles. Please create a detailed implementation plan."
We can then go back and forth refining the plan until it's perfect.
2. Use a
StopHook to Manually Control the Agent LoopThis is the key part. The documentation mentions a
Stophook that runs every time Claude is about to finish its turn. You can use this hook to "block" Claude from continuing automatically, effectively forcing it to wait for you.Here’s the setup:
A. Create a simple confirmation script. I saved this as
~/.claude/hooks/confirm-continue.sh:#!/bin/bash # This script pauses Claude and asks for user confirmation to continue. # Prompt the user read -p "Claude has completed a step. Continue to the next one? (y/n) " -n 1 -r echo # Move to a new line # If the user enters 'y' or 'Y', exit with success (0) to let Claude continue. if [[ $REPLY =~ ^[Yy]$ ]]; then exit 0 else # Otherwise, output a special JSON to block Claude and give it a message. # This makes Claude wait for your next manual prompt. echo '{ "decision": "block", "reason": "User requested pause. Awaiting next instruction." }' exit 0 # Still exit 0 so Claude processes the JSON, not an error. fi
Make sure to make it executable:
chmod +x ~/.claude/hooks/confirm-continue.sh.B. Register the hook in your user
settings.json(~/.claude/settings.json):{ "hooks": { "Stop": [ { "matcher": "*", "hooks": [ { "type": "command", "command": "~/.claude/hooks/confirm-continue.sh" } ] } ] } }Now, after Claude finishes a tool use (like completing a
TODOitem), the terminal will prompt youContinue to the next one? (y/n). If you pressy, it continues. If you press anything else, it stops and waits for your next prompt, giving you a chance to review the work, run tests, or give new instructions.It's definitely more manual than a built-in feature would be, but it completely solves the "Claude rushing ahead" problem for me. It turns the workflow into a true turn-by-turn collaboration.
+1 for the official feature, but hopefully this workaround helps you in the meantime
Reacted by lukensAlternatively, you can try 'Task Master':
https://github.com/eyaltoledano/claude-task-master@coygeek - thanks, I’ll take a look.
I go back and forth with liking and hating plan mode. It’s good for stopping Claude at over-enthusiastically rushing ahead with coding, but instead tends to put Claude into over-enthusiastically-constantly-presenting-you-with-a-plan-to-do-absolutely-everything-solve-global-warming-and-create-world-peace mode.
Most of the time I want to discuss and plan just one small aspect, and, importantly, I want to discuss it first, and not constantly be presented with a plan to accept or reject (that goes way too far into the future), when we still haven’t agreed our general approach. Every time I start in plan mode I start “don’t present a plan until I say I’m ready”, or similar, but it very seldom works.
Reacted by Coy GeekThis issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.
- addedautocloseIssue will be closed automaticallyIssue will be closed automatically
on Dec 6, 2025 still an issue
- removedautocloseIssue will be closed automaticallyIssue will be closed automatically
on Dec 11, 2025 This issue has been automatically closed due to 60 days of inactivity. If you're still experiencing this issue, please open a new issue with updated information.
It was a good feature idea.
This issue was closed incorrectly despite recent human comments. This behavior of the bot is reported at #16497
Reacted by lukensThis issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.
- locked as resolved and limited conversation to collaborators
on Jan 19, 2026
Preflight Checklist
Problem Statement
I personally find that Claude is far too keen and eager, and wants to try and solve everything before checking back in with me. And as hard as I try and fight against this instinct in my prompting and configuration, it tends to break down, and at some point I will find Claude rushing ahead of itself again (especially after compaction #7759).
I like to work in small steps where I can review and iterate on each task before moving onto the next, so that I am working in manageable sized pieces, and don't have too much to review at once, and also to ensure I've not wasted a load of credit with Claude creating masses of code that then needs to be rewritten on scrapped.
Conversely, approving each and every edit is too onerous and time consuming.
Proposed Solution
Some kind of "task approval" mode.
Alternative Solutions
I generally try and avoid this problem by insisting that Claude puts an explicit check-in step with me after every todo item on its list. This generally works fairly well, however Claude is also very proactive with crossing out todos, so will often cross out "check in for approval from user" when it checks in with me, rather than when I give it the approval. It can also, sometimes, be a little tedious to get it to add these todos, with conversations like:
... etc...
Priority
High - Significant impact on productivity
Feature Category
Other
Use Case Example
Just every day working with Claude Code
Additional Context
No response