Add a config option to disable telemetry #7387

Closed
opened 2026-01-31 01:02:38 +00:00 by claunia · 14 comments
Owner

Originally created by @nickjj on GitHub (Apr 12, 2020).

Description of the new feature/enhancement

Going by the source code located at https://github.com/microsoft/terminal/blob/master/src/terminal/parser/telemetry.cpp it seems like maybe the terminal is logging all sorts of data as part of its telemetry system and then sending it back to Microsoft.

Like VSCode, it would be nice to be able to opt out of this by disabling telemetry in the settings.

Proposed technical implementation details (optional)

Expose an option in the config to allow disabling it.

Going by https://github.com/microsoft/terminal/blob/master/doc/cascadia/SettingsSchema.md there doesn't seem to be an option for this.

It would also be nice if someone can reply back here with more details on what exactly is tracked and how it's sent to Microsoft as of today and if that'll change in v1.0's release.

Originally created by @nickjj on GitHub (Apr 12, 2020). # Description of the new feature/enhancement Going by the source code located at https://github.com/microsoft/terminal/blob/master/src/terminal/parser/telemetry.cpp it seems like maybe the terminal is logging all sorts of data as part of its telemetry system and then sending it back to Microsoft. Like VSCode, it would be nice to be able to opt out of this by disabling telemetry in the settings. # Proposed technical implementation details (optional) Expose an option in the config to allow disabling it. Going by https://github.com/microsoft/terminal/blob/master/doc/cascadia/SettingsSchema.md there doesn't seem to be an option for this. It would also be nice if someone can reply back here with more details on what exactly is tracked and how it's sent to Microsoft as of today and if that'll change in v1.0's release.
claunia added the Issue-QuestionNeeds-TriageNeeds-Tag-FixResolution-Answered labels 2026-01-31 01:02:38 +00:00
Author
Owner

@DHowett-MSFT commented on GitHub (Apr 12, 2020):

Couple points:

  1. We aren’t hiding anything, and you can find details about everything that’s going into a trace logging stream in our source code. The keyword you’ll want to look for is TraceLoggingWrite.
  2. The event stream you’ve identified is local-only. Using the .wprp file in our source folder (it’s just XML, you can also crack it open if you want) coupled with the Windows Performance Analyzer, you can capture and evaluate these tracing events. They’re only active when WPR/WPA is listening, which is by explicit user action, and none of the information generated leaves your machine.

We call this system ETL, and I have to admit I’m not sure what it stands for. Its primary use is local opt-in diagnostics, and any diagnostic data generated using it doesn’t leave the machine.

In the Terminal source subtree (src/cascadia), you’ll find some trace loggers that are annotated with additional flags (something something MEASURES). Those are also for local diagnostics, but they can be sampled if, and only if, your Windows diagnostic information configuration allows it.

To date, we’ve used those to determine...

  • what level of padding to apply by default (8)
  • that we should bind Ctrl+c/v by default
  • that Terminal is able to start up CMD in less than a tenth of a second
  • nothing else.

Hope that gives you a bit more information. Since these are either entirely local event streams or configured by your global Windows opt-out, I’m gonna close this one out as Question/Answered.

@DHowett-MSFT commented on GitHub (Apr 12, 2020): Couple points: 1. We aren’t hiding anything, and you can find details about everything that’s going into a trace logging stream in our source code. The keyword you’ll want to look for is `TraceLoggingWrite`. 2. The event stream you’ve identified is _local-only_. Using the `.wprp` file in our source folder (it’s just XML, you can also crack it open if you want) coupled with the Windows Performance Analyzer, you can capture and evaluate these tracing events. They’re only active when WPR/WPA is listening, which is by explicit user action, and none of the information generated leaves your machine. We call this system ETL, and I have to admit I’m not sure what it stands for. Its primary use is local opt-in diagnostics, and any diagnostic data generated using it doesn’t leave the machine. In the Terminal source subtree (src/cascadia), you’ll find some trace loggers that are annotated with additional flags (something something `MEASURES`). Those are _also_ for local diagnostics, but they can be sampled _if, and only if, your Windows diagnostic information configuration allows it._ To date, we’ve used those to determine... * what level of padding to apply by default (8) * that we should bind Ctrl+c/v by default * that Terminal is able to start up CMD in less than a tenth of a second * nothing else. Hope that gives you a bit more information. Since these are either entirely local event streams _or_ configured by your global Windows opt-out, I’m gonna close this one out as Question/Answered.
Author
Owner

