Skip to content

Windows Terminal and ConPTY

Microsoft's terminal for Windows 10 and 11, and the console host (conhost.exe / OpenConsole) that provides the pseudo-console every Windows terminal uses to run console applications.

Identity

  • TERM: not set by Windows Terminal. WSL distributions set xterm-256color; Cygwin/MSYS2 shells set their own.
  • TERM_PROGRAM: not set.
  • WT_SESSION: a GUID identifying the Windows Terminal session; its presence is the usual detection heuristic. WT_PROFILE_ID is also set.
  • DA1: CSI ? 61 ; 4 ; 6 ; 7 ; 14 ; 21 ; 22 ; 23 ; 24 ; 28 ; 32 ; 42 c ? (VT100-level class with feature flags; check the current build).
  • DA2: CSI > 0 ; 10 ; 1 c ?.
  • XTVERSION: ?

ConPTY

Console applications on Windows do not write to a PTY. They call the console API or write VT to a console handle owned by the console host. ConPTY renders that into an internal screen buffer and then re-emits the buffer state as a VT stream to the attached terminal. Consequences:

  • sequences the console host does not model never reach the terminal;
  • attributes and cursor movement may be re-serialized in a different form;
  • input from the terminal is decoded into console input records and then re-encoded for applications that read VT, which is why the win32-input-mode protocol (CSI ? 9001 h) exists;
  • the console host and the terminal have separate version numbers, and both matter.

WSL, Cygwin, and MSYS2 programs run through the same path when launched from Windows Terminal. ConPTY passthrough mode (a later addition) reduces the rewriting for applications that opt in; check the build.

Documentation

Notable behavior

  • Supports truecolor, DECSCUSR, mouse modes including SGR, bracketed paste, alternate screen, OSC 8, OSC 52 writes, and OSC 9;4 progress (its own extension, adopted by ConEmu-style conventions).
  • Sixel graphics arrived in 1.22.
  • Originated win32-input-mode and OSC 9;9 (current working directory).
  • Does not implement the Kitty keyboard protocol or the Kitty graphics protocol.
  • The legacy console host without VT processing enabled still exists on older systems; ENABLE_VIRTUAL_TERMINAL_PROCESSING must be set by applications targeting it.

Version notes

1.xx numbering with Preview and Stable channels; the release notes list VT additions.

Probe

wt -v
tools/query '\033[c'

Feature support

Records are maintained independently in tdn/terminals/windows-terminal.yaml. Unlisted features are unknown. See the comparison for all features.

FeatureSupportAs ofNotes and evidence
BEL urgency/visual
c0-bel-attention
SupportedImported · unverifiedUnversionedYes

import

14/16 pixel sizes
csi-14-16-t-pixel-sizes
SupportedImported · unverifiedUnversionedYes

import

18 size in cells
csi-18-t-text-size
SupportedImported · unverifiedUnversionedYes

import

22/23 title stack
csi-22-23-t-title-stack
SupportedImported · unverifiedUnversionedYes

import

ED 3 (scrollback)
csi-3-j-erase-scrollback
SupportedImported · unverifiedUnversionedYes

import

DECRQM
csi-decrqm
SupportedImported · unverifiedUnversionedYes

import

DECSLRM / ?69
csi-decslrm
SupportedImported · unverifiedUnversionedYes

import

DECSTBM
csi-decstbm
SupportedImported · unverifiedUnversionedYes

import

DECSTR
csi-decstr
SupportedImported · unverifiedUnversionedYes

import

ED/EL/ECH/ICH/DCH/IL/DL
csi-editing-operations
SupportedImported · unverifiedUnversionedYes

import

REP
csi-rep
SupportedImported · unverifiedUnversionedYes

import

SU/SD
csi-su-sd-scroll
SupportedImported · unverifiedUnversionedYes

import

