A modern WinPTY-derived console backend for Windows 7 and later, built for VT7.
VT7Pty is a user-mode PTY project whose goal is to improve the fidelity and reliability of Windows console applications and prepare a better backend for VT7.
Our foundation is WinPTY, created by Ryan Prichard and developed with its contributors. Microsoft's ConPTY and Windows Terminal work provides architectural inspiration and a reference for modern terminal behavior. We are building on years of engineering by both communities.
Milestone 0 is complete. The first baseline,
VT7Pty 0.5.0,
is published. It established the WinPTY baseline, modern VS2022/MSBuild and
C++20 native foundation, VT7Pty identity, diagnostic and security boundaries,
permanent test system, and manual release process. The exact 0.5.0 package
passed three-tier release acceptance:
all 30 cases and the full 120-minute soak on each accepted Windows 7 SP1 x64
machine, including a PowerShell 2.0 installation without KB3191566. The
publication record verifies
the published tag and assets. Each future release build must pass its own
exact-package Windows 7 acceptance before publication. See the
compatibility contract for the tested scope.
The development foundation and roadmap record the approved product and engineering direction. The diagnostic collection guide and native boundary review define the Step 0.7 support and security baseline.
Milestone 0 replaced the inherited toolchain, removed the Unix adapter and pre-Windows 7 compatibility, established the VT7Pty 0.5.x identity, modernized the retained C++ code, and created the permanent local build, test, diagnostic, and manual release systems.
Milestone 1 is next: measure and improve application-facing fidelity against a
defined corpus. The VT7-facing API and standalone integration host follow in
Milestone 2, then a versioned handoff in Milestone 3. No VT7 integration or
ConPTY compatibility is claimed by the 0.5.0 release.
The Cygwin/MSYS adapter and superseded GYP, GNU Make, Python 2 packaging, and hosted-build infrastructure have been removed. Active binaries, headers, exports, environment variables, named endpoints, diagnostics, and tests use the VT7Pty identity. The technical naming map records every intentional compatibility break.
VT7Pty targets x64 Windows 7 SP1 and later. Windows XP, Windows Vista, and x86 are outside the maintained product. Historical WinPTY support claims and release notes describe upstream behavior; they are not acceptance results for future VT7Pty builds. Milestone and release candidates are validated on non-ESU, ESU, and PowerShell 2.0 Windows 7 SP1 x64 machines, with the recorded machine-environment dispositions in the validation evidence.
- More faithful console output, keyboard input, Unicode handling, resizing, and screen restoration.
- Predictable process and session lifetimes, clean teardown, and useful diagnostics.
- A modern Visual Studio/MSBuild and C++20 codebase with reproducible local build, verification, packaging, and physical Windows 7 acceptance.
- A documented API that makes eventual VT7 integration straightforward, using ConPTY conventions where they fit the legacy-console backend.
VT7 is the primary intended consumer. Compatibility for other consumers, including a possible ConPTY user-mode shim, is a later objective. VT7Pty does not currently provide a drop-in ConPTY replacement. A kernel driver is not part of the project direction.
The client library starts an agent that owns a hidden Windows console. The agent launches console applications, translates terminal input into Windows console events, and turns observed screen-buffer changes into VT output.
Terminal host
|
| VT7Pty C API
v
Client DLL <---- control and I/O ----> Agent
|
v
Hidden Windows console
|
v
Console applications
This preserves the legacy-console foundation that makes WinPTY useful on Windows 7. Backend improvements will be guided by reproducible application failures and tests, with proven behavior retained where it meets our needs.
See Building for the supported local build, verify, and package commands. The original WinPTY README is preserved for historical build, adapter, embedding, and debugging details.
Useful starting points:
- Roadmap and milestone acceptance criteria
- Approved development foundation
- Inherited component inventory
- Accepted inherited native baseline
- Accepted MSBuild transition validation
- Accepted Step 0.2 completion validation
- Accepted Step 0.3 completion validation
- Step 0.4 platform candidate
- Accepted Step 0.4 completion validation
- Step 0.5 technical identity candidate
- Accepted Step 0.5 completion validation
- Step 0.6 native modernization candidate
- Accepted Step 0.6 completion validation
- Accepted Step 0.8 permanent test system
- Accepted Step 0.9 manual release process
- Architecture and current data flows
- Testing strategy and evidence requirements
- Windows 7 physical acceptance procedure
- Compatibility targets and verified status
- Versioning policy
- Technical naming map
- Public VT7Pty header
- Client library
- Console agent
- Tests
- Upstream baseline and attribution policy
- Historical WinPTY release notes
- VT7Pty changelog
- Manual release process
- 0.5.0 release notes
Read Contributing before opening a pull request. Report ordinary bugs and discuss proposals in the VT7Pty issue tracker.
The Code of Conduct applies to project spaces. For vulnerabilities, use the private reporting instructions in our Security Policy.
Thank you to Ryan Prichard and the WinPTY contributors for the legacy console bridge on which this project is based, and to Microsoft's Console, ConPTY, and Windows Terminal teams and community contributors for the work that informs its future direction. See Credits for acknowledgements and the distinction between inherited code and design references.
VT7Pty is distributed under the MIT License. Original copyright notices and upstream history are retained. VT7Pty is an independent project and is not an official Microsoft product or an upstream WinPTY release.