@DHowett-MSFT commented on GitHub (Apr 12, 2020):

(Let me know if I can shine any more light for you!)

@DHowett-MSFT commented on GitHub (Apr 12, 2020): (Let me know if I can shine any more light for you!)
Author
Owner

@nickjj commented on GitHub (Apr 12, 2020):

Thanks for the speedy reply.

So for clarity, no matter what your Windows settings are, there is never a single byte of information that is sent back to Microsoft when it comes to opening the terminal and either typing into it or opening files?

Also, what is the "global Windows opt-out" feature you mentioned? I was under the impression it's not possible to opt out of basic telemetry -- at least not on the home / pro versions of Windows.

@nickjj commented on GitHub (Apr 12, 2020): Thanks for the speedy reply. So for clarity, no matter what your Windows settings are, there is never a single byte of information that is sent back to Microsoft when it comes to opening the terminal and either typing into it or opening files? Also, what is the "global Windows opt-out" feature you mentioned? I was under the impression it's not possible to opt out of basic telemetry -- at least not on the home / pro versions of Windows.
Author
Owner

@kilasuit commented on GitHub (May 21, 2020):

@DHowett please re-open and either give us a configuration setting (in our Terminal profiles) that allows us to individually consent/remove consent to providing telemetry or agree that you'd accept a PR with this setting in if one was submitted

@kilasuit commented on GitHub (May 21, 2020): @DHowett please re-open and either give us a configuration setting (in our Terminal profiles) that allows us to individually consent/remove consent to providing telemetry or agree that you'd accept a PR with this setting in if one was submitted
Author
Owner

@DHowett commented on GitHub (May 21, 2020):

If somebody were to contribute this, we'd evaluate it for inclusion. I'm not certain why the Windows global collection setting is insufficient, but I trust the community has a reason for believing that it isn't.

@DHowett commented on GitHub (May 21, 2020): If somebody were to contribute this, we'd evaluate it for inclusion. I'm not certain why the Windows global collection setting is insufficient, but I trust the community has a reason for believing that it isn't.
Author
Owner

@nickjj commented on GitHub (May 21, 2020):

I'm not certain why the Windows global collection setting is insufficient

Can you go into more detail on how this works? I asked a follow up question on this in a previous reply but I'm still not clear on how that can be modified to not collect or send out anything as a regular person using the Pro version of Windows.

VSCode has an explicit telemetry option, which is also a Microsoft product so it seems reasonable that this terminal could at least think about adding the feature too.

but I trust the community has a reason for believing that it isn't

I can't speak for the whole community but I know my line of thinking was "VSCode has an option to disable this but the Terminal doesn't while having code related to telemetry, so it must be collecting and sending a bunch of potentially identifiable stats to Microsoft". Most folks don't have the knowledge to crawl through the entire code base line by line to see what the telemetry bits really do and then remember to repeat this step every time the code base changes.

I'm with @kilasuit here. If you're open to accepting pull requests on this, should this be re-opened? Someone who is fishing through issues to contribute to the project may never see your request for maybe including it if it's closed.

@nickjj commented on GitHub (May 21, 2020): > I'm not certain why the Windows global collection setting is insufficient Can you go into more detail on how this works? I asked a follow up question on this in a previous reply but I'm still not clear on how that can be modified to not collect or send out anything as a regular person using the Pro version of Windows. VSCode has an explicit telemetry option, which is also a Microsoft product so it seems reasonable that this terminal could at least think about adding the feature too. > but I trust the community has a reason for believing that it isn't I can't speak for the whole community but I know my line of thinking was "VSCode has an option to disable this but the Terminal doesn't while having code related to telemetry, so it must be collecting and sending a bunch of potentially identifiable stats to Microsoft". Most folks don't have the knowledge to crawl through the entire code base line by line to see what the telemetry bits really do and then remember to repeat this step every time the code base changes. I'm with @kilasuit here. If you're open to accepting pull requests on this, should this be re-opened? Someone who is fishing through issues to contribute to the project may never see your request for maybe including it if it's closed.
Author
Owner

