Telemetry

Visual Studio Code collects telemetry data, which is used to help understand how to improve the product. For example, this usage data helps to debug issues, such as slow start-up times, and to prioritize new features. We also use this data to roll out new features to a subset of users before making them generally available.

While we appreciate the insights this data provides, we also know that not everyone wants to send usage data and you can disable telemetry as described in disable telemetry reporting. You can also read our privacy statement to learn more.

Types of telemetry data

VS Code and this page refer to three different types of data with respect to telemetry.

Crash Reports - Crash reports collect diagnostic information when VS Code crashes and sends it to Microsoft to help understand why the crash occurred and what changes are needed to prevent the crash in the future.

Error Telemetry - Error telemetry collects information about errors that do not crash the application but are unexpected.

Usage Data - Usage data collects information about how features are used and perform in VS Code which helps us prioritize future product improvements.

Disable telemetry reporting

With the telemetry.telemetryLevel Open in VS Code Open in VS Code Insiders user setting, you can control the different types of telemetry we send with a single setting. Here is a table of the different types of data sent with each value of telemetry.telemetryLevel Open in VS Code Open in VS Code Insiders :

Crash Reports Error Telemetry Usage Data
all ✓ ✓ ✓
error ✓ ✓ -
crash ✓ - -
off - - -

For example, if you don't want to send any telemetry data to Microsoft, you can set the telemetry.telemetryLevel Open in VS Code Open in VS Code Insiders user setting to off. This will silence all telemetry events from VS Code going forward. Note that telemetry information may have been collected and sent up until the point when you disable the setting.

Screenshot showing the Settings editor with telemetry disabled.

If you use the JSON editor for your settings, add the following line:

"telemetry.telemetryLevel": "off"
Important

To participate in the A/B experimentation and get early access to new features, you must have usage data enabled by setting telemetry.telemetryLevel Open in VS Code Open in VS Code Insiders to all.

Feature availability and telemetry

VS Code uses an A/B experimentation system to roll out new features to a subset of users before making them generally available. This helps us validate that a new feature is working as expected across a diverse set of users before rolling it out to everyone. By participating in experimentation, you help us improve the quality of VS Code and can help shape the future of the product through early feedback.

To enable this experimentation system, VS Code uses the usage telemetry data to determine which users should receive the new feature and to validate how the feature is used. If you disable usage data telemetry by setting telemetry.telemetryLevel Open in VS Code Open in VS Code Insiders to error, crash, or off, we can't evaluate the feature's usage and therefore experimentation is disabled for you. As a result, the rollout of new features to you might be delayed until the feature is generally available.

Extensions and telemetry

VS Code lets you add features to the product by installing Microsoft and third-party extensions. These extensions may be collecting their own usage data and are not controlled by the telemetry.telemetryLevel Open in VS Code Open in VS Code Insiders setting. Consult the specific extension's documentation to learn about its telemetry reporting and whether it can be disabled.

Extension authors may refer to the "For Extension Authors" section for guidance on implementing telemetry best practices within their extension.

Output channel for telemetry events