π File detail
utils/privacyLevel.ts
π― Use case
This file lives under βutils/β, which covers cross-cutting helpers (shell, tempfiles, settings, messages, process input, β¦). On the API surface it exposes getPrivacyLevel, isEssentialTrafficOnly, isTelemetryDisabled, and getEssentialTrafficOnlyReason β mainly functions, hooks, or classes. What the file header says: Privacy level controls how much nonessential network traffic and telemetry Claude Code generates. Levels are ordered by restrictiveness: default < no-telemetry < essential-traffic - default: Everything enabled. - no-telemetry: Analytics/telemetry disabled (Datadog, 1P events, fee.
Generated from folder role, exports, dependency roots, and inline comments β not hand-reviewed for every path.
π§ Inline summary
Privacy level controls how much nonessential network traffic and telemetry Claude Code generates. Levels are ordered by restrictiveness: default < no-telemetry < essential-traffic - default: Everything enabled. - no-telemetry: Analytics/telemetry disabled (Datadog, 1P events, feedback survey). - essential-traffic: ALL nonessential network traffic disabled (telemetry + auto-updates, grove, release notes, model capabilities, etc.). The resolved level is the most restrictive signal from: CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC β essential-traffic DISABLE_TELEMETRY β no-telemetry
π€ Exports (heuristic)
getPrivacyLevelisEssentialTrafficOnlyisTelemetryDisabledgetEssentialTrafficOnlyReason
π₯οΈ Source preview
/**
* Privacy level controls how much nonessential network traffic and telemetry
* Claude Code generates.
*
* Levels are ordered by restrictiveness:
* default < no-telemetry < essential-traffic
*
* - default: Everything enabled.
* - no-telemetry: Analytics/telemetry disabled (Datadog, 1P events, feedback survey).
* - essential-traffic: ALL nonessential network traffic disabled
* (telemetry + auto-updates, grove, release notes, model capabilities, etc.).
*
* The resolved level is the most restrictive signal from:
* CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC β essential-traffic
* DISABLE_TELEMETRY β no-telemetry
*/
type PrivacyLevel = 'default' | 'no-telemetry' | 'essential-traffic'
export function getPrivacyLevel(): PrivacyLevel {
if (process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC) {
return 'essential-traffic'
}
if (process.env.DISABLE_TELEMETRY) {
return 'no-telemetry'
}
return 'default'
}
/**
* True when all nonessential network traffic should be suppressed.
* Equivalent to the old `process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` check.
*/
export function isEssentialTrafficOnly(): boolean {
return getPrivacyLevel() === 'essential-traffic'
}
/**
* True when telemetry/analytics should be suppressed.
* True at both `no-telemetry` and `essential-traffic` levels.
*/
export function isTelemetryDisabled(): boolean {
return getPrivacyLevel() !== 'default'
}
/**
* Returns the env var name responsible for the current essential-traffic restriction,
* or null if unrestricted. Used for user-facing "unset X to re-enable" messages.
*/
export function getEssentialTrafficOnlyReason(): string | null {
if (process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC) {
return 'CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC'
}
return null
}