terminal

terminal

Windows 新一代功能强大的命令行终端

Windows Terminal 是微软开发的新一代命令行终端应用。它为用户提供标签页、富文本、国际化支持、高度可配置性以及主题样式等功能。该开源项目包含 Windows Terminal、Windows Terminal Preview 和 Windows 控制台主机等组件的源代码。软件运行需要 Windows 10 2004 或更高版本,可通过多种方式安装使用。

Windows Terminal命令行开源项目MicrosoftWindows ConsoleGithub

终端标志

终端构建状态

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

本仓库包含以下项目的源代码:

相关仓库包括:

安装和运行 Windows 终端

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

Microsoft Store [推荐]

从 [Microsoft Store 安装 Windows 终端][store-install-link]。 这样可以在我们发布新版本时自动升级,始终保持最新版本。

这是我们推荐的方法。

其他安装方法

通过 GitHub

对于无法从 Microsoft Store 安装 Windows 终端的用户, 可以从本仓库的发布页面手动下载已发布的版本。

资源部分下载 Microsoft.WindowsTerminal_<版本号>.msixbundle 文件。要安装应用程序,只需双击 .msixbundle 文件,应用安装程序应该会自动运行。如果由于任何原因失败,可以在 PowerShell 提示符下尝试以下命令:

# 注意:如果使用 PowerShell 7+,请在使用 Add-AppxPackage 之前运行 # Import-Module Appx -UseWindowsPowerShell Add-AppxPackage Microsoft.WindowsTerminal_<版本号>.msixbundle

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

  • 可能需要安装 VC++ v14 桌面框架包。 这通常只在较旧的 Windows 10 版本上需要,并且仅当出现缺少框架包的错误时才需要。
  • 终端不会在发布新版本时自动更新,因此需要定期安装最新的终端版本以获取所有最新的修复和改进!

通过 Windows 包管理器 CLI(又名 winget)

winget 用户可以通过安装 Microsoft.WindowsTerminal 包来下载和安装最新的终端版本:

winget install --id Microsoft.WindowsTerminal -e

[!注意] 依赖支持在 WinGet 版本 1.6.2631 或更高版本中可用。要安装终端稳定版 1.18 或更高版本,请确保您已更新 WinGet 客户端。

通过 Chocolatey(非官方)

Chocolatey 用户可以通过安装 microsoft-windows-terminal 包来下载和安装最新的终端版本:

choco install microsoft-windows-terminal

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

choco upgrade microsoft-windows-terminal

如果在安装/升级包时遇到任何问题,请访问 Windows 终端包页面并按照 Chocolatey 分类流程进行操作

通过 Scoop(非官方)

Scoop 用户可以通过安装 windows-terminal 包来下载和安装最新的终端版本:

scoop bucket add extras scoop install windows-terminal

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

scoop update windows-terminal

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


安装 Windows 终端 Canary 版

Windows 终端 Canary 版是 Windows 终端的每日构建版本。这个版本包含我们 main 分支的最新代码,让您有机会在功能正式进入 Windows 终端预览版之前就能尝试。

Windows 终端 Canary 版是我们最不稳定的版本,因此您可能会在我们发现之前就发现一些 bug。

Windows 终端 Canary 版提供 App Installer 分发版和便携式 ZIP 分发版。

App Installer 分发版支持自动更新。由于平台限制,此安装程序仅适用于 Windows 11。

便携式 ZIP 分发版是一个便携式应用程序。它不会自动更新,也不会自动检查更新。这个便携式 ZIP 分发版适用于 Windows 10(19041+)和 Windows 11。

分发版架构链接
App Installerx64, arm64, x86下载
便携式 ZIPx64下载
便携式 ZIPARM64下载
便携式 ZIPx86下载

了解更多关于 Windows 终端分发版类型 的信息。


Windows 终端路线图

Windows 终端的计划在此描述, 并将随项目进展更新。

终端和控制台概述

在深入代码之前,请花几分钟阅读以下概述:

Windows 终端

Windows 终端是一个全新的、现代化的、功能丰富的、高效的终端应用程序,面向命令行用户。它包含了 Windows 命令行社区最常请求的许多功能,包括支持标签、富文本、全球化、可配置性、主题和样式等。

终端还需要满足我们的目标和指标,以确保它保持快速和高效,不会消耗大量内存或电力。

Windows 控制台主机

Windows Console主机conhost.exe是Windows原始的命令行用户体验。它还承载Windows的命令行基础设施和Windows Console API服务器、输入引擎、渲染引擎、用户偏好设置等。本仓库中的控制台主机代码是构建Windows自身conhost.exe的实际源代码。

自2014年接管Windows命令行以来,团队为Console添加了几项新功能,包括背景透明度、基于行的选择、对ANSI/虚拟终端序列的支持、24位色彩、伪控制台("ConPTY")等。

然而,由于Windows Console的主要目标是保持向后兼容性,我们无法添加社区(和团队)在过去几年一直想要的许多功能,包括标签、Unicode文本和表情符号。

这些限制促使我们创建了新的Windows Terminal。

你可以在命令行团队博客上的这一系列相关博文中阅读更多关于命令行的演变,特别是Windows命令行的演变。

共享组件

在改造Windows Console的过程中,我们大大现代化了其代码库,将逻辑实体清晰地分离到模块和类中,引入了一些关键的可扩展点,用更安全、更高效的STL容器替换了几个旧的、自制的集合和容器,并通过使用Microsoft的Windows实现库(WIL)使代码更简单、更安全。

