microsoft/terminal
The new Windows Terminal and the original Windows console host, all in the same place!
How terminal is put together
This is the Microsoft Windows Terminal / OpenConsole repository, a Windows-native terminal emulator and console host written primarily in C++ with C++/WinRT and XAML for the UI layer. The visible index covers repo-root build orchestration: an MSBuild-based solution (OpenConsole.slnx) with shared Directory.Build.props/targets, common pre/post build property sheets under src/, and a vcpkg-based C++ dependency manager. Supporting infrastructure includes Azure DevOps YAML pipelines (CI, fuzzing, PGO, release/one-branch nightlies) under build/pipelines/, PowerShell developer tooling under tools/, vendored open-source headers under oss/, and conhost/console driver interop protocol headers under dep/Console/. Data flow is typical of a terminal app: a terminal UI front-end exchanges console API messages (conmsg levels 1-3, ConIoSrv) with a console host backend over defined wire protocols declared in dep/Console/.
Languages
Frameworks
Infrastructure
Major components
OpenConsole / conhost core (src/, dep/Console/)
The console host and terminal engine whose interop wire protocol (conapi.h, conmsgl1-l3.h, ConIoSrv.h, condrv.h) is shared via headers in dep/Console/.
Shared build system (Directory.Build.props/.targets, src/common.build.*.props, common.openconsole.props)
Centralizes compiler settings, C++/WinRT integration (cppwinrt.build.pre/post.props), unit-test props, and NuGet version management for all projects.
Feature staging (src/features.xml, tools/Generate-FeatureStagingHeader.ps1, build/rules/GenerateFeatureFlags.proj)
Declares experimental features in XML and generates staged feature-flag headers at build time.
CI/CD pipelines (build/pipelines/ including ci.yml, fuzz.yml, pgo.yml, ob-release.yml, 1espt-nightly.yml)
Defines Azure DevOps builds, fuzzing runs, PGO training, localization submissions, and signed release builds.
Developer tooling (tools/ including razzle.cmd, bcz.cmd, bx.ps1, OpenConsole.psm1, runut/runft/runuia cmdlets)
PowerShell/cmd wrapper scripts for building, running unit/functional/UIA tests, debugging, and generating code from JSON/XML sources.
Vendored third-party code (oss/ - chromium, interval_tree, pcg, stb, wyhash, xorg_apps_rgb)
Pinned external header-only libraries tracked via cgmanifest.json for upstream attribution.
Test infrastructure (build/Helix/, src/unit.tests.*.runsettings, src/common.build.tests.props, dep/WinAppDriver/)
Helix-based distributed test execution helpers plus UI automation testing via bundled WinAppDriver binaries.
Policy & localization (policies/WindowsTerminal.admx, build/config/LocConfig.xml, daily-loc-submission.yml, tools/ConvertTo-PseudoLocalization.ps1)
Group Policy template definitions and localization string management/submission workflows.
This week centered on refreshing the settings screen with a new card-based design plus routine compiler-warning cleanup.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
This week centered on refreshing the settings screen with a new card-based design plus routine compiler-warning cleanup.
Week of 2026-08-17
A quieter week with targeted fixes to internal reporting tools and performance testing.
Week of 2026-08-10
A busy week of robustness work: security hardening enabled everywhere, smoother handling of Chinese input methods, and small visual polish.
Week of 2026-08-03
ConPTY reliability was the focus, with timeouts added so embedded terminals can't hang forever, alongside dependency updates and keyboard fixes.
Week of 2026-07-27
A broad week covering keyboard encoding fixes for international users, groundwork for saving window layouts, and general code hygiene.
Over the past five weeks the Windows Terminal team has focused on improving keyboard and text-input reliability (especially for East Asian input methods), hardening ConPTY's startup and communication behavior, and modernizing internal code. A notable theme is preparation for per-window settings, including porting reusable settings UI components. Housekeeping work like compiler cleanups, tooling updates, and localization refreshes rounds out each week.
Week by week
2026-08-24This week centered on refreshing the settings screen with a new card-based design plus routine compiler-warning cleanup.latest2 changes
Feature
New settings cards
The settings interface now uses redesigned 'card' components that can expand to show more options, giving it a cleaner look.
Chore
Compiler warning cleanup
Removed some no-longer-needed instructions that told the compiler to ignore certain warnings, keeping the codebase tidy.
2026-08-17A quieter week with targeted fixes to internal reporting tools and performance testing.2 changes
Fix
Keyboard reporting fixes
Corrected two issues in how the keyboard layer reports events internally.
Chore
Performance test fixes
Repaired automated tests that measure program performance so they run correctly again.
2026-08-10A busy week of robustness work: security hardening enabled everywhere, smoother handling of Chinese input methods, and small visual polish.6 changes
Refactor
Per-window settings groundwork
Internal changes were made to prepare for letting each terminal window have its own settings.
Fix
Chinese IME visual fix
Fixed stray visual glitches that appeared when typing with the QQ Wubi Chinese input method.
Fix
Spelling checker workaround
Added a workaround for a bug in the automated spelling-checking tool used by the project.
Chore
Security hardening in all builds
Enabled extra memory-safety protections in every version of the app, including early 'canary' builds.
Refactor
Faster ConPTY startup
Terminal sessions started through automation now launch faster because the app no longer waits for an optional handshake at startup.
Refactor
Removed new-tab animation
Removed the little animation when opening a new tab to simplify the code.
2026-08-03ConPTY reliability was the focus, with timeouts added so embedded terminals can't hang forever, alongside dependency updates and keyboard fixes.5 changes
Feature
Startup timeout for embedded terminals
If another app embeds a terminal session and something stalls, the connection now times out after five seconds instead of hanging.
Chore
Toolchain requirement cleanup
Removed an old compatibility setting that's no longer needed since the build requires the newest Visual Studio.
Chore
Updated bundled package manager
Bumped the version of the package-management tooling the project bundles.
Fix
No more pointless retries
Stopped retrying a status check when the host application on the other end never responds.
Fix
Key auto-repeat fix
Fixed a problem where holding down a key didn't produce the expected repeated keystrokes.
2026-07-27A broad week covering keyboard encoding fixes for international users, groundwork for saving window layouts, and general code hygiene.6 changes
Fix
Keyboard encoding fixes
Resolved several issues with how special keystrokes are encoded so international layouts behave correctly.
Docs
Settings schema additions
Added a new saved setting option ('persistedLayoutAndContent') with documentation describing what it does.
Refactor
Untangled includes
Cleaned up circular file dependencies in the settings code to make maintenance easier.
Chore
Localization updates
Refreshed translated text for supported languages from the latest localization batch.
Fix
Composition timing fix
Fixed an issue where finishing a text composition (like pinyin input) delivered characters out of order.
Refactor
Code style improvements
Applied a standard C++ idiom for initializing settings values directly where they're declared.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 0 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required