Windows Terminal 中的 Copilot
说明 Windows Terminal Chat 中 Copilot 的前提、命令解释、shell 上下文、插入命令、组织策略和安全边界。
Windows Terminal 中的 Copilot 适合解释命令、生成 shell 语法、翻译跨 shell 命令和理解错误。它不是部署代理,也不应该绕过你对命令副作用的判断——把它当作"会读 shell 的同事",但敏感操作仍由你负责。
GitHub 官方页面把它定位为:在 Windows Terminal 中获得 command-line suggestions and explanations。Microsoft Learn 进一步说明,Terminal Chat 是 Windows Terminal Canary 的实验功能,会把当前 active shell 名称作为额外上下文发送给所选 AI service。
阅读目标:读完本章,你应该能安全使用 Copilot 解释命令,同时知道它不会自动替你判断生产风险。
1. 官方前提
2026-05-06 核验时,GitHub 官方页面列出的前提是:
- Access to GitHub Copilot:账号需要有 Copilot 访问权。
- Windows Terminal Canary:Terminal Chat 在 Canary 中可用。
- GitHub Copilot connected to Terminal Chat:需要按 Quickstart 完成连接。
- 组织策略允许 Copilot CLI:组织 owner 或 enterprise admin 禁用 Copilot CLI 时不能使用。
Microsoft Learn 的 Terminal Chat 页面还说明,该功能支持 GitHub Copilot、Azure OpenAI Service 和 OpenAI 作为 service provider;使用 GitHub Copilot 时需要个人 active subscription,或组织分配 seat。
2. 它能做什么
- 命令建议:例如
how do i list all markdown files in my directory;建议不等于应该执行。 - 命令解释:例如 “Explain
Get-ChildItem”;仍需核对当前 shell。 - 跨 shell 翻译:例如 “What is
touchin PowerShell?”;Windows、WSL、PowerShell 差异要确认。 - 错误解释:例如 “How do I fix
Error: getaddrinfo ENOTFOUND?”;不要粘贴含 token 的完整日志。 - 发送代码到终端编辑器:例如在 WSL 的
nano/vi中发送建议;先审代码,再写入文件。
flowchart TD
Prompt["Terminal Chat 提问"] --> Shell["附带 active shell context"]
Shell --> Answer["Copilot 返回解释或建议"]
Answer --> Insert{"是否点击插入命令?"}
Insert -->|否| Read["只读学习"]
Insert -->|是| Review["人工检查副作用"]
Review --> Safe{"安全?"}
Safe -->|是| Run["再手动执行"]
Safe -->|否| Stop["不执行,重问或改写命令"]
style Review fill:#fef3c7,stroke:#d97706,stroke-width:2px
style Stop fill:#fee2e2,stroke:#dc2626,stroke-width:2px
3. 插入命令不等于执行命令
GitHub 官方页面说明,Copilot 的答案显示在问题下方,点击 answer 可以把它插入 command line。Microsoft Learn 也说明,点击 suggestion 会复制到终端输入行,这个动作不会自动运行 suggestion。
这条边界很重要:
- 插入前:确认命令适合当前 shell。
- 插入后:再检查参数、路径、目标环境。
- 执行前:确认没有删除、覆盖、推送、部署、暴露密钥。
推荐先问:
解释下面这条命令做什么:
它可能修改哪些文件?再把命令贴给它解释,而不是直接让它“帮我执行”。
4. 不要泄露终端上下文
Microsoft Learn 页面说明,Terminal Chat 会在你输入消息时把 chat history 和 active shell 名称附加到发送给 AI service 的消息中;Windows Terminal 不会在 terminal session 结束后保存 chat history。
这不代表可以随便粘贴日志。终端里常见敏感内容包括:
.env、API key、token、cookie。- 内网主机名、用户名、IP、SSH 路径。
- 数据库连接串。
- 客户数据或生产错误日志。
- 云资源 ID、订阅 ID、部署环境。
Terminal Chat 是解释命令的工具,不是密钥处理工具。需要排障时只粘贴必要错误行,先移除 token 和私有路径。
5. 适合的第一批任务
安全起步任务:
怎么列出当前目录下所有 markdown 文件?下面这条 bash 命令在 PowerShell 里等价的写法是什么?
touch app.log解释下面这个错误,并只列出安全的诊断命令(不要直接执行):
Error: getaddrinfo ENOTFOUND不适合第一批任务:
删除所有生成的临时文件,然后推送到 main 分支。SSH 到生产服务器并重启服务。对当前 workspace 运行 terraform apply。深读:为什么终端入口比 IDE Chat 更需要保守
IDE Chat 的多数输出会先变成 diff,你还能审文件;Terminal Chat 的输出很容易被用户一回车执行。哪怕 Terminal Chat 本身不自动运行命令,一条错误命令也可能删除文件、修改远程资源、泄露 token 或改变生产环境。
所以终端入口的正确用法是“解释和草拟”,不是“代理执行”。真正需要 agentic CLI 工作流时,应该转到 Copilot CLI,并单独学习工具允许、回滚和 session 数据边界。
6. 团队使用规则
团队里建议写清:
- 允许解释命令和错误:学习和排障价值高。
- 禁止粘贴未脱敏日志:防止 token、客户数据、内网信息进入 AI service。
- 禁止直接执行删除、部署、SSH、云资源修改:终端副作用大。
- 生产命令必须走 runbook 或人工审批:保持审计和回滚。
- 组织策略禁用 Copilot CLI 时同步说明:GitHub 官方指出该策略会影响 Windows Terminal Copilot。
本章自检
完成本章后,用这 4 个问题检查:
- 你的 Windows Terminal 是否是 Canary,且已连接 GitHub Copilot?
- 你的组织或企业是否允许 Copilot CLI?
- 点击 Copilot answer 插入命令后,你是否在执行前检查了副作用?
- 你是否避免把 token、连接串、客户数据和生产日志粘贴进 Terminal Chat?
通过标准:你能用 Terminal Chat 学命令、解释错误,但不会让它成为无审查的生产命令入口。
官方来源
- Asking GitHub Copilot questions in Windows Terminal —— GitHub 官方 Windows Terminal Copilot 页面,说明前提、提问、插入答案和组织策略。
- Terminal Chat —— Microsoft Learn 官方 Terminal Chat 页面,说明 Canary、service provider、active shell context、chat history 和使用示例。
- Responsible use of GitHub Copilot in Windows Terminal —— 官方 responsible use 页面,用于核对限制和风险。