Windows Terminal
Windows Terminal is a modern, open-source terminal emulator developed by Microsoft for Windows 10 and later versions, serving as a unified host application for multiple command-line shells such as Command Prompt, PowerShell, and bash via the Windows Subsystem for Linux (WSL).[1][2] It supports multi-tabbed and multi-pane interfaces, allowing users to run and switch between different shells simultaneously in a single window, with features like tab tear-out and drag-and-drop reorganization for enhanced productivity.[1] Announced on May 6, 2019, Windows Terminal was designed to provide a fresh, efficient user interface for command-line tools while maintaining backward compatibility with the legacy Windows Console Host, addressing limitations in the traditional console experience such as poor Unicode support and lack of customization.[2] The project is hosted on GitHub under the MIT license, encouraging community contributions, and its initial preview releases became available in the Microsoft Store during the summer of 2019, with version 1.0 launching on May 19, 2020.[3][4] As of October 2025, the stable version is 1.23, incorporating GPU-accelerated text rendering for smooth performance, support for ligatures and emojis, and extensive customization options including color schemes, themes, keyboard shortcuts, and background images or GIFs.[5] Key aspects of Windows Terminal include its ability to manage multiple profiles for different shells or environments—such as Azure Cloud Shell or Ubuntu—each configurable independently, and command-line arguments for launching specific configurations, like splitting panes horizontally or vertically.[1] It also features Unicode and UTF-8 character support out of the box, along with search functionality within output and integration with Windows features like DirectWrite for font rendering.[1] Available for free via the Microsoft Store, GitHub releases, or package managers like Winget, Windows Terminal has become the default terminal in Windows 11, replacing the older console host for many built-in applications starting with version 1.11.[6][7]Introduction
Purpose and Capabilities
Windows Terminal is an open-source, multi-tabbed terminal application developed by Microsoft for Windows 10 and later versions, serving as a modern host for command-line interfaces.[2][1] It enables users to run multiple shells simultaneously within a unified environment, replacing the need for separate windows for each tool.[1] Among its core capabilities, Windows Terminal supports hosting various shells, including the Windows Command Prompt, PowerShell, Windows Subsystem for Linux distributions such as bash on Ubuntu, and Azure Cloud Shell.[1] It provides features like multiple tabs and split panes for organizing workflows, full Unicode and UTF-8 encoding to handle diverse characters including emojis and international languages, and GPU-accelerated text rendering using DirectWrite for smooth performance.[1] The application's design goals center on enhancing developer productivity by consolidating fragmented console experiences into a single, extensible host that supports third-party shells and custom configurations.[2][1] This emphasis on extensibility allows for integration with a wide range of command-line tools without being tied to specific Microsoft ecosystems.[3] Initially, Windows Terminal was launched to overcome key limitations of the legacy Windows Console Host (conhost.exe), such as the absence of tabbed interfaces and limited customization options, providing a more versatile alternative for modern development needs.[2] It was first announced at Microsoft Build 2019 as part of Microsoft's push toward open-source command-line innovations.[2]Relation to Legacy Windows Consoles
The Windows Console Host, known as conhost.exe, has served as the primary console host for Windows since the introduction of Windows NT, providing a basic user interface for command-line applications while handling input/output operations through the Windows Console APIs.[8] This legacy system was originally integrated into the Client/Server Runtime Subsystem (csrss.exe) but was separated into its own process for improved security and isolation, yet it remained limited to single-window instances without support for tabs or multiple panes within a single interface.[8] Additionally, conhost.exe relied on CPU-based text rendering, which lacked GPU acceleration, and offered only rudimentary Unicode support, primarily through UCS-2 encoding with incomplete handling of complex scripts and bidirectional text.[9][10] Windows Terminal represents a significant evolution by decoupling the user interface from the backend console infrastructure, utilizing the pseudoconsole (ConPTY) API to assume control of rendering and input handling while allowing conhost.exe to continue managing API compatibility and backend processing for legacy applications.[8] This architecture enables Terminal to function as a modern frontend, supporting advanced features like tabbed interfaces and split views, without disrupting the existing ecosystem of command-line tools that depend on the traditional console host.[8] As a result, Terminal addresses key shortcomings of conhost.exe, such as its restriction to fixed raster fonts that performed poorly on high-DPI displays due to inefficient scaling and blurring, by integrating DirectWrite for vector-based font rendering and better display adaptability.[9] Microsoft's transition to Windows Terminal as the default console experience began with Windows 11 version 22H2, where it replaced conhost.exe for new console invocations to provide users with enhanced performance and usability, while preserving backward compatibility by retaining conhost.exe for applications explicitly requiring the legacy host.[11] This shift was motivated by the recognition that the aging conhost.exe had reached its architectural limits in supporting modern developer workflows, particularly in areas like efficient rendering and internationalization.[11] For instance, Terminal's GPU-accelerated rendering via DirectX markedly improves text output speed and smoothness compared to the CPU-bound approach of the legacy host.[3]History
Announcement and Early Development
Windows Terminal was publicly unveiled by Microsoft on May 6, 2019, during the keynote at the Build developer conference in Seattle, as a key component of the company's efforts to modernize the Windows command-line experience.[2] The announcement highlighted the terminal's role in unifying support for multiple shells, including Command Prompt, PowerShell, and the Windows Subsystem for Linux (WSL), while addressing longstanding limitations of the legacy Windows Console Host, such as its lack of tabbed interfaces and modern rendering capabilities.[2] This reveal positioned Windows Terminal as an open-source project aimed at enhancing productivity for developers and power users.[2] Development of Windows Terminal originated internally at Microsoft, with initial prototyping commencing in December 2017 as part of explorations into advanced user interface frameworks like WinUI.[12] These early efforts focused on creating a robust foundation for hosting command-line applications, integrating with evolving Windows components such as the pseudo-console (conpty) for better process isolation.[12] By early 2019, the project had progressed sufficiently for the source code to be made available on GitHub on May 3, marking the transition from internal work to public collaboration.[13] The first public preview build was released on June 21, 2019, through the Microsoft Store, allowing early adopters to test core functionalities under Windows 10 version 18362 or later.[14] The project was spearheaded by members of Microsoft's Windows Console team, including Senior Product Manager Kayla Cinnamon, who authored the initial announcement, and engineering lead Dustin L. Howett, who contributed to the core architecture for text rendering and shell integration.[2][15] Early priorities centered on developing a performant engine capable of GPU-accelerated text rendering and seamless hosting of diverse shells, laying the groundwork for features like multi-tab support and extensibility.[2] Upon launch, the GitHub repository at microsoft/terminal was released under the MIT license, inviting community contributions to refine and expand capabilities, such as improved emoji rendering and customization options.[3] This open-source approach fostered rapid iteration, with early feedback driving enhancements to accessibility and cross-platform compatibility within the Windows ecosystem.[2]Major Releases and Updates
Windows Terminal's first stable release, version 1.0, arrived on May 19, 2020, and was made available through the Microsoft Store for automatic updates, marking the transition from preview builds to a production-ready application.[4] This version established core functionalities like multi-tab support and GPU-accelerated rendering, and it later became the default terminal experience in Windows 11 starting with the 22H2 update in October 2022.[16] Subsequent milestone updates built on this foundation with targeted enhancements. Version 1.3, released in stable form in September 2020 following its August preview, introduced the command palette for quick search and navigation across tabs and settings, along with advanced tab switching and per-profile tab colors.[17] In 2021, version 1.9 added Quake mode, enabling a quick-toggle dropdown window activated by a global hotkey, improving accessibility for frequent command-line users.[18] Later releases focused on integration and usability refinements. Version 1.18, stable in mid-2023 after its May preview, introduced portable mode and minor WSL improvements, such as ignoring specific distributions like rancher-desktop in detection.[19] By February 2025, version 1.22 introduced support for Sixel images and a rewritten console hosting implementation.[20] In 2025, development accelerated with significant architectural shifts. The Preview 1.23 release in February brought a new windowing architecture, featuring robust system tray icons for quick access and advanced window actions like snapping and grouping, aimed at reducing latency in multi-monitor setups and allowing users to manage independent terminal instances more flexibly without relying solely on tabs.[21] The Preview 1.24 release in August introduced features like a multilingual command palette and improved extensions management.[22] The stable 1.23 release in September incorporated the new windowing architecture along with critical fixes, including improved tab icon rendering and customizable bell notification settings, ensuring stability across profiles.[21] Updates are delivered automatically via the Microsoft Store for stable channel users, with a dedicated preview channel offering early access to experimental features for testers.[6] By November 2025, the project had surpassed 50 releases since its inception, incorporating thousands of community pull requests from open-source contributors on GitHub to refine performance and add niche capabilities.[7]Features
User Interface Elements
Windows Terminal features a robust tab and pane system for organizing multiple shell sessions within a single window. Users can open a new tab using the keyboard shortcutCtrl+Shift+T, which launches the default profile or a specified one via the dropdown menu.[23] Tabs support drag-and-drop rearrangement and can be torn out to create independent windows, a feature introduced in preview with version 1.18 in 2023 and stabilized in subsequent releases.[1] Within a tab, panes enable side-by-side execution of commands; splitting creates a new pane either vertically (to the right of the focused pane using Alt+Shift++) or horizontally (below using Alt+Shift+-), allowing efficient multitasking without switching contexts.[24] Navigation between panes is facilitated by Alt combined with arrow keys, while resizing uses Alt+Shift with arrows for precise adjustments.[23]
Window management in Windows Terminal emphasizes flexibility for advanced workflows. Multi-window support, enhanced by a new windowing architecture in version 1.23 released in 2025, allows users to manage multiple Terminal instances seamlessly, including dragging tabs between windows.[21] A Quake-style drop-down mode enables quick access by toggling the Terminal from the top of the screen using the command wt -w _quake or a customizable shortcut, ideal for transient command execution.[21] When minimized, the application places an icon in the system tray for easy restoration and access to recent sessions, with improved reliability as part of the windowing architecture in version 1.23.[21]
Search and navigation tools streamline interaction with output. The built-in search function, activated by Ctrl+Shift+F, scans pane content from bottom to top by default, with options to toggle case sensitivity and direction for precise results; it operates within the focused pane and supports custom key bindings.[25] Jump lists appear in the Start menu and taskbar, providing quick access to pinned profiles and recent directories since version 1.4.[26] Shortcuts are highly customizable via settings.json, including defaults like Ctrl+Shift+V for pasting text, which integrates smoothly with shells such as PowerShell for clipboard operations.[23]
UI enhancements prioritize usability and inclusivity. The dropdown menu for creating new tabs or selecting profiles is configurable through the newTabMenu setting, supporting folders, separators, and dynamic entries for organized access to shells like Command Prompt or WSL.[27] Accessibility options include high-contrast themes via color schemes that adjust foreground visibility against backgrounds, with automatic adaptations for system themes to ensure readability for users with visual impairments.[28] Additional toggles, such as always showing tabs or setting tab width modes (equal, title-length, or compact), further refine the interface without altering core functionality.[27]
Shell and Profile Support
Windows Terminal employs a profile system to manage and integrate various command-line shells, defined in a JSON-based configuration file known as settings.json.[29] Profiles are organized within a "profiles" object containing a "list" array, where each entry specifies details such as the shell's name, command line executable, and unique GUID.[29] For instance, the default PowerShell profile uses"commandline": "powershell.exe", the Command Prompt profile uses "commandline": "cmd.exe", and a WSL distribution like Ubuntu is configured with "commandline": "wsl.exe -d Ubuntu".[29] The system automatically detects and generates profiles for installed shells, including PowerShell and WSL distributions, ensuring users can access them without manual setup.[30]
The terminal supports a range of environments beyond native Windows shells, including the Windows Subsystem for Linux version 2 (WSL2), which enables GPU passthrough for compute-intensive tasks when hosted via profiles.[31] SSH connections are facilitated by creating profiles with a command line like "commandline": "ssh user@hostname", leveraging the built-in OpenSSH client.[32] Cloud-based options such as Azure Cloud Shell are integrated as a default profile, allowing authenticated access to a browser-independent shell environment.[33] As of updates through 2025, support extends to Git Bash via manual profile addition using its executable path and custom executables defined through the "commandline" property for arbitrary scripts or tools.[34]
Key features of profiles include customizable starting directories, set per profile to launch shells in specific paths like "%USERPROFILE%" or WSL-specific UNC paths such as "\\\\wsl$\\Ubuntu\\home\\user".[29] Environment variables can be defined uniquely for each profile using the "environmentVariables" object, scoping them to that shell instance without affecting others.[19] Tab color coding is configurable via the "tabColor" property, applying a hex color to visually distinguish profiles in the tab bar.[28] Dynamic profiles enhance this by automatically populating entries for newly detected WSL instances, maintaining an up-to-date list without user intervention.[30] Users can switch between these profiles using UI tabs for efficient multitasking.[1]
For interoperability, Windows Terminal maintains backward compatibility with the legacy Console Host (conhost.exe) by supporting shells designed for it through the Pseudo Console (ConPTY) interface, allowing unmodified legacy applications to render within the modern terminal environment.[35] Unsupported or older shells that do not integrate directly can still operate via conhost.exe fallback when invoked outside Terminal, preserving ecosystem compatibility.[34]
Customization and Accessibility
Windows Terminal provides a robust theme system that allows users to personalize the visual experience through pre-built and custom color schemes. Pre-built schemes include Campbell, the default option inspired by traditional Windows console colors, and One Half Dark, a modern dark theme featuring subdued blues, greens, and grays for reduced eye strain during extended sessions.[36] These schemes define 16 ANSI colors, along with cursor and selection highlights, and can be applied globally via the settings.json file or to specific profiles for targeted customization.[36] Users can create custom color palettes by editing the schemes array in settings.json, specifying hex values for each color index—such as black (#0C0C0C) and bright red (#F14C4C)—to match personal or branding preferences.[36] The application further enhances thematic options with support for retro terminal effects, which simulate classic CRT displays through scan lines and subtle text blurring when enabled via the experimental.retroTerminalEffect property in profile settings.[28] Background personalization includes static images or animated GIFs, configurable per profile with properties like backgroundImage for the file path (supporting .jpg, .png, and .gif formats), backgroundImageOpacity (ranging from 0 to 1 for transparency), and alignment modes such as center or bottomRight.[28] These features, including GIF animation and retro effects, were introduced in early previews around 2020 to evoke nostalgic computing aesthetics while maintaining modern performance.[37] Keyboard and input handling in Windows Terminal emphasize flexibility, enabling users to define custom actions and remap shortcuts directly in the settings.json file's actions array or via the expanded graphical settings interface introduced in version 1.23. For example, a keybinding like {"keys": "ctrl+tab", "command": {"action": "sendInput", "input": "\u001b[30;5-"}} can remap Ctrl+Tab to send Ctrl+- for specific shell interactions.[23][21] Copy and paste operations integrate seamlessly with system clipboard standards, using shortcuts such as Ctrl+Shift+C for copy and Ctrl+Shift+V for paste, alongside alternatives like Ctrl+Insert and Shift+Insert for broader compatibility.[23] Accessibility in input is bolstered by adjustable window opacity, set via acrylic effects or background transparency, which aids users with visual sensitivities by allowing partial see-through modes.[28] Sound and notification options focus on user control and inclusivity, with the bellStyle property configuring responses to BEL characters emitted by applications—options include "all" for both audible alerts and taskbar flashing, "audible" for sound only, "taskbar" for visual flashing without noise, or "none" to disable entirely.[38] The bellSound property permits custom audio files or randomized playback from an array of paths, ensuring notifications suit diverse environments.[38] For accessibility compliance, Windows Terminal adheres to Windows high-contrast themes, automatically adjusting colors and elements to meet standards defined in Settings > Accessibility > Contrast themes, thereby supporting users with low vision.[39] Extensibility in Windows Terminal has evolved to include an extensions management page in recent previews, introduced around 2025, which allows users to view, toggle, and source additional color schemes and profiles from external repositories like the Custom Terminal Gallery.[22] This feature builds on earlier capabilities for importing JSON-based customizations, enabling community-driven additions such as new themes or actions without core modifications.[40] Profile-specific theme application ensures these extensions integrate seamlessly, applying colors and visuals only to designated shells like PowerShell or Command Prompt.[36]Rendering and Font Integration
Windows Terminal employs GPU acceleration through a DirectX-based rendering engine combined with DirectWrite for text layout and rendering, enabling smooth performance even on high-DPI displays.[2][4] This approach leverages hardware resources to handle complex text rendering efficiently, supporting resolutions and scaling requirements common in modern multi-monitor setups.[41] The terminal supports 256-color ANSI and VT sequences for legacy compatibility, alongside full 24-bit RGB true color for advanced visual output.[42][43] This allows applications to render vibrant, precise colors directly in the terminal interface without additional processing overhead. Font integration in Windows Terminal features native support for Cascadia Code, a monospace font developed by Microsoft in 2019 that includes ligatures for programming symbols such as arrows and operators to enhance readability in code-heavy environments.[44][45] Fallback mechanisms ensure compatibility with other system fonts like Consolas when Cascadia Code is unavailable, while font substitution handles rendering of emojis and CJK ideograms by dynamically loading appropriate glyphs from supporting typefaces.[46][28] The text buffer maintains dual storage in UTF-8 and UTF-16 formats to balance compatibility with legacy Windows APIs and modern Unicode handling.[46][3] It uses a circular buffer structure for scrollback history, which users can configure up to a maximum of 32,767 lines to manage memory usage while preserving output context.[38] Advanced visual features include ligature rendering enabled via DirectWrite for fonts like Cascadia Code, configurable cursor shapes such as block or underline via VT escape sequences, and anti-aliased text rendering to reduce jagged edges on subpixel boundaries.[28][43][2] These elements contribute to a crisp, professional display suitable for shell outputs like those from PowerShell.Technical Architecture
Core Engine Components
The core engine of Windows Terminal comprises several key components responsible for text processing, rendering, and user input, forming the foundation of its terminal emulation capabilities. The text engine features a custom text layout and buffer system implemented in C++ with integration to the Windows Runtime (WinRT), enabling efficient management of character streams and screen updates. This engine incorporates a Virtual Terminal (VT) parser and emitter specifically designed to interpret and generate ANSI escape sequences, ensuring compatibility with modern terminal protocols while supporting UTF-8 and UTF-16 encodings.[1][3] The rendering pipeline builds on this foundation by leveraging DirectWrite for precise typography and glyph handling, which provides subpixel antialiasing and advanced font metrics for clear text display across various resolutions. For acceleration, it utilizes DirectX 11 to offload rendering tasks to the GPU, resulting in smoother performance compared to CPU-bound alternatives. A notable architectural choice is the separation of the host logic from the renderer, which promotes modularity, allows for easier testing, and facilitates future extensions without disrupting core functionality.[1][47] Input handling within the engine processes keyboard and mouse events through a dedicated subsystem that maps raw inputs to terminal actions, supporting features like focus tracking and selection. Key bindings are highly configurable, including predefined modes inspired by vi and emacs for efficient navigation and editing, such as modal cursor movement and command invocation. This component ensures responsive interaction while maintaining protocol fidelity for applications expecting standard console behavior.[1][23] In 2025, the release of Windows Terminal version 1.23 introduced a revamped console architecture that enhances overall reliability, particularly in scenarios involving multiple windows and system tray operations. This update includes a more robust tray icon implementation, improved window management actions, and better support for "summoning" modes like Quake-style drop-downs, addressing previous limitations in stability and resource handling. As of November 2025, the stable version remains 1.23 (October 2025), with Preview 1.24 (August 2025) offering further refinements. Windows Terminal's core engine components are developed as part of its open-source codebase hosted on GitHub.[22][7]System Integration and Performance
Windows Terminal is natively supported on Windows 10 starting from build 18362 (version 1903) and all subsequent versions, as well as every edition of Windows 11.[48] It has been the default terminal application in Windows 11 version 22H2 and later, automatically hosting command-line tools like Command Prompt and PowerShell without requiring separate configuration.[16] ARM64 architecture support was introduced with enhancements in Windows Terminal Preview version 1.23 in June 2025, enabling improved native execution on devices such as those powered by Qualcomm Snapdragon processors.[49] Performance optimizations in Windows Terminal leverage GPU-accelerated text rendering via DirectX, delivering significantly faster output compared to the legacy Windows Console Host, particularly for handling large volumes of text or complex visual elements like Unicode glyphs.[1] This approach reduces latency in scenarios involving high-throughput data streams, such as log file processing or real-time application debugging. Additionally, its integration with the Windows Subsystem for Linux (WSL) allows seamless access to GPU compute resources, enabling Linux distributions to utilize host hardware acceleration for tasks like machine learning workloads directly within Terminal sessions.[31] Security is enhanced through its distribution as an MSIX package via the Microsoft Store, ensuring compliance with Universal Windows Platform (UWP) standards for app isolation and updates. Windows Terminal operates within an AppContainer environment, which provides process isolation to limit access to system resources and mitigate potential vulnerabilities from hosted shells.[50] Within the Windows ecosystem, Windows Terminal integrates deeply for convenient access: it appears in the Start menu for quick launch, replaces legacy consoles in the Win+X power user menu when set as default, and supports invocation from File Explorer via the "Open in Terminal" option in the address bar or through Shift+right-click context menus on folders.[51] Telemetry collection for usage data, such as feature interactions and error reporting, is opt-in and respects global Windows diagnostic data settings, allowing users to disable it entirely through system privacy configurations.[52] This setup ensures compatibility with Virtual Terminal (VT) sequences for enhanced shell interoperability without compromising system-level protections.Installation and Usage
Acquisition Methods
Windows Terminal is available for free download and installation through the Microsoft Store, which offers both stable and preview channels to cater to different user preferences for reliability and access to new features. The stable channel provides the general release version, while the preview channel delivers early builds with experimental capabilities. Installations from the Microsoft Store include automatic updates by default, ensuring users receive the latest enhancements without manual intervention.[6] Alternative acquisition methods include direct downloads from the official GitHub repository, where releases are provided as .msixbundle files for standard installation or .zip archives for portable mode. For .msixbundle files, users can perform a manual installation using the PowerShell commandAdd-AppxPackage -Path "path\to\Microsoft.WindowsTerminal_x64.msixbundle", which may require importing the Appx module with Import-Module Appx on PowerShell 7 or later. The .zip option allows for a portable setup by extracting the archive, creating a .portable marker file next to the executable, and running wt.exe directly, ideal for environments without administrative privileges or for USB-based deployments. Additionally, Windows Terminal can be installed via the winget package manager with the command winget install --id Microsoft.WindowsTerminal -e --source winget, which simplifies the process for command-line enthusiasts and supports versions 1.6.2631 or newer of winget.[7][6]
The minimum prerequisite for installing Windows Terminal is Windows 10 version 2004 (build 19041) or later, with no additional dependencies required for basic functionality such as hosting Command Prompt or PowerShell. However, advanced features like integration with the Windows Subsystem for Linux (WSL) necessitate separate installation and setup of WSL itself. Windows Terminal is pre-installed by default on all editions of Windows 11, eliminating the need for separate acquisition on that platform. For Windows Server 2025, it is pre-installed by default on editions with Desktop Experience; manual installation through the methods described above is required for Server Core or older server versions.[53][54][55]