microsoft/terminal

GitHub Trending (daily) 工具

摘要

这是Windows Terminal的GitHub仓库,Windows Terminal是现代Windows终端模拟器。它提供了Windows Terminal、Windows Terminal Preview、控制台主机及相关工具的源代码。

新的Windows Terminal和原始Windows控制台主机,都在同一个地方!
查看原文
查看缓存全文

缓存时间: 2026/07/20 09:45

microsoft/terminal 源代码仓库:https://github.com/microsoft/terminal Windows 终端项目徽标和品牌图片 终端构建状态(https://dev.azure.com/shine-oss/terminal/_build/latest?definitionId=1&branchName=main)

欢迎来到 Windows 终端、控制台和命令行仓库

目录

本仓库包含以下内容的源代码:

  • Windows 终端 (https://aka.ms/terminal)
  • Windows 终端预览版 (https://aka.ms/terminal-preview)
  • Windows 控制台主机 (conhost.exe)
  • 两个项目之间共享的组件
  • ColorTool
  • 示例项目,展示如何使用 Windows 控制台 API

相关仓库包括:

  • Windows 终端文档 (https://docs.microsoft.com/windows/terminal)(仓库:贡献文档 (https://github.com/MicrosoftDocs/terminal))
  • 控制台 API 文档 (https://github.com/MicrosoftDocs/Console-Docs)
  • Cascadia Code 字体 (https://github.com/Microsoft/Cascadia-Code)

安装和运行 Windows 终端

[!注意] Windows 终端需要 Windows 10 2004(内部版本 19041)或更高版本

Microsoft Store [推荐]

从 [Microsoft Store 安装 Windows 终端][store-install-link]。这样,当我们发布带有自动升级的新版本时,您可以始终处于最新版本。这是我们首选的方式。

其他安装方式

通过 GitHub

对于无法从 Microsoft Store 安装 Windows 终端的用户,可以从本仓库的 Releases 页面 手动下载已发布的版本。从 Assets 部分下载 Microsoft.WindowsTerminal_.msixbundle 文件。要安装应用,只需双击 .msixbundle 文件,应用安装程序应自动运行。如果因任何原因失败,可以尝试在 PowerShell 提示符下运行以下命令:

# 注意:如果您使用的是 PowerShell 7+,请先运行
# Import-Module Appx -UseWindowsPowerShell
# 然后再使用 Add-AppxPackage。
Add-AppxPackage Microsoft.WindowsTerminal_.msixbundle

[!注意] 如果您手动安装终端:

  • 您可能需要安装 VC++ v14 桌面框架包 (https://docs.microsoft.com/troubleshoot/cpp/c-runtime-packages-desktop-bridge#how-to-install-and-update-desktop-framework-packages)。这通常仅在较旧的 Windows 10 版本上并且仅在收到有关缺少框架包的错误时才需要。
  • 终端不会在发布新版本时自动更新,因此您需要定期安装最新的终端版本以获取所有最新修复和改进!

通过 Windows 包管理器 CLI(即 winget)

winget (https://github.com/microsoft/winget-cli) 用户可以通过安装 Microsoft.WindowsTerminal 包来下载并安装最新的终端版本:

winget install --id Microsoft.WindowsTerminal -e

[!注意] 依赖项支持在 WinGet 1.6.2631 或更高版本 (https://github.com/microsoft/winget-cli/releases) 中可用。要安装终端稳定版 1.18 或更高版本,请确保您已更新 WinGet 客户端。

通过 Chocolatey(非官方)

Chocolatey (https://chocolatey.org) 用户可以通过安装 microsoft-windows-terminal 包来下载并安装最新的终端版本:

choco install microsoft-windows-terminal

要使用 Chocolatey 更新 Windows 终端,请运行以下命令:

choco upgrade microsoft-windows-terminal

如果在安装/升级包时遇到任何问题,请前往 Windows Terminal 包页面 并遵循 Chocolatey 分类流程

通过 Scoop(非官方)

Scoop (https://scoop.sh) 用户可以通过安装 windows-terminal 包来下载并安装最新的终端版本:

scoop bucket add extras
scoop install windows-terminal

要使用 Scoop 更新 Windows 终端,请运行以下命令:

scoop update windows-terminal

如果在安装/更新包时遇到任何问题,请在 Scoop Extras 仓库 的问题页面中搜索或报告相同问题。


安装 Windows Terminal Canary

Windows Terminal Canary 是 Windows 终端的每日构建版本。此版本包含我们 main 分支的最新代码,让您有机会在功能进入 Windows 终端预览版之前尝试它们。Windows Terminal Canary 是我们最不稳定的版本,因此您可能会在我们有机会发现错误之前遇到它们。

Windows Terminal Canary 提供应用安装程序分发和便携式 ZIP 分发。应用安装程序分发支持自动更新。由于平台限制,此安装程序仅适用于 Windows 11。便携式 ZIP 分发是一个便携式应用程序。它不会自动更新,也不会自动检查更新。此便携式 ZIP 分发适用于 Windows 10 (19041+) 和 Windows 11。

分发类型架构链接
应用安装程序x64, arm64, x86下载 (https://aka.ms/terminal-canary-installer)
便携式 ZIPx64下载 (https://aka.ms/terminal-canary-zip-x64)
便携式 ZIPARM64下载 (https://aka.ms/terminal-canary-zip-arm64)
便携式 ZIPx86下载 (https://aka.ms/terminal-canary-zip-x86)

了解有关 Windows 终端分发类型的更多信息 (https://learn.microsoft.com/windows/terminal/distributions)。


终端和控制台概览

请在深入研究代码之前花几分钟时间查看以下概述:

Windows 终端

Windows 终端是一个全新的、现代的、功能丰富的、高效的终端应用程序,适用于命令行用户。它包含 Windows 命令行社区最常要求的许多功能,包括对标签页、富文本、全球化、可配置性、主题和样式等的支持。终端还需要满足我们的目标和衡量标准,以确保其保持快速高效,不会消耗大量内存或电量。

Windows 控制台主机

Windows 控制台主机 conhost.exe 是 Windows 原有的命令行用户体验。它还托管 Windows 的命令行基础设施和 Windows 控制台 API 服务器、输入引擎、渲染引擎、用户偏好等。此仓库中的控制台主机代码是 Windows 本身构建 conhost.exe 的实际源代码。自 2014 年接管 Windows 命令行以来,团队为控制台增加了多项新功能,包括背景透明度、基于行的选择、对 ANSI / 虚拟终端序列 (https://en.wikipedia.org/wiki/ANSI_escape_code) 的支持、24 位颜色 (https://devblogs.microsoft.com/commandline/24-bit-color-in-the-windows-console/)、伪控制台(“ConPTY”)(https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/) 等。然而,由于 Windows 控制台的主要目标是保持向后兼容性,我们一直无法添加社区(和团队)多年来一直想要的多项功能,例如标签页、Unicode 文本和表情符号。这些限制促使我们创建了新的 Windows 终端。

您可以在此配套的博客文章系列 (https://devblogs.microsoft.com/commandline/windows-command-line-backgrounder/) 中阅读有关命令行整体演变以及 Windows 命令行特定演变的更多信息,这些文章发布在命令行团队的博客上。

共享组件

在改造 Windows 控制台时,我们对其代码库进行了显著现代化改造,将逻辑实体清晰分离为模块和类,引入了一些关键的扩展点,用更安全、更高效的 STL 容器 (https://docs.microsoft.com/en-us/cpp/standard-library/stl-containers?view=vs-2022) 替换了几个旧的、自制的集合和容器,并通过使用 Microsoft 的 Windows 实现库 - WIL (https://github.com/Microsoft/wil) 使代码更简单、更安全。这次改造使得控制台的几个关键组件可用于 Windows 上的任何终端实现。这些组件包括基于 DirectWrite 的新文本布局和渲染引擎、能够存储 UTF-16 和 UTF-8 的文本缓冲区、VT 解析器/发射器等。

创建新的 Windows 终端

当我们开始规划新的 Windows 终端应用程序时,我们探索并评估了几种方法和技术栈。我们最终决定,最好的方式是继续投资我们的 C++ 代码库,这将使我们能够在现有控制台和新终端中重用前述多个现代化组件。此外,我们意识到这将使我们能够将终端的大部分核心本身构建为一个可重用的 UI 控件,其他人可以将其集成到自己的应用程序中。这项工作的结果包含在本仓库中,并作为 Windows 终端应用程序交付,您可以从 Microsoft Store 或本仓库的发布页面 (https://github.com/microsoft/terminal/releases) 直接下载。


资源

有关 Windows 终端的更多信息,您可能会发现以下资源有用且有趣:

  • 命令行博客 (https://devblogs.microsoft.com/commandline)
  • 命令行背景介绍博客系列 (https://devblogs.microsoft.com/commandline/windows-command-line-backgrounder/)
  • Windows 终端发布:终端“Sizzle Video” (https://www.youtube.com/watch?v=8gw0rXPMMPE&list=PLEHMQNlPj-Jzh9DkNpqipDGCZZuOwrQwR&index=2&t=0s)
  • Windows 终端发布:Build 2019 会议 (https://www.youtube.com/watch?v=KMudkRcwjCw)
  • Run As Radio: 第 645 集 - Richard Turner 谈 Windows 终端 (https://www.runasradio.com/Shows/Show/645)
  • Azure DevOps Podcast: 第 54 集 - Kayla Cinnamon 和 Rich Turner 谈 Windows 终端团队的 DevOps (http://azuredevopspodcast.clear-measure.com/kayla-cinnamon-and-rich-turner-on-devops-on-the-windows-terminal-team-episode-54)
  • Microsoft Ignite 2019 会议:现代 Windows 命令行:Windows 终端 - BRK3321 (https://myignite.techcommunity.microsoft.com/sessions/81329?source=sessions)

常见问题

我构建并运行了新终端,但它看起来和旧控制台一样

原因:您在 Visual Studio 中启动了错误的解决方案。

解决方案:确保在 Visual Studio 中构建和部署 CascadiaPackage 项目。

[!注意] OpenConsole.exe 只是本地构建的 conhost.exe,即经典 Windows 控制台,它托管 Windows 的命令行基础设施。OpenConsole 被 Windows 终端用来连接命令行应用程序并与它们通信(通过 ConPty (https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/))。


文档

所有项目文档位于 aka.ms/terminal-docs (https://aka.ms/terminal-docs)。如果您想为文档做出贡献,请向 Windows 终端文档仓库 提交拉取请求。


贡献

我们很高兴与您,我们出色的社区,一起构建和增强 Windows 终端!在您开始处理某个功能/修复之前,请阅读并遵循我们的贡献者指南,以避免任何浪费或重复的工作。

与团队沟通

与团队沟通的最简单方式是通过 GitHub Issues。请提交新问题、功能请求和建议,但在创建新问题之前,请务必搜索类似的已打开/已关闭的现有问题。如果您想提出一个问题(暂时)不值得创建 Issue,请通过 Twitter 联系我们:

  • Christopher Nguyen, 产品经理:@nguyen_dows (https://twitter.com/nguyen_dows)
  • Dustin Howett, 工程主管:@dhowett (https://twitter.com/DHowett)
  • Mike Griese, 高级开发人员:@[email protected] (https://mastodon.social/@zadjii)
  • Carlos Zamora, 开发人员:@cazamor_msft (https://twitter.com/cazamor_msft)
  • Pankaj Bhojwani, 开发人员
  • Leonard Hecker, 开发人员:@LeonardHecker (https://twitter.com/LeonardHecker)

开发者指南

先决条件

您可以通过以下两种方式之一配置环境以构建终端:

使用 WinGet 配置文件

克隆仓库后,您可以使用 WinGet 配置文件 (https://learn.microsoft.com/en-us/windows/package-manager/configuration/#use-a-winget-configuration-file-to-configure-your-machine) 来设置您的环境。默认配置文件 安装 Visual Studio 2026 Community 以及其余所需工具。在 .config 目录中还有另外两个配置文件的变体,适用于 Visual Studio 2026 的 Enterprise 和 Professional 版本。要运行默认配置文件,您可以双击文件或运行以下命令:

winget configure .config\configuration.winget

手动配置

  • 您必须运行 Windows 10 2004(内部版本 >= 10.0.19041.0)或更高版本才能运行 Windows 终端
  • 您必须在 Windows 设置应用中启用开发者模式 (https://docs.microsoft.com/en-us/windows/uwp/get-started/enable-your-device-for-development) 才能本地安装和运行 Windows 终端
  • 您必须安装 PowerShell 7 或更高版本 (https://github.com/PowerShell/PowerShell/releases/latest)
  • 您必须安装 Windows 11 (10.0.26100) SDK (https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/),版本不低于 10.0.26100.8249
  • 您必须至少安装 VS 2026 (https://visualstudio.microsoft.com/downloads/) 版本 18.6
  • 您必须通过 VS 安装程序安装以下工作负载。注意:打开解决方案将提示您自动安装缺失组件 (https://devblogs.microsoft.com/setup/configure-visual-studio-across-your-organization-with-vsconfig/):
    • 使用 C++ 的桌面开发
    • WinUI 应用程序开发
  • 您必须安装 .NET Framework 4.7.2 目标包 (https://docs.microsoft.com/dotnet/framework/install/guide-for-developers#to-install-the-net-framework-developer-pack-or

相似文章

Microsoft Intelligent Terminal 0.1

Lobsters Hottest

微软发布 Intelligent Terminal 0.1,这是一个基于 Windows Terminal 的实验性开源分支,原生集成了 AI 代理功能,包括代理面板、自动错误检测和代理管理。

微软面向开发者的新版Windows进一步拥抱Linux

The Verge

微软在Build大会上宣布了面向开发者优化的Windows 11体验,包括Windows版Coreutils(原生类Linux工具)、WSL容器(便于管理Linux容器)、集成AI的实验性智能终端,以及可快速配置的Windows开发者配置。