Kitty keyboard protocol
csi-u-kitty-keyboard
UnknownImported · unverifiedUnversioned?; Open feature request ([microsoft/terminal issue on kitty keyboard protocol](https://github.com/microsoft/terminal/issues/16155).)

import

DECRQSS
dcs-decrqss
PartialImported · unverifiedUnversionedPartial; [console VT sequences](https://learn.microsoft.com/windows/console/console-virtual-terminal-sequences) list `m` and `r` `?`

import

Sixel
dcs-sixel
SupportedImported · unverifiedUnversionedYes, 1.22 ([Windows Terminal 1.22 release notes](https://github.com/microsoft/terminal/releases).) | Also recorded: Yes, 1.22 ([Windows Terminal releases](https://github.com/microsoft/terminal/releases), 1.22.)

import import

XTGETTCAP
dcs-xtgettcap
UnknownImported · unverifiedUnversioned?; not in the console VT list

import

1000 mouse
dec-mode-1000-mouse
SupportedImported · unverifiedUnversionedYes

import

1002 button motion
dec-mode-1002-button-motion
SupportedImported · unverifiedUnversionedYes

import

1003 all motion
dec-mode-1003-all-motion
SupportedImported · unverifiedUnversionedYes

import

1004 focus
dec-mode-1004-focus
SupportedImported · unverifiedUnversionedYes ([microsoft/terminal VT support](https://github.com/microsoft/terminal/blob/main/doc/specs/%234999%20-%20Improved%20keyboard%20handling%20in%20Conpty.md) and [Windows Terminal 1.x release notes](https://github.com/microsoft/terminal/releases).)

import

1006 sgr mouse
dec-mode-1006-sgr-mouse
SupportedImported · unverifiedUnversionedYes

import

1007 alternate scroll
dec-mode-1007-alternate-scroll
SupportedImported · unverifiedUnversionedYes

import

1015 urxvt mouse
dec-mode-1015-urxvt-mouse
SupportedImported · unverifiedUnversionedYes

import

1049 alternate screen
dec-mode-1049-alternate-screen
SupportedImported · unverifiedUnversionedYes

import

2004 bracketed paste
dec-mode-2004-bracketed-paste
SupportedImported · unverifiedUnversionedYes | Also recorded: Yes; ([Windows Terminal 1.x release notes](https://github.com/microsoft/terminal/releases).)

import import

2026 synchronized output
dec-mode-2026-synchronized-output
SupportedImported · unverifiedUnversionedYes

import

Grapheme cluster mode (2027)
dec-mode-2027-grapheme-clusters
UnknownImported · unverifiedUnversioned?; Issue tracked upstream

import

win32-input-mode
dec-mode-9001-win32-input
SupportedImported · unverifiedUnversionedYes; Origin; both as ConPTY host and consumer ([Improved keyboard handling in Conpty](https://github.com/microsoft/terminal/blob/main/doc/specs/%234999%20-%20Improved%20keyboard%20handling%20in%20Conpty.md).)

import

DEC Special Graphics
esc-dec-special-graphics
SupportedImported · unverifiedUnversionedYes ([Windows Terminal](https://github.com/microsoft/terminal), `adaptDispatch` charset support.)

import

OSC 0/2 set
osc-0-2-title
SupportedImported · unverifiedUnversionedYes

import

OSC 10/11 set
osc-10-11-default-colors-set
SupportedImported · unverifiedUnversionedYes

import

OSC 133 A–D
osc-133-prompt-marks
SupportedImported · unverifiedUnversionedYes (1.18)

import

OSC 4 set
osc-4-palette-set
SupportedImported · unverifiedUnversionedYes

import

OSC 52 read
osc-52-read
UnknownImported · unverifiedUnversioned?; Writes allowed; reads unimplemented

import

OSC 52 write
osc-52-write
SupportedImported · unverifiedUnversionedYes (1.16); Writes allowed; reads unimplemented

import

OSC 8 hyperlinks
osc-8-hyperlinks
SupportedImported · unverifiedUnversionedYes (1.4)

import

OSC 9;4 progress
osc-9-4-progress
SupportedImported · unverifiedUnversionedYes (1.6)

import

OSC 9;9
osc-9-9-working-directory
SupportedImported · unverifiedUnversionedYes

import

OSC 9 notify
osc-9-notification
UnsupportedImported · unverifiedUnversionedNo (Windows Terminal interprets OSC 9 sub-commands in the ConEmu style.)

import

256 colors
sgr-256-colors
SupportedImported · unverifiedUnversionedYes

import

Italic 3
sgr-3-italic
SupportedImported · unverifiedUnversionedYes

import

Colon form 38:2
sgr-38-2-colon-form
SupportedImported · unverifiedUnversionedYes

import

Truecolor 38;2
sgr-38-2-truecolor
SupportedImported · unverifiedUnversionedYes

import

Underline styles 4:n
sgr-4-underline-styles
SupportedImported · unverifiedUnversionedYes

import

Blink 5
sgr-5-blink
SupportedImported · unverifiedUnversionedYes

import

Underline color 58
sgr-58-underline-color
SupportedImported · unverifiedUnversionedYes

import

Strikethrough 9
sgr-9-strikethrough
SupportedImported · unverifiedUnversionedYes

import

bce
terminfo-bce
SupportedImported · unverifiedUnversionedYes

import

Bold-is-bright option
text-bold-is-bright
SupportedImported · unverifiedUnversionedYes ([Windows Terminal profile settings, `intenseTextStyle`](https://learn.microsoft.com/windows/terminal/customize-settings/profile-appearance).)

import

Synthesized box drawing
text-box-drawing
SupportedImported · unverifiedUnversionedYes

import

Color emoji rendering
text-color-emoji
SupportedImported · unverifiedUnversionedYes

import

Italic face
text-italic-face
SupportedImported · unverifiedUnversionedYes

import

Ligatures / shaping
text-shaping
SupportedImported · unverifiedUnversionedYes

import