anthropics / anthropics/claude-code
Desktop app: no user-level way to disable the "How is Claude doing this session?" survey
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
## Summary
The Claude desktop app's Code tab shows an inline session survey — *"How is
Claude doing this session? Bad / Fine / Good ×"* — above the composer. There
appears to be no user-level setting that turns it off, and the existing
Claude Code feedback switches do not apply to it, because the banner is
rendered by the desktop app rather than by the CLI.
I would like a supported way to opt out.
## Environment
- Claude desktop app (Code tab), macOS 15 (Darwin 25.5.0), Apple silicon
- `@anthropic-ai/claude-code` 2.1.160
- Personal plan (not an org/Team deployment)
## What I tried
`~/.claude/settings.json` already contains:
```json
"env": {
"DISABLE_FEEDBACK_COMMAND": "1",
"CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY": "1",
"DISABLE_ERROR_REPORTING": "1"
}
```
The banner still appears. As far as I can tell these govern the CLI's own
feedback surfaces (`/feedback`, per-message thumbs in the TUI) and are not read
by the desktop renderer.
## Why it looks unreachable from the user side
From the shipped app bundle
(`/Applications/Claude.app/Contents/Resources/ion-dist/assets/v1/`), the
component is gated on:
```js
I = gate("claudeai_epitaxy_feedback_survey") && !o && !disabled && !cliDisabled && …
```
with pacing from `claudeai_epitaxy_feedback_survey_config`, whose defaults are:
```js
{ minTimeBeforeFeedbackMs: 600000, // 10 min into the session
minTimeBetweenFeedbackMs: 3600000,
minTimeBetweenGlobalFeedbackMs: 100000000, // ~27.8 h
minUserTurnsBeforeFeedback: 5,
minUserTurnsBetweenFeedback: 10,
probability: 0.005 }
```
`cliDisabled` is derived from the CLI's `system/init` message:
```js
cliDisabled = init.analytics_disabled !== false || init.product_feedback_disabled !== false
```
and in the CLI those two are:
- `analytics_disabled: UC()` — true for non-first-party providers, a gateway
auth, or a 3P backend;
- `product_feedback_disabled: !policy("allow_product_feedback")` — the org's
ZDR/HIPAA policy.
So the only ways the banner is suppressed are "you are on Bedrock/Vertex/a
gateway" or "your organization has custom data retention". A personal
first-party user has no path at all. The remaining lever is the
`epitaxy-feedback-survey-last-shown` localStorage key, which is app-internal
and resets on update.
## Why this matters to me
I use Claude Code for long, sustained sessions that are not only coding, where
the thread has a deliberate shape and continuity matters. A rating widget
appearing inline in the middle of that is a real interruption — it changes what
the surface is asking of me mid-thought. The ~28 h global cooldown after a
dismissal keeps the cost low in aggregate, but it lands unpredictably and it is
precisely the sessions I care most about that it disturbs.
To be clear, I am not asking you to stop collecting feedback. I am asking for
the same courtesy the CLI already offers: a switch.
## What I'd like
Any one of these would resolve it:
1. Have the desktop app honour `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` (or
`DISABLE_TELEMETRY` / `DO_NOT_TRACK`) from `~/.claude/settings.json` — this
is the least surprising fix, since users who set that flag have already
expressed the intent.
2. A settings key of its own, e.g. `"sessionFeedbackSurvey": "off"`, alongside
the existing `feedbackDrafts` key the app already reads.
3. A toggle in the app's Settings → Privacy, next to the existing feedback
controls.
A per-session "don't ask again" on the `×` button would also be a large
improvement over the current dismiss.
## Note
Everything above is read out of the shipped bundle and the local CLI binary;
minified identifiers are quoted as they appear. I may have misread a gate, in
which case the short version of the report still stands: I cannot find a way to
turn this off and I would like one.
Contributor guide
No contributing guide indexed for this repository
Research direction
The report points to the shipped desktop bundle at /Applications/Claude.app/Contents/Resources/ion-dist/assets/v1/ and ~/.claude/settings.json; start by verifying how the desktop renderer reads settings and how cliDisabled is derived from system/init. Done means a supported user-level opt-out is defined and the desktop survey no longer appears for users who enable it, with the existing CLI switches or a documented desktop setting clearly covered.
Written by the indexing model from the issue text.
Assessment
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100