@kilasuit commented on GitHub (May 21, 2020):

I'm not certain why the Windows global collection setting is insufficient, but I trust the community has a reason for believing that it isn't.

It's just because sometimes you just don't want any telemetry being shared at all, something that PowerShell and dotnet have accepted and have options for fully disabling telemetry in their products

@kilasuit commented on GitHub (May 21, 2020): > I'm not certain why the Windows global collection setting is insufficient, but I trust the community has a reason for believing that it isn't. It's just because sometimes you just don't want any telemetry being shared at all, something that PowerShell and dotnet have accepted and have options for fully disabling telemetry in their products
Author
Owner

@DHowett commented on GitHub (May 21, 2020):

I'm not arguing that part -- it's just that PowerShell and dotnet don't use the system tracelogging edifice that's controlled by the OS. Because this is an OS-derived project, it does. That's why I'm confused... is it something we could make clearer in our docs?

(@nickjj - I owe you a more detailed response, but I'm working on the shorter easier ones first 😕)

@DHowett commented on GitHub (May 21, 2020): I'm not arguing that part -- it's just that PowerShell and dotnet don't use the system tracelogging edifice that's controlled by the OS. Because this is an OS-derived project, it _does_. That's why I'm confused... is it something we could make clearer in our docs? (@nickjj - I owe you a more detailed response, but I'm working on the shorter easier ones first 😕)
Author
Owner

@DHowett commented on GitHub (May 21, 2020):

So, there's a handful of TraceLogging providers in our code that are badged with MICROSOFT_KEYWORD_MEASURES.

On a small percentage of machines with non-Basic telemetry enabled, those are aggregated by the Windows event tracing service (since they're using the TraceLogging API family). If "Basic" telemetry is selected, those events don't even fire and they are not collected.

This project uses the Windows TraceLogging system because it is derived from (and contributes back to) the inbox console host, conhost.exe. As such, any data produced herein is likewise controlled by the global data sharing settings.

(Code built directly out of this repository does not include an operable definition of ...MEASURES and as such doesn't generate data that can be accumulated anywhere.)

@DHowett commented on GitHub (May 21, 2020): So, there's a handful of TraceLogging providers in our code that are badged with `MICROSOFT_KEYWORD_MEASURES`. On a small percentage of machines with non-Basic telemetry enabled, those are aggregated by the Windows event tracing service (since they're using the `TraceLogging` API family). If "Basic" telemetry is selected, those events don't even fire and they are not collected. This project uses the Windows TraceLogging system because it is derived from (and contributes back to) the inbox console host, conhost.exe. As such, any data produced herein is likewise controlled by the global data sharing settings. (Code built directly out of this repository does not include an operable definition of `...MEASURES` and as such doesn't generate data that can be accumulated anywhere.)
Author
Owner

@nickjj commented on GitHub (May 21, 2020):

Thanks. Does that mean all of these properties never get stored locally or sent to Microsoft if you have basic level telemetry at the Windows level?

@nickjj commented on GitHub (May 21, 2020): Thanks. Does that mean [all of these properties](https://github.com/microsoft/terminal/blob/master/src/host/telemetry.cpp#L23) never get stored locally or sent to Microsoft if you have basic level telemetry at the Windows level?
Author
Owner

@DHowett commented on GitHub (May 22, 2020):

@nickjj: Yes, that's correct. I decided, though, to collect my own diagnostics before I sent this message:


I just checked the Diagnostic Data Viewer, and it looks like nothing is coming out of the console host (OR TERMINAL) when Basic is set.

Here's what I get in DDV when I close my console host in default "Enhanced" mode:

Telemetry, Enhanced - 3 events
{
    "ver": "4.0",
    "name": "Microsoft.Windows.Console.Host.ApiUsed",
    "time": "2020-05-21T23:10:01.9337642Z",
    "ext": {
        "utc": {
            "aId": "20F1D9D6-2EE5-0005-A8B2-F520E52ED601",
            "shellId": 33786454731784195,
            "eventFlags": 257,
            "pgName": "WIN",
            "flags": 138414340,
            "providerGuid": "FE1FF234-1F09-50A8-D38D-C44FAB43E818",
            "loggingBinary": "conhost.exe",
            "epoch": "4107162",
            "seq": 165733
        },
        "os": {
            "bootId": 39,
            "name": "Windows",
            "ver": "10.0.19041.264.amd64fre.vb_release.191206-1406"
        },
        "app": {
            "id": "W:0000f519feec486de87ed73cb92d3cac802400000000!00004dfb1635860281c736b6bd5fe949217a7b55a0d4!conhost.exe",
            "ver": "2020/04/14:22:24:44!E16B7!conhost.exe",
            "asId": 6165
        },
        "protocol": {
            "devMake": "Microsoft Corporation",
            "devModel": "Surface Laptop 3",
            "msp": 2
        }
    },
    "data": {
        "AddConsoleAlias": 0,
        "AllocConsole": 1,
        "AttachConsole": 1,
        "CreateConsoleScreenBuffer": 0,
        "GenerateConsoleCtrlEvent": 0,
        "FillConsoleOutputAttribute": 0,
        "FillConsoleOutputCharacter": 0,
        "FlushConsoleInputBuffer": 0,
        "FreeConsole": 0,
        "GetConsoleAlias": 0,
        "GetConsoleAliases": 0,
        "GetConsoleAliasExesLength": 0,
        "GetConsoleAliasesLength": 0,
        "GetConsoleAliasExes": 0,
        "GetConsoleCP": 0,
        "GetConsoleCursorInfo": 0,
        "GetConsoleDisplayMode": 0,
        "GetConsoleFontSize": 0,
        "GetConsoleHistoryInfo": 0,
        "GetConsoleLangId": 1,
        "GetConsoleMode": 19,
        "GetConsoleOriginalTitle": 0,
        "GetConsoleOutputCP": 3,
        "GetConsoleProcessList": 0,
        "GetConsoleScreenBufferInfoEx": 3,
        "GetConsoleSelectionInfo": 0,
        "GetConsoleTitle": 1,
        "GetConsoleWindow": 0,
        "GetCurrentConsoleFontEx": 0,
        "GetLargestConsoleWindowSize": 0,
        "GetNumberOfConsoleInputEvents": 0,
        "GetNumberOfConsoleMouseButtons": 0,
        "PeekConsoleInput": 0,
        "ReadConsole": 1,
        "ReadConsoleInput": 0,
        "ReadConsoleOutput": 0,
        "ReadConsoleOutputAttribute": 0,
        "ReadConsoleOutputCharacter": 0,
        "ScrollConsoleScreenBuffer": 0,
        "SetConsoleActiveScreenBuffer": 0,
        "SetConsoleCP": 0,
        "SetConsoleCursorInfo": 0,
        "SetConsoleCursorPosition": 0,
        "SetConsoleDisplayMode": 0,
        "SetConsoleHistoryInfo": 0,
        "SetConsoleMode": 3,
        "SetConsoleOutputCP": 0,
        "SetConsoleScreenBufferInfoEx": 0,
        "SetConsoleScreenBufferSize": 0,
        "SetConsoleTextAttribute": 0,
        "SetConsoleTitle": 0,
        "SetConsoleWindowInfo": 0,
        "SetCurrentConsoleFontEx": 0,
        "WriteConsole": 6,
        "WriteConsoleInput": 0,
        "WriteConsoleOutput": 0,
        "WriteConsoleOutputAttribute": 0,
        "WriteConsoleOutputCharacter": 0
    }
}

{
    "ver": "4.0",
    "name": "Microsoft.Windows.Console.Host.ApiUsed",
    "time": "2020-05-21T23:10:01.9337628Z",
    "ext": {
        "utc": {
            "aId": "20F1D9D6-2EE5-0005-A8B2-F520E52ED601",
            "shellId": 33786454731784195,
            "eventFlags": 257,
            "pgName": "WIN",
            "flags": 138414340,
            "providerGuid": "FE1FF234-1F09-50A8-D38D-C44FAB43E818",
            "loggingBinary": "conhost.exe",
            "epoch": "4107162",
            "seq": 165732
        },
        "os": {
            "bootId": 39,
            "name": "Windows",
            "ver": "10.0.19041.264.amd64fre.vb_release.191206-1406"
        },
        "app": {
            "id": "W:0000f519feec486de87ed73cb92d3cac802400000000!00004dfb1635860281c736b6bd5fe949217a7b55a0d4!conhost.exe",
            "ver": "2020/04/14:22:24:44!E16B7!conhost.exe",
            "asId": 6165
        },
        "protocol": {
            "devMake": "Microsoft Corporation",
            "devModel": "Surface Laptop 3",
            "msp": 2
        }
    },
    "data": {
        "AutoPosition": true,
        "HistoryNoDuplicates": false,
        "InsertMode": true,
        "LineSelection": true,
        "QuickEdit": true,
        "WindowAlpha": 255,
        "WrapText": true,
        "ColorTable": [
            0,
            12451840,
            48640,
            12500480,
            190,
            12452030,
            48830,
            12500670,
            4342338,
            16711680,
            65280,
            16776960,
            255,
            16711935,
            65535,
            16777215
        ],
        "CodePageInput": 437,
        "CodePageOutput": 437,
        "FontSizeX": 0,
        "FontSizeY": 16,
        "HotKey": 0,
        "ScreenBufferSizeX": 120,
        "ScreenBufferSizeY": 9001,
        "StartupFlags": 1025,
        "VirtualTerminalLevel": 1,
        "WindowSizeX": 120,
        "WindowSizeY": 40,
        "WindowOriginX": 0,
        "WindowOriginY": 0,
        "FontName": "Cascadia WinMetrics",
        "AllowAltF4Close": true,
        "ControlKeyShortcutsDisabled": false,
        "EnabledColorSelection": true,
        "FilterOnPaste": true,
        "TrimLeadingZeros": false,
        "LaunchFontName": "Cascadia WinMetrics",
        "CommandHistoriesNumber": 1,
        "CodePage": 437,
        "CursorSize": 25,
        "FontFamily": 54,
        "FontWeight": 400,
        "HistoryBufferSize": 50,
        "HistoryBuffersNumber": 4,
        "ScrollScale": 1,
        "FillAttribute": 7,
        "PopupFillAttribute": 245,
        "ShowWindow": 1
    }
}

{
    "ver": "4.0",
    "name": "Microsoft.Windows.Console.Host.ApiUsed",
    "time": "2020-05-21T23:10:01.9337607Z",
    "ext": {
        "utc": {
            "aId": "20F1D9D6-2EE5-0005-A8B2-F520E52ED601",
            "shellId": 33786454731784195,
            "eventFlags": 257,
            "pgName": "WIN",
            "flags": 138414340,
            "providerGuid": "FE1FF234-1F09-50A8-D38D-C44FAB43E818",
            "loggingBinary": "conhost.exe",
            "epoch": "4107162",
            "seq": 165731
        },
        "os": {
            "bootId": 39,
            "name": "Windows",
            "ver": "10.0.19041.264.amd64fre.vb_release.191206-1406"
        },
        "app": {
            "id": "W:0000f519feec486de87ed73cb92d3cac802400000000!00004dfb1635860281c736b6bd5fe949217a7b55a0d4!conhost.exe",
            "ver": "2020/04/14:22:24:44!E16B7!conhost.exe",
            "asId": 6165
        },
        "protocol": {
            "devMake": "Microsoft Corporation",
            "devModel": "Surface Laptop 3",
            "msp": 2
        }
    },
    "data": {
        "BashUsed": false,
        "CtrlPgUpPgDnUsed": false,
        "KeyboardTextEditingUsed": false,
        "KeyboardTextSelectionUsed": false,
        "CtrlShiftCProcUsed": 0,
        "CtrlShiftCRawUsed": 0,
        "CtrlShiftVProcUsed": 0,
        "CtrlShiftVRawUsed": 0,
        "QuickEditCopyProcUsed": 0,
        "QuickEditCopyRawUsed": 0,
        "QuickEditPasteProcUsed": 0,
        "QuickEditPasteRawUsed": 0,
        "LaunchedFromShortcut": true,
        "ProcessesConnected": [
            "cmd.exe"
        ],
        "ProcessesConnectedCount": [
            1
        ],
        "ProcessesConnectedCodesCount": [
            0
        ],
        "ProcessesConnectedFailedCodesCount": [
            0
        ],
        "ProcessesConnectedFailedOutsideCount": [
            0
        ],
        "StartedUsingAtSeconds": 1590102598,
        "EndedUsingAtSeconds": 1590102601,
        "ColorSelectionUsed": 0
    }
}

Three events:

image

Telemetry, Basic - 0 events

image

Terminal is more chatty -- it includes "i rendered my first byte! it took 100ms" and "i spawned a connection, there are 3 tabs open". I'm happy to send you these traces.

These are also suppressed when I change the diagnostic data setting to Basic.

image

@DHowett commented on GitHub (May 22, 2020): @nickjj: Yes, that's correct. I decided, though, to collect my own diagnostics before I sent this message: --- I just checked the Diagnostic Data Viewer, and it looks like nothing is coming out of the console host (OR TERMINAL) when Basic is set. Here's what I get in DDV when I close my console host in default "Enhanced" mode: <details> <summary>Telemetry, Enhanced - 3 events</summary> ```json { "ver": "4.0", "name": "Microsoft.Windows.Console.Host.ApiUsed", "time": "2020-05-21T23:10:01.9337642Z", "ext": { "utc": { "aId": "20F1D9D6-2EE5-0005-A8B2-F520E52ED601", "shellId": 33786454731784195, "eventFlags": 257, "pgName": "WIN", "flags": 138414340, "providerGuid": "FE1FF234-1F09-50A8-D38D-C44FAB43E818", "loggingBinary": "conhost.exe", "epoch": "4107162", "seq": 165733 }, "os": { "bootId": 39, "name": "Windows", "ver": "10.0.19041.264.amd64fre.vb_release.191206-1406" }, "app": { "id": "W:0000f519feec486de87ed73cb92d3cac802400000000!00004dfb1635860281c736b6bd5fe949217a7b55a0d4!conhost.exe", "ver": "2020/04/14:22:24:44!E16B7!conhost.exe", "asId": 6165 }, "protocol": { "devMake": "Microsoft Corporation", "devModel": "Surface Laptop 3", "msp": 2 } }, "data": { "AddConsoleAlias": 0, "AllocConsole": 1, "AttachConsole": 1, "CreateConsoleScreenBuffer": 0, "GenerateConsoleCtrlEvent": 0, "FillConsoleOutputAttribute": 0, "FillConsoleOutputCharacter": 0, "FlushConsoleInputBuffer": 0, "FreeConsole": 0, "GetConsoleAlias": 0, "GetConsoleAliases": 0, "GetConsoleAliasExesLength": 0, "GetConsoleAliasesLength": 0, "GetConsoleAliasExes": 0, "GetConsoleCP": 0, "GetConsoleCursorInfo": 0, "GetConsoleDisplayMode": 0, "GetConsoleFontSize": 0, "GetConsoleHistoryInfo": 0, "GetConsoleLangId": 1, "GetConsoleMode": 19, "GetConsoleOriginalTitle": 0, "GetConsoleOutputCP": 3, "GetConsoleProcessList": 0, "GetConsoleScreenBufferInfoEx": 3, "GetConsoleSelectionInfo": 0, "GetConsoleTitle": 1, "GetConsoleWindow": 0, "GetCurrentConsoleFontEx": 0, "GetLargestConsoleWindowSize": 0, "GetNumberOfConsoleInputEvents": 0, "GetNumberOfConsoleMouseButtons": 0, "PeekConsoleInput": 0, "ReadConsole": 1, "ReadConsoleInput": 0, "ReadConsoleOutput": 0, "ReadConsoleOutputAttribute": 0, "ReadConsoleOutputCharacter": 0, "ScrollConsoleScreenBuffer": 0, "SetConsoleActiveScreenBuffer": 0, "SetConsoleCP": 0, "SetConsoleCursorInfo": 0, "SetConsoleCursorPosition": 0, "SetConsoleDisplayMode": 0, "SetConsoleHistoryInfo": 0, "SetConsoleMode": 3, "SetConsoleOutputCP": 0, "SetConsoleScreenBufferInfoEx": 0, "SetConsoleScreenBufferSize": 0, "SetConsoleTextAttribute": 0, "SetConsoleTitle": 0, "SetConsoleWindowInfo": 0, "SetCurrentConsoleFontEx": 0, "WriteConsole": 6, "WriteConsoleInput": 0, "WriteConsoleOutput": 0, "WriteConsoleOutputAttribute": 0, "WriteConsoleOutputCharacter": 0 } } { "ver": "4.0", "name": "Microsoft.Windows.Console.Host.ApiUsed", "time": "2020-05-21T23:10:01.9337628Z", "ext": { "utc": { "aId": "20F1D9D6-2EE5-0005-A8B2-F520E52ED601", "shellId": 33786454731784195, "eventFlags": 257, "pgName": "WIN", "flags": 138414340, "providerGuid": "FE1FF234-1F09-50A8-D38D-C44FAB43E818", "loggingBinary": "conhost.exe", "epoch": "4107162", "seq": 165732 }, "os": { "bootId": 39, "name": "Windows", "ver": "10.0.19041.264.amd64fre.vb_release.191206-1406" }, "app": { "id": "W:0000f519feec486de87ed73cb92d3cac802400000000!00004dfb1635860281c736b6bd5fe949217a7b55a0d4!conhost.exe", "ver": "2020/04/14:22:24:44!E16B7!conhost.exe", "asId": 6165 }, "protocol": { "devMake": "Microsoft Corporation", "devModel": "Surface Laptop 3", "msp": 2 } }, "data": { "AutoPosition": true, "HistoryNoDuplicates": false, "InsertMode": true, "LineSelection": true, "QuickEdit": true, "WindowAlpha": 255, "WrapText": true, "ColorTable": [ 0, 12451840, 48640, 12500480, 190, 12452030, 48830, 12500670, 4342338, 16711680, 65280, 16776960, 255, 16711935, 65535, 16777215 ], "CodePageInput": 437, "CodePageOutput": 437, "FontSizeX": 0, "FontSizeY": 16, "HotKey": 0, "ScreenBufferSizeX": 120, "ScreenBufferSizeY": 9001, "StartupFlags": 1025, "VirtualTerminalLevel": 1, "WindowSizeX": 120, "WindowSizeY": 40, "WindowOriginX": 0, "WindowOriginY": 0, "FontName": "Cascadia WinMetrics", "AllowAltF4Close": true, "ControlKeyShortcutsDisabled": false, "EnabledColorSelection": true, "FilterOnPaste": true, "TrimLeadingZeros": false, "LaunchFontName": "Cascadia WinMetrics", "CommandHistoriesNumber": 1, "CodePage": 437, "CursorSize": 25, "FontFamily": 54, "FontWeight": 400, "HistoryBufferSize": 50, "HistoryBuffersNumber": 4, "ScrollScale": 1, "FillAttribute": 7, "PopupFillAttribute": 245, "ShowWindow": 1 } } { "ver": "4.0", "name": "Microsoft.Windows.Console.Host.ApiUsed", "time": "2020-05-21T23:10:01.9337607Z", "ext": { "utc": { "aId": "20F1D9D6-2EE5-0005-A8B2-F520E52ED601", "shellId": 33786454731784195, "eventFlags": 257, "pgName": "WIN", "flags": 138414340, "providerGuid": "FE1FF234-1F09-50A8-D38D-C44FAB43E818", "loggingBinary": "conhost.exe", "epoch": "4107162", "seq": 165731 }, "os": { "bootId": 39, "name": "Windows", "ver": "10.0.19041.264.amd64fre.vb_release.191206-1406" }, "app": { "id": "W:0000f519feec486de87ed73cb92d3cac802400000000!00004dfb1635860281c736b6bd5fe949217a7b55a0d4!conhost.exe", "ver": "2020/04/14:22:24:44!E16B7!conhost.exe", "asId": 6165 }, "protocol": { "devMake": "Microsoft Corporation", "devModel": "Surface Laptop 3", "msp": 2 } }, "data": { "BashUsed": false, "CtrlPgUpPgDnUsed": false, "KeyboardTextEditingUsed": false, "KeyboardTextSelectionUsed": false, "CtrlShiftCProcUsed": 0, "CtrlShiftCRawUsed": 0, "CtrlShiftVProcUsed": 0, "CtrlShiftVRawUsed": 0, "QuickEditCopyProcUsed": 0, "QuickEditCopyRawUsed": 0, "QuickEditPasteProcUsed": 0, "QuickEditPasteRawUsed": 0, "LaunchedFromShortcut": true, "ProcessesConnected": [ "cmd.exe" ], "ProcessesConnectedCount": [ 1 ], "ProcessesConnectedCodesCount": [ 0 ], "ProcessesConnectedFailedCodesCount": [ 0 ], "ProcessesConnectedFailedOutsideCount": [ 0 ], "StartedUsingAtSeconds": 1590102598, "EndedUsingAtSeconds": 1590102601, "ColorSelectionUsed": 0 } } ``` Three events: ![image](https://user-images.githubusercontent.com/189190/82615099-6cb1d600-9b7e-11ea-9c4b-0b3d7c620f58.png) </details> <details> <summary>Telemetry, Basic - 0 events</summary> ![image](https://user-images.githubusercontent.com/189190/82615121-7afff200-9b7e-11ea-992a-a7862dabfe99.png) </details> Terminal is more chatty -- it includes "i rendered my first byte! it took 100ms" and "i spawned a connection, there are 3 tabs open". I'm happy to send you these traces. _These are also suppressed when I change the diagnostic data setting to Basic._ ![image](https://user-images.githubusercontent.com/189190/82615312-f792d080-9b7e-11ea-9152-0eabf1a8ee0c.png)
Author
Owner

@DHowett commented on GitHub (May 22, 2020):

(And: I filed #6103 to remove this bit:

        "ProcessesConnected": [
            "cmd.exe"
        ],

)

@DHowett commented on GitHub (May 22, 2020): (And: I filed #6103 to remove this bit: ``` "ProcessesConnected": [ "cmd.exe" ], ``` )
Author
Owner

@nickjj commented on GitHub (May 22, 2020):

Thanks for the detailed response. It totally slipped my mind that the gathered data is available to browse at any time at the Windows level.

Maybe this is really a matter of documentation then? If that information were put forward it would likely put a lot of folks at ease.

Something like this dropped into the README "If you're using basic Windows telemetry, nothing is ever collected or sent to Microsoft from the Terminal app, and if you're using more in depth Windows telemetry settings you can see what's collected by going to your Windows privacy settings".

Or perhaps under a FAQ / wiki for the question of "Why isn't there a telemetry option to toggle?".

@nickjj commented on GitHub (May 22, 2020): Thanks for the detailed response. It totally slipped my mind that the gathered data is available to browse at any time at the Windows level. Maybe this is really a matter of documentation then? If that information were put forward it would likely put a lot of folks at ease. Something like this dropped into the README "If you're using basic Windows telemetry, nothing is ever collected or sent to Microsoft from the Terminal app, and if you're using more in depth Windows telemetry settings you can see what's collected by going to your Windows privacy settings". Or perhaps under a FAQ / wiki for the question of "Why isn't there a telemetry option to toggle?".
Author
Owner

@DHowett commented on GitHub (May 22, 2020):

That's excellent. Filed #6118. Thanks 😄

@DHowett commented on GitHub (May 22, 2020): That's excellent. Filed #6118. Thanks :smile:
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#7387