这次改造使Console的几个关键组件可以在Windows上的任何终端实现中重复使用。这些组件包括新的基于DirectWrite的文本布局和渲染引擎、能够存储UTF-16和UTF-8的文本缓冲区、VT解析器/发射器等。

创建新的Windows Terminal

当我们开始规划新的Windows Terminal应用程序时,我们探索和评估了几种方法和技术栈。我们最终决定,继续投资我们的C++代码库最能满足我们的目标,这将允许我们在现有的Console和新的Terminal中重用上述几个现代化的组件。此外,我们意识到这将允许我们将Terminal的核心本身构建为一个可重用的UI控件,其他人可以将其合并到自己的应用程序中。

这项工作的结果包含在这个仓库中,并作为Windows Terminal应用程序交付,你可以从Microsoft Store下载,或直接从这个仓库的发布页面下载。


资源

关于Windows Terminal的更多信息,你可能会发现以下一些资源有用且有趣:

  • 命令行博客
  • 命令行背景博客系列
  • Windows Terminal发布:"Terminal宣传视频"
  • Windows Terminal发布:Build 2019会议
  • Run As Radio:第645期 - 与Richard Turner讨论Windows Terminal
  • Azure Devops播客:第54集 - Kayla Cinnamon和Rich Turner谈Windows Terminal团队的DevOps
  • Microsoft Ignite 2019会议:现代Windows命令行:Windows Terminal - BRK3321

常见问题

我构建并运行了新的Terminal,但它看起来就像旧的控制台

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

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

注意:OpenConsole.exe只是本地构建的conhost.exe,即经典的Windows Console,用于托管Windows的命令行基础设施。Windows Terminal使用OpenConsole连接并与命令行应用程序通信(通过ConPty)。


文档

所有项目文档都位于aka.ms/terminal-docs。如果你想为文档做出贡献,请在Windows Terminal文档仓库提交拉取请求。


贡献

我们很高兴能与你们这些了不起的社区一起工作,共同构建和增强Windows Terminal!

在开始功能/修复工作之前,请阅读并遵循我们的贡献者指南,以帮助避免任何浪费或重复的工作。

与团队沟通

与团队沟通的最简单方式是通过GitHub问题。

请提交新的问题、功能请求和建议,但在创建新问题之前请搜索类似的开放/已关闭的现有问题。

如果你想提出一个你认为(还)不值得提出问题的问题,请通过Twitter联系我们:

  • Christopher Nguyen,产品经理:@nguyen_dows
  • Dustin Howett,工程主管:@dhowett
  • Mike Griese,高级开发人员:@zadjii@mastodon.social
  • Carlos Zamora,开发人员:@cazamor_msft
  • Pankaj Bhojwani,开发人员
  • Leonard Hecker,开发人员:@LeonardHecker

开发者指南

先决条件

  • 运行 Windows Terminal 需要 Windows 10 2004 (版本号 >= 10.0.19041.0) 或更高版本
  • 要在本地安装和运行 Windows Terminal,必须在 Windows 设置应用中启用开发者模式
  • 必须安装 PowerShell 7 或更高版本
  • 必须安装 Windows 11 (10.0.22621.0) SDK
  • 至少需要安装 VS 2022
  • 必须通过 VS 安装程序安装以下工作负载。注意:在 VS 2022 中打开解决方案会自动提示安装缺失组件:
    • 使用 C++ 的桌面开发
    • 通用 Windows 平台开发
    • 以下单个组件
      • C++ (v143) 通用 Windows 平台工具
  • 必须安装 .NET Framework 目标包以构建测试项目

构建代码

本仓库使用 git 子模块管理一些依赖项。为确保子模块得到恢复或更新,请在构建之前运行以下命令:

git submodule update --init --recursive

可以在 Visual Studio 内部或使用 /tools 目录中的一组便捷脚本和工具从命令行构建 OpenConsole.sln:

在 PowerShell 中构建

Import-Module .\tools\OpenConsole.psm1 Set-MsBuildDevEnvironment Invoke-OpenConsoleBuild

在 Cmd 中构建

.\tools\razzle.cmd bcz

运行和调试

要在 VS 中调试 Windows Terminal,右键单击解决方案资源管理器中的 CascadiaPackage,进入属性。在调试菜单中,将"应用程序进程"和"后台任务进程"更改为"仅限本机"。

然后,您应该能够通过按 F5 键构建和调试 Terminal 项目。确保选择"x64"或"x86"平台 - Terminal 不支持"任意 CPU"构建(因为 Terminal 是 C++ 应用程序,而不是 C# 应用程序)。

👉 您将无法通过直接运行 WindowsTerminal.exe 来启动 Terminal。有关原因的详细信息,请参阅 #926、#4043

编码指南

请查看以下关于我们编码实践的简要文档。

👉 如果您发现这些文档中缺少什么,欢迎在仓库中的任何文档文件中贡献内容(或编写一些新的文档)!

这是一项正在进行的工作,我们正在学习需要为人们提供什么,以便他们能成为我们项目的有效贡献者。

  • 编码风格
  • 代码组织
  • 我们遗留代码库中的异常
  • 在 WIL 中与 Windows 交互的有用智能指针和宏

行为准则

本项目采用了 Microsoft 开源行为准则。有关更多信息,请参阅行为准则常见问题解答或联系 opencode@microsoft.com 提出任何其他问题或意见。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

热门AI工具AI办公办公工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

模型训练热门AI工具内容创作智能问答AI开发讯飞星火大模型多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

AI助手热门AI工具AI创作AI辅助写作讯飞绘文内容运营个性化文章多平台分发
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多