Desktop app: no user-level way to disable the "How is Claude doing this session?" survey

Status Open
Reported on v2.1.160
Maintainer reply None cached
Activity 3 comments · opened Sep 16, 2026

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:

"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:

I = gate("claudeai_epitaxy_feedback_survey") && !o && !disabled && !cliDisabled && …

with pacing from claudeai_epitaxy_feedback_survey_config, whose defaults are:

{ 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:

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.

  1. A settings key of its own, e.g. "sessionFeedbackSurvey": "off", alongside

the existing feedbackDrafts key the app already reads.

  1. 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.

View original on GitHub ↗

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