The new Windows Terminal and the original Windows console host, all in the same place!
This report presents the forensic synthetic code analysis of microsoft/terminal, a C++ project with 103,945 GitHub stars. SynthScan v2.0 examined 354,825 lines of code across 1395 source files, recording 1309 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 3.9 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1309 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/WindbgExtension.js | 1 | COMMENT | |
| LOW | …Y/GUIConsole/GUIConsole.WPF/Properties/AssemblyInfo.cs | 21 | // COM, set the ComVisible attribute to true on that type. | COMMENT |
| LOW | …Y/GUIConsole/GUIConsole.WPF/Properties/AssemblyInfo.cs | 41 | )] | COMMENT |
| LOW | …onsole/GUIConsole.WPF/Properties/Resources.Designer.cs | 1 | //------------------------------------------------------------------------------ | COMMENT |
| LOW | samples/ConPTY/GUIConsole/GUIConsole.ConPTY/Terminal.cs | 21 | /// A stream of VT-100-enabled output from the console. | COMMENT |
| LOW | samples/ConPTY/MiniTerm/MiniTerm/Program.cs | 1 | using System; | COMMENT |
| LOW | …es/ConPTY/MiniTerm/MiniTerm/Properties/AssemblyInfo.cs | 21 | COMMENT | |
| LOW | samples/ConPTY/EchoCon/EchoCon/stdafx.h | 1 | // stdafx.h : include file for standard system include files, | COMMENT |
| LOW | samples/ConPTY/EchoCon/EchoCon/targetver.h | 1 | #pragma once | COMMENT |
| LOW | samples/ConPTY/EchoCon/EchoCon/stdafx.cpp | 1 | // stdafx.cpp : source file that includes just the standard includes | COMMENT |
| LOW | scratch/ScratchIslandApp/WindowExe/pch.h | 21 | #define WIN32_LEAN_AND_MEAN | COMMENT |
| LOW | scratch/ScratchIslandApp/WindowExe/pch.h | 41 | COMMENT | |
| LOW | scratch/ScratchIslandApp/WindowExe/pch.h | 61 | // * Media for ScaleTransform | COMMENT |
| LOW | scratch/ScratchIslandApp/WindowExe/pch.h | 81 | #include <WinUser.h> | COMMENT |
| LOW | scratch/ScratchIslandApp/WindowExe/SampleMain.cpp | 1 | // Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | scratch/ScratchIslandApp/WindowExe/SampleMain.cpp | 81 | // cause WT to start with Ctrl-C disabled. This wouldn't matter, because it's a Windows-subsystem | COMMENT |
| LOW | scratch/ScratchIslandApp/WindowExe/pch.cpp | 1 | // Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | scratch/ScratchIslandApp/WindowExe/SampleAppHost.cpp | 61 | COMMENT | |
| LOW | scratch/ScratchIslandApp/WindowExe/resource.h | 1 | //{{NO_DEPENDENCIES}} | COMMENT |
| LOW | scratch/ScratchIslandApp/WindowExe/resource.h | 21 | #ifndef APSTUDIO_READONLY_SYMBOLS | COMMENT |
| LOW | …atch/ScratchIslandApp/WindowExe/SampleIslandWindow.cpp | 201 | OnSize(size.cx, size.cy); | COMMENT |
| LOW | scratch/ScratchIslandApp/SampleApp/pch.h | 1 | // Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | scratch/ScratchIslandApp/SampleApp/pch.h | 21 | // Windows::UI::Xaml::Media::Animation::IStoryboard::GetCurrentTime | COMMENT |
| LOW | scratch/ScratchIslandApp/SampleApp/pch.h | 41 | #include <winrt/Windows.UI.Xaml.Data.h> | COMMENT |
| LOW | scratch/ScratchIslandApp/SampleApp/pch.h | 61 | COMMENT | |
| LOW | scratch/ScratchIslandApp/SampleApp/pch.cpp | 1 | // Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | scratch/ScratchIslandApp/SampleApp/dll/pch.h | 1 | // Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | scratch/ScratchIslandApp/SampleApp/dll/pch.cpp | 1 | // Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | dep/Console/winconp.h | 61 | #define CONSOLE_REGISTRY_FONTFAMILY L"FontFamily" | COMMENT |
| LOW | dep/Console/winconp.h | 81 | #define CONSOLE_REGISTRY_WORD_DELIM L"WordDelimiters" | COMMENT |
| LOW | dep/Console/winconp.h | 101 | #define CONSOLE_REGISTRY_COPYCOLOR L"CopyColor" | COMMENT |
| LOW | dep/Console/winconp.h | 461 | UnregisterConsoleIME( | COMMENT |
| LOW | dep/Console/winconp.h | 481 | #define CONSOLE_OUTPUT_STRING L"CONOUT$" | COMMENT |
| LOW | dep/Console/winconp.h | 601 | #define PID_CONSOLE_WRAPTEXT 2 | COMMENT |
| LOW | dep/Console/winconp.h | 661 | // | COMMENT |
| LOW | dep/Console/condrv.h | 21 | Kernel and user modes. | COMMENT |
| LOW | dep/Console/condrv.h | 61 | #define CD_IO_OBJECT_TYPE_CURRENT_OUTPUT 0x02 | COMMENT |
| LOW | dep/Console/ntcon.h | 1 | // | COMMENT |
| LOW | dep/Console/ntcon.h | 21 | COMMENT | |
| LOW | oss/pcg/include/pcg_random.hpp | 1 | // PCG Random Number Generation for C++ | COMMENT |
| LOW | oss/stb/stb_rect_pack.h | 1 | // stb_rect_pack.h - v1.01 - public domain - rectangle packing | COMMENT |
| LOW | oss/stb/stb_rect_pack.h | 21 | // No memory allocations; uses qsort() and assert() from stdlib. | COMMENT |
| LOW | oss/stb/stb_rect_pack.h | 41 | // | COMMENT |
| LOW | oss/stb/stb_rect_pack.h | 61 | ////////////////////////////////////////////////////////////////////////////// | COMMENT |
| LOW | oss/stb/stb_rect_pack.h | 81 | typedef struct stbrp_context stbrp_context; | COMMENT |
| LOW | oss/stb/stb_rect_pack.h | 101 | // You should not try to access the 'rects' array from another thread | COMMENT |
| LOW | oss/stb/stb_rect_pack.h | 121 | stbrp_coord w, h; | COMMENT |
| LOW | oss/stb/stb_rect_pack.h | 141 | // Note: to guarantee best results, either: | COMMENT |
| LOW | oss/stb/stb_rect_pack.h | 201 | // | COMMENT |
| LOW | oss/stb/stb_rect_pack.h | 381 | } | COMMENT |
| LOW | oss/chromium/base/numerics/safe_math_clang_gcc_impl.h | 1 | // Copyright 2017 The Chromium Authors. All rights reserved. | COMMENT |
| LOW | oss/chromium/base/numerics/safe_math_arm_impl.h | 21 | COMMENT | |
| LOW | oss/chromium/base/numerics/clamped_math_impl.h | 1 | // Copyright 2017 The Chromium Authors. All rights reserved. | COMMENT |
| LOW | oss/chromium/base/numerics/safe_conversions.h | 1 | // Copyright 2014 The Chromium Authors. All rights reserved. | COMMENT |
| LOW | oss/chromium/base/numerics/safe_conversions.h | 281 | constexpr StrictNumeric(Src value) // NOLINT(runtime/explicit) | COMMENT |
| LOW | oss/chromium/base/numerics/checked_math_impl.h | 1 | // Copyright 2017 The Chromium Authors. All rights reserved. | COMMENT |
| LOW | oss/chromium/base/numerics/safe_math.h | 1 | // Copyright 2017 The Chromium Authors. All rights reserved. | COMMENT |
| LOW | oss/chromium/base/numerics/safe_conversions_impl.h | 1 | // Copyright 2014 The Chromium Authors. All rights reserved. | COMMENT |
| LOW | oss/chromium/base/numerics/safe_conversions_impl.h | 221 | // truncated to fit the mantissa of the floating point. The direction of | COMMENT |
| LOW | oss/chromium/base/numerics/safe_math_shared_impl.h | 1 | // Copyright 2017 The Chromium Authors. All rights reserved. | COMMENT |
| 1176 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | oss/chromium/base/numerics/clamped_math.h | 44 | // This is not an explicit constructor because we want a seamless conversion | COMMENT |
| MEDIUM | oss/chromium/base/numerics/checked_math.h | 44 | // This is not an explicit constructor because we want a seamless conversion | COMMENT |
| MEDIUM | src/renderer/atlas/BackendD3D.cpp | 308 | // it being simple to implement and robust against more peculiar fonts with unusually large/small descenders, et | COMMENT |
| MEDIUM | src/renderer/atlas/BackendD2D.cpp | 678 | // it being simple to implement and robust against more peculiar fonts with unusually large/small descenders, et | COMMENT |
| MEDIUM | src/renderer/atlas/BackendD2D.cpp | 693 | // color, it is seamless. | COMMENT |
| MEDIUM | src/inc/til/color.h | 22 | // Here, we leverage the spec-legality of using unions for type conversions and the | COMMENT |
| LOW | src/tools/vtpipeterm/main.cpp | 13 | #else // Building inside Windows, just use the kernel32 ones. | COMMENT |
| MEDIUM | src/types/CodepointWidthDetector.cpp | 22 | // Fundamentally, the trie is generated by taking all 1114112 codepoints and their assigned values and deduplicating | COMMENT |
| MEDIUM | src/types/UiaTextRangeBase.cpp | 985 | // so leverage size_t(-1) being converted to 0xffff... | COMMENT |
| MEDIUM | src/host/input.cpp | 359 | // Going back to the Win 7 behavior then should make shutdown a lot more robust. | COMMENT |
| MEDIUM | src/terminal/parser/base64.cpp | 47 | // Is 4 enough? Certainly not. 6 on the other hand is just way too much. Clearly 5 is just right. | COMMENT |
| MEDIUM | src/terminal/parser/ft_fuzzer/fuzzing_directed.h | 370 | // is designed to leverage the & operator overload to have CFuzzArray | COMMENT |
| MEDIUM | src/interactivity/win32/windowio.cpp | 988 | // so they can be faithfully represented as a user "typing" into the client application. The vision would b | COMMENT |
| LOW | src/cascadia/TerminalApp/TabManagement.cpp | 611 | // GH#11107 - Always just set the item directly first so that if | COMMENT |
| MEDIUM | src/cascadia/TerminalSettingsModel/JsonUtils.h | 1010 | // Cleverly leverage EnumMapper to do the heavy lifting. | COMMENT |
| MEDIUM | …erminalSettingsModel/CascadiaSettingsSerialization.cpp | 1137 | // will fail; we can leverage this to detect when they are equivalent and delete the user's duplicate copies. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | doc/specs/#13000 - In-process ConPTY.md | 356 | // ┌──────────────────┐ | COMMENT |
| MEDIUM⚡ | doc/specs/#13000 - In-process ConPTY.md | 360 | // ╭ ├──────────────────┤ ├── VT scrollback (partially addressed) | COMMENT |
| MEDIUM⚡ | doc/specs/#13000 - In-process ConPTY.md | 364 | // Console Buffer ──┤ ├──────────────────┤ ├──── VT Viewport (top y = 1) | COMMENT |
| MEDIUM⚡ | doc/specs/#13000 - In-process ConPTY.md | 368 | // ╰ └──────────────────┘ | COMMENT |
| MEDIUM⚡ | doc/specs/#13000 - In-process ConPTY.md | 374 | // ┌──────────────────┐ ╮ | COMMENT |
| MEDIUM⚡ | doc/specs/#13000 - In-process ConPTY.md | 378 | // ╭ ├──────────────────┤ ╮ ╯ | COMMENT |
| MEDIUM⚡ | doc/specs/#13000 - In-process ConPTY.md | 382 | // ╰ └──────────────────┘ ╯ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …Console/GUIConsole.WPF/Properties/Settings.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | …onsole/GUIConsole.WPF/Properties/Resources.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | src/tools/ColorTool/ColorTool/Resources.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ecs/#885 - Terminal Settings Model/Actions Addendum.md | 44 | ### Step 1: Consolidating actions | COMMENT |
| LOW | …ecs/#885 - Terminal Settings Model/Actions Addendum.md | 100 | ### Step 2: Querying actions | COMMENT |
| LOW | …ecs/#885 - Terminal Settings Model/Actions Addendum.md | 142 | ### Step 3: Settings UI needs | COMMENT |
| LOW⚡ | src/terminal/parser/InputStateMachineEngine.cpp | 989 | // Step 3: check if mouse moved | COMMENT |
| LOW⚡ | src/terminal/parser/InputStateMachineEngine.cpp | 995 | // Step 4: update internal state before returning, even if we couldn't fully understand this | COMMENT |
| LOW | src/terminal/parser/InputStateMachineEngine.cpp | 889 | // Step 1: Translate which button was affected | COMMENT |
| LOW | src/terminal/parser/InputStateMachineEngine.cpp | 945 | // Step 2: Decide whether to set or clear that button's bit | COMMENT |
| LOW | src/server/ObjectHeader.h | 27 | // NOTE: This class must have a virtual method for the stored "this" pointers to match what we're actually looking f | COMMENT |
| LOW | src/cascadia/TerminalConnection/AzureConnection.cpp | 783 | //// Step 8: connecting to said terminal | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/tools/ConsoleBench/main.cpp | 448 | static constexpr std::string_view s_payload_utf8{ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusm | CODE |
| LOW⚡ | src/tools/ConsoleBench/main.cpp | 448 | static constexpr std::string_view s_payload_utf8{ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusm | CODE |
| LOW⚡ | src/tools/ConsoleBench/main.cpp | 450 | static constexpr std::wstring_view s_payload_utf16{ L"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do ei | CODE |
| LOW⚡ | src/tools/ConsoleBench/main.cpp | 450 | static constexpr std::wstring_view s_payload_utf16{ L"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do ei | CODE |
| LOW⚡ | src/terminal/parser/ft_fuzzer/VTCommandFuzzer.cpp | 117 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore m | CODE |
| LOW⚡ | src/terminal/parser/ft_fuzzer/VTCommandFuzzer.cpp | 117 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore m | CODE |
| LOW⚡ | src/terminal/parser/ft_fuzzer/VTCommandFuzzer.cpp | 118 | "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem ape | CODE |
| LOW⚡ | src/terminal/parser/ft_fuzzer/VTCommandFuzzer.cpp | 118 | "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem ape | CODE |
| LOW⚡ | src/terminal/parser/ft_fuzzer/VTCommandFuzzer.cpp | 119 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore m | CODE |
| LOW⚡ | src/terminal/parser/ft_fuzzer/VTCommandFuzzer.cpp | 119 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore m | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/terminal/parser/InputStateMachineEngine.cpp | 989 | // Step 3: check if mouse moved | COMMENT |
| LOW⚡ | src/terminal/parser/InputStateMachineEngine.cpp | 995 | // Step 4: update internal state before returning, even if we couldn't fully understand this | COMMENT |
| LOW | src/terminal/parser/InputStateMachineEngine.cpp | 889 | // Step 1: Translate which button was affected | COMMENT |
| LOW | src/terminal/parser/InputStateMachineEngine.cpp | 945 | // Step 2: Decide whether to set or clear that button's bit | COMMENT |
| LOW | src/interactivity/win32/windowio.cpp | 343 | // we need to check if there is an active popup because otherwise they won't be able to receive shift+key events | COMMENT |
| LOW | src/cascadia/TerminalCore/TerminalSelection.cpp | 480 | // so we need to check if we're pointing to that one before returning it. | COMMENT |
| LOW | src/cascadia/WindowsTerminal/AppHost.cpp | 563 | // We need to check if the top left point of the titlebar of the window is within any screen | COMMENT |
| LOW | …c/cascadia/TerminalSettingsModel/GlobalAppSettings.cpp | 437 | // so we need to check if they were explicitly set | COMMENT |
| LOW | src/cascadia/TerminalConnection/AzureConnection.cpp | 783 | //// Step 8: connecting to said terminal | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/inc/til/mutex.h | 70 | // ensures you don't forget to do so, unlike with std::mutex/std::shared_mutex. | COMMENT |
| LOW | …olorTool/ConsoleTargets/TerminalSchemeConsoleTarget.cs | 13 | Console.WriteLine("Copy and paste the following text into the schemes array of your Windows Terminal setting | CODE |
| MEDIUM | src/terminal/adapter/InteractDispatch.cpp | 77 | // It's worth noting that all of this is bad design in either case. | COMMENT |
| LOW | src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp | 661 | // GH#5209 - make sure to use MONITOR_DEFAULTTONEAREST, so that this will | COMMENT |
| LOW | src/cascadia/TerminalApp/AppCommandlineArgs.cpp | 397 | // GH#10070 - make sure to not use the MRU order when switching | COMMENT |
| LOW | src/cascadia/TerminalControl/TermControl.cpp | 2823 | // GH#2061 - make sure to account for the size the padding _will be_ scaled to | COMMENT |
| LOW | src/cascadia/TerminalControl/TermControl.cpp | 2859 | // GH#2061 - make sure to account for the size the padding _will be_ scaled to | COMMENT |
| LOW | src/cascadia/TerminalConnection/ConptyConnection.cpp | 484 | // GH#11556 - make sure to format the error code to this string as an UNSIGNED int | COMMENT |
| LOW | src/cascadia/TerminalConnection/ConptyConnection.cpp | 521 | // GH#11556 - make sure to format the error code to this string as an UNSIGNED int | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tools/WindbgExtension.js | 24 | return host.namespace.Debugger.Utility.Control.ExecuteCommand("dx Microsoft::Console::Interactivity::ServiceLocator: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/tools/vttests/test-unicode.py | 16 | CODE | |
| LOW | src/tools/vttests/test-unicode.py | 17 | CODE | |
| LOW | src/tools/vttests/test-unicode.py | 18 | CODE | |
| LOW | src/tools/vttests/burrito.py | 17 | CODE | |
| LOW | src/tools/vttests/template.py | 8 | CODE | |
| LOW | src/tools/vttests/template.py | 9 | CODE | |
| LOW | src/tools/vttests/template.py | 10 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | doc/specs/#1595 - Suggestions UI/dump-workflows.py | 28 | print(f"Error parsing {filename}: {e}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | doc/specs/#1595 - Suggestions UI/dump-workflows.py | 6 | CODE |