Table of Contents
- Table of Contents
- Overview
- The Bug report drafted Card That Appeared Out of Nowhere
- What Is Claude-drafted feedback?
- The Kinds of Data Claude Code Sends to Anthropic
- Turning Off Feedback Drafts (feedbackDrafts)
- Turning Off the Remaining Feedback and Telemetry
- Complete Settings
- Verifying the Settings
- Things to Note
- Conclusion
Overview
While working with Claude Code, at some point a card reading ✻ Bug report drafted: ... shows up above your prompt. This is a feature called Claude-drafted feedback: when Claude notices its own mistake or a tool error during a task, it writes a bug report draft to send to Anthropic on its own and queues it. The draft is stored locally only and nothing is sent until you send it yourself, but many people will still find the mere “attempt to share my work with an outside party” uncomfortable.
This post covers how to turn off this feedback draft feature, and, while we’re at it, how to turn off session quality surveys, the /feedback command, usage telemetry, and error reporting, all from a single settings.json.
For Claude Code installation and basic usage, see Claude Code Basics and Basic Usage.
The Bug report drafted Card That Appeared Out of Nowhere
Here is the screen I actually saw. It came right after Claude had confirmed that a review finding it raised was a false positive and retracted it, in the middle of a PR review.
✻ Bug report drafted: Review leader note graded MAJOR was a false po…
│ - What happened: During review of PR #395 I presented a leader scrutiny finding (MAJOR: ...
The card interrupts the workflow with no connection to it, and its content contains my repository’s file paths and PR number as they are. According to the official docs, pressing 1 on this card reviews the draft, pressing 2 twice sends it as written, and pressing 0 dismisses the card. Even when dismissed, the draft stays in the queue and reappears when you later run /feedback.
What Is Claude-drafted feedback?
Added in Claude Code v2.1.238, this feature has Claude use an internal tool called SendFeedback to write a feedback report about Claude Code itself on your behalf. Drafts are saved as files under ~/.claude/feedback/drafts/, and the queue holds up to 10 drafts across all your sessions (when an eleventh is created, the oldest is deleted). Unsent drafts expire automatically after 30 days (or after cleanupPeriodDays if that is shorter).
When Does It Draft?
The official docs list four triggers.
- A tool or command keeps failing
- It can’t help with something you asked for
- You point out a mistake it made, or it notices one itself
- You ask it to file feedback
The third trigger is the key one. Telling Claude “that finding is wrong” is a routine part of everyday work, and a draft can be created every time you do.
What Actually Gets Sent?
There is one point worth being precise about here. Simply queuing a draft sends nothing to Anthropic. It is sent only when you send it yourself, from the card or from the /feedback queue.
When you do send it, however, the report includes:
- Title, area, and details (written by Claude)
- Environment info (Claude Code version, OS, model)
- The IDs of recent API requests
- The conversation transcript: when sending from the queue’s review screen,
Send transcriptdefaults toyes, so the entire conversation of that session goes along with it (sending directly from the card never includes it)
A sent report goes through the same submission path as a regular /feedback report and is retained for 5 years. The feature is designed around user consent, but it is structured so that just “accidentally pressing 2 twice” can send a conversation containing your code outside your machine, so if you don’t want that, turning the feature off entirely is the safer choice.
The Kinds of Data Claude Code Sends to Anthropic
It might seem like turning off feedback drafts is enough, but Claude Code has several different transmission paths of differing natures, and each has its own switch. Organized according to the official data usage docs:
| Kind | What it sends | Default (when using the Claude API) |
|---|---|---|
| Feedback drafts (Claude-drafted feedback) | A report written by Claude + (optionally) the conversation transcript | On (sent only after user approval) |
/feedback command (including /bug and /share) | Conversation history (including code) | On |
| Session quality surveys (“How is Claude doing this session?”) | Only the rating. A separate follow-up asks to upload the transcript if you press Yes | On |
| Usage telemetry (Metrics) | Latency, reliability, usage patterns. Never code, prompts, or file paths | On |
| Error reporting (Error reports) | Error messages and stack traces from Claude Code’s internals | On for Pro/Max sign-ins on v2.1.198+ |
When using a third-party provider such as Amazon Bedrock or Google Cloud, most of these are off by default, but note that session quality surveys are on regardless of provider.
Turning Off Feedback Drafts (feedbackDrafts)
Feedback drafts are controlled by a single setting, feedbackDrafts. It has three values.
| Value | Behavior |
|---|---|
notify (default) | Shows a card above the prompt when a draft is queued |
quiet | Keeps drafting but shows no cards, only a queue count in the prompt footer |
off | Disables the SendFeedback tool itself, so no drafts are created |
To turn the feature off completely, use off. quiet only hides the cards while drafts keep piling up, so it is not the right choice if you don’t want the sharing attempt itself.
Via /config
Run /config inside Claude Code and set the Claude-drafted feedback item to off. Internally this writes the feedbackDrafts setting below into settings.json.
Via settings.json
Add this one line to your user settings file (~/.claude/settings.json).
{
"feedbackDrafts": "off"
}
This turns the draft feature off across all projects. If an organization administrator has set feedbackDrafts in managed settings, that takes precedence.
For a Single Session via Environment Variable
If you want to turn it off for just the current session without touching the settings file, use an environment variable.
CLAUDE_CODE_SEND_FEEDBACK=0 claude
Turning Off the Remaining Feedback and Telemetry
The remaining items are controlled by environment variables. You could export them in your shell profile, but putting them in the env block of settings.json applies them only to Claude Code sessions and lets you manage everything in one file, so that is the recommended approach.
Session Quality Surveys
{
"env": {
"CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY": "1"
}
}
If you’d rather lower the frequency than turn surveys off entirely, you can set feedbackSurveyRate to a probability between 0 and 1. 0 means they never appear.
{
"feedbackSurveyRate": 0
}
The /feedback Command
{
"env": {
"DISABLE_FEEDBACK_COMMAND": "1"
}
}
This disables the /feedback, /bug, and /share commands. According to the official docs, sessions with this variable set also leave out the SendFeedback tool, so it has the effect of blocking the draft feature at the same time.
Usage Telemetry and Error Reporting
{
"env": {
"DISABLE_TELEMETRY": "1",
"DISABLE_ERROR_REPORTING": "1"
}
}
These two variables read only whether they are set, not their value. Any non-empty value (even 0) disables the feature, and to re-enable it you have to remove the variable itself.
Blocking All Non-essential Traffic at Once
{
"env": {
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}
This turns off telemetry, error reporting, and session quality surveys (including the transcript upload follow-up) all at once. Sessions with this variable set also leave out the SendFeedback tool. However, the following two are not affected, so they need to be set separately.
- The
/feedbackcommand →DISABLE_FEEDBACK_COMMAND=1 - The WebFetch domain safety check (looks up the hostname against
api.anthropic.com) →skipWebFetchPreflight: true
Complete Settings
Here is ~/.claude/settings.json with everything above combined. If you already have settings, merge the keys and be careful not to overwrite the entire file.
{
"feedbackDrafts": "off",
"feedbackSurveyRate": 0,
"env": {
"CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY": "1",
"DISABLE_FEEDBACK_COMMAND": "1",
"DISABLE_TELEMETRY": "1",
"DISABLE_ERROR_REPORTING": "1",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC alone already turns off surveys, telemetry, and error reporting, so the remaining variables are redundant, but I recommend listing them explicitly anyway so that the individual items stay off even if you later lift only the blanket switch.
Verifying the Settings
Check just the relevant keys with jq.
jq '{feedbackDrafts, feedbackSurveyRate, env}' ~/.claude/settings.json
If applied correctly, the output looks like this.
{
"feedbackDrafts": "off",
"feedbackSurveyRate": 0,
"env": {
"CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY": "1",
"DISABLE_FEEDBACK_COMMAND": "1",
"DISABLE_TELEMETRY": "1",
"DISABLE_ERROR_REPORTING": "1",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}
If jq prints without an error, the JSON syntax has been validated as well. A broken settings.json causes every setting in that file to be silently ignored, so it’s a good habit to check once after every edit.
Things to Note
- Environment variables are read at process start. Values added to the
envblock do not apply to the currently running session, so you need to restart Claude Code. - If you use
CLAUDE_CONFIG_DIR, the user settings file is$CLAUDE_CONFIG_DIR/settings.json, not~/.claude/settings.json. If you keep separate config directories per account, edit the file that is actually in use. DISABLE_TELEMETRYandCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICalso turn off feature-flag fetching. According to the official docs, Remote Control depends on that fetching, so if you use Remote Control, check whether you’re affected.DISABLE_ERROR_REPORTINGdoes not have this effect.- Turning off
/feedbackalso removes any way to send drafts already in the queue. Remaining drafts are deleted automatically once they expire. - If you want to clean out the queued drafts now, run
/feedbackbefore turning offfeedbackDraftsto open the queue and discard them, or empty the~/.claude/feedback/drafts/directory directly. - To enforce this for a whole team, put it in the project settings (
.claude/settings.json) and commit it to Git. Note that teammates can still override it with local settings, and organization-wide enforcement is only possible through managed settings.
Conclusion
This post covered how to turn off Claude Code’s Claude-drafted feedback feature with the feedbackDrafts setting, and how to handle session quality surveys, the /feedback command, telemetry, and error reporting from a single settings.json.
Feedback drafts themselves are designed never to be sent without user approval, but if the cards interrupting your workflow and the fact that “a button that sends a conversation containing your code outside your machine is always one keypress away” feel like a burden, a single line, feedbackDrafts: "off", turns it off cleanly. Take a moment to map out which data leaves through which path, and pick the switches that fit your environment.
Was my blog helpful? Please leave a comment at the bottom. it will be a great help to me!
App promotion
Deku.Deku created the applications with Flutter.If you have interested, please try to download them for free.