GitHub Copilot CLI 的出现,无疑给开发者的日常工作流带来了颠覆性变化。它将 AI 助手直接引入命令行界面,让我们可以用自然语言编写代码、自动化任务,并更智能的操控工作流。我个人认为,这真的把 Copilot 的能力从代码编辑器延伸到了终端,将命令行变成了更具智慧和情境感知的工作空间。
在这篇教程中,我将带大家深入了解 Copilot CLI 的运作原理、安装配置方式,以及它在实际开发场景中的应用。我相信,对于那些习惯于在命令行中穿梭的开发者来说,Copilot CLI 将成为一个得力助手。当然,要真正发挥 Copilot CLI 的潜力,你得先对命令行操作有基本的认识。
GitHub Copilot CLI 究竟是什么?
简单来说,GitHub Copilot CLI 就是一个命令行工具,它把 AI 助手直接搬到了你的终端。你可以向它提出需求,比如生成某个命令、解释一段复杂的脚本,或者直接在 shell 里调试代码。这意味着你不用再为了查阅文档或记忆那些让人头疼的参数而频繁切换窗口,只管用自然语言描述你的意图就行了。
此外,它还能帮你管理远程仓库、创建问题、发起拉取请求,甚至是处理 GitHub Actions,所有这些都能通过自然语言命令完成。这大大减少了上下文切换,让你可以几乎把所有通常在 GitHub 网站上做的操作,直接在命令行里搞定。这工能,对我这种重度命令行用户来说,简直太方便了。
深入理解 GitHub Copilot CLI
GitHub Copilot CLI 正在从一个简单的命令行辅助工具,逐步演变为一个更自主的智能代理。接下来,我们看看这个转变过程以及它带来的新能力。
从 CLI 扩展到自主智能代理的演进
早期版本的终端 AI 支持,主要通过 gh-copilot 扩展实现。它作为 GitHub CLI 的一个插件存在。你可以输入一句自然语言提示,然后获得一个符合你描述任务的命令或脚本。例如:
gh copilot generate "Write a bash script that deletes merged branches"
它可能会给你这样的输出:
#!/bin/bash
git branch --merged main | grep -v "main" | xargs git branch -d
你可以复制这段输出,然后在终端运行。但关键在于,你还是得手动复制和执行。那如果工具能自己完成这些呢?这正是全新 GitHub Copilot CLI 带来的革新。
为了跟上当下 AI 技术的发展,GitHub 在 2025 年 10 月 25 日正式废弃了旧版扩展,并发布了新的 Copilot CLI。新版本在终端提供了更具代理(agentic)体验的功能。它能理解上下文、运行多步工作流、应用代码更改,甚至直接从命令行调试问题。
Copilot IDE 扩展与 Copilot CLI 的比较
Copilot CLI 是 Copilot IDE 扩展 的一个重要补充。它们都利用 GitHub 的 AI 模型来支持开发工作流的不同环节。在编辑器里,Copilot 帮你编写、重构和完成代码。而在终端,你则利用 Copilot CLI 处理基于终端的工作流。
举个例子,你可能会在 VS Code 里用 Copilot 生成一个 Dockerfile,然后切换到终端,让 Copilot CLI 帮你构建镜像并容器化应用程序。两者配合起来,开发体验会流畅许多。
GitHub Copilot CLI 有哪些新亮点?
这次发布引入了一系列强大的功能,将 CLI 从一个被动的助手,转变成为一个主动的、自主的开发伙伴。
代理能力(Agentic Capabilities)
旧版的 gh 助手只能解释代码或生成简单的 shell 脚本。新版 Copilot CLI 则远不止于此。它是一个自主代理,能规划并执行多步骤任务。它可以调试代码、修改文件、创建新的项目结构,并完全在终端中处理复杂的工作流。在我看来,这是它最大的亮点之一。
访问最新模型
新的 Copilot CLI 可以访问来自 Anthropic、OpenAI、Google 等公司最新的大型语言模型。这种多模型方法比单一提供商的工具(如 Gemini CLI 或 OpenAI Codex CLI)提供了更高的灵活性。
它默认使用 Claude Sonnet 4.5 模型,你随时可以通过运行 /model 斜杠命令并从列表中选择新选项来切换模型。
MCP 驱动的扩展性
模型上下文协议(MCP) 允许 CLI 访问内部数据集、特定知识库,并针对你的用例生成领域特定的解决方案。
Copilot CLI 内置了一个预配置的 GitHub MCP 服务器,因此它可以轻松与 GitHub.com 交互,并直接从终端管理远程仓库。你还可以将 Copilot CLI 连接到自定义的 MCP 服务器,从你专有的工具或数据库中获取上下文。
会话管理
当你启动 Copilot CLI 时,会进入一个会话,这个会话会一直保持活动状态直到你退出。在一个会话中,Copilot 会记住并根据每次交互构建上下文。
例如,你可以要求 Copilot 修改上次请求的输出,扩展它刚刚生成的脚本,或者应用后续更改,而无需在每个提示中重复所有上下文。这种连续性使得多步任务的处理更加顺畅。
如何访问 GitHub Copilot CLI
你可以在 macOS、Linux 或 Windows 上运行 Copilot CLI,并将其连接到你的仓库、工作流和组织设置。下面是它的架构原理以及运行它所需的环境。
GitHub Copilot CLI 的前置条件
使用 GitHub Copilot CLI 需要满足三个前置条件:
- 一个 GitHub Copilot 账户:GitHub 为个人和企业提供了不同的计划,还包括一个每月 50 次聊天请求的免费基础计划。选择适合你需求的计划,并在你的账户上激活 GitHub Copilot。
- Node.js 版本 22 或更高:GitHub 将 Copilot CLI 构建并发布为一个 Node.js 应用程序,因此你的环境中必须安装 Node.js 22 或更高版本。
- npm 版本 10 或更高:因为应用程序在 Node.js 上运行,npm 是标准的包管理器。安装 npm 10 或更高版本来管理 Copilot CLI。
支持的操作系统平台和环境详情
在访问 GitHub Copilot CLI 时,根据操作系统,有几点需要注意。
Linux 和 macOS
GitHub Copilot CLI 完全支持 Linux 和 macOS。它可以在 bash 和 zsh 上原生运行,并且这两个平台都能顺利处理 Node.js、npm 全局包和 shell 集成。如果你想要最稳定的 Copilot CLI 设置和完整的功能兼容性,Linux 和 macOS 是最佳选择。
Windows
在 Windows 上,推荐通过 WSL 运行 Copilot CLI。WSL 在 Windows 内部为你提供了一个完整的 Linux 环境,因此你可以获得与原生 Linux 系统相同的稳定性和 shell 兼容性。
Copilot CLI 也能在原生 Windows PowerShell 上运行,但这个选项目前仍处于实验阶段。它要求 PowerShell 6 或更高版本,但即使是最新版的 Windows 11 也自带 Windows PowerShell 5.1。因此,如果你希望使用原生 PowerShell,必须手动安装 PowerShell 6 或更高版本。
设置 GitHub Copilot CLI:一步步安装过程
我们来动手安装 GitHub Copilot CLI。
第一步:验证前置条件
验证强制性的前置条件能够避免大多数安装失败的情况,所以从这一步开始。通过运行以下命令检查你的 Node.js 和 npm 版本:
node --version
npm --version
你还需要一个拥有活跃 Copilot 订阅的 GitHub 账户。如果任何前置条件不满足,请先解决问题,以避免安装错误。
第二步:安装 Copilot CLI
安装官方的 Copilot CLI:
npm install -g @github/copilot
你可以通过运行以下命令来确认安装:
copilot --version

如果命令打印出版本号,如上图所示,那么你已正确安装了 Copilot CLI。
第三步:GitHub 认证
如果这是你第一次使用,你应该按照以下步骤向 GitHub 进行认证:
- 运行命令:
gh auth login。 - 当 GitHub CLI 询问:“Where do you use GitHub?”时,选择 GitHub.com 并按 Enter。
- 当它询问:“What is your preferred protocol for Git operations on this host?”时,选择 HTTPS 并按 Enter。
- 当询问认证方法时,选择“Login with a web browser.”(通过网页浏览器登录)。

GitHub CLI 会显示一个一次性代码和一个 GitHub URL。访问该 URL,输入一次性代码,批准登录请求,并确认访问你的 GitHub 账户。
批准请求后,回到你的终端,运行 gh auth status 来验证登录。如果显示了你的 GitHub 用户名,说明你已成功认证。
使用 GitHub Copilot CLI
认证后,要启动 GitHub Copilot CLI,请按照以下步骤操作:
- 打开终端,导航到你希望使用 Copilot CLI 的代码仓库。
- 输入
copilot并按 Enter。这将启动一个交互模式,你可以在一个会话中提出后续问题。
你也可以运行一次性提示,例如 copilot -p “explain what this function does: [function_name]”。在这种情况下,CLI 会生成解释并立即关闭会话。
GitHub Copilot CLI 的核心功能
Copilot CLI 中有一些非常酷的功能,驱动着它的代理工作流。让我们在实践中看看它们。
由自主代理驱动的任务执行
Copilot CLI 采用基于代理的架构,它能理解你的提示,规划必要的行动,并直接在终端中执行多步骤任务。
代理可以分解复杂的指令,并自动协调涉及读取文件、生成脚本、转换数据或串联多个操作的任务。
我来给大家展示一下它是如何工作的:
使用 GitHub Copilot CLI 自动化部署前检查
我要求 Copilot 创建一个脚本来自动化部署前的检查。Copilot 扫描了仓库,创建了一个新文件(deploy_prep.sh),并编写了一个脚本,执行常见的检查,比如验证 Git 状态是否干净,运行 Gradle 构建,以及构建 Docker 镜像。

在我接受了差异后,Copilot 自动将脚本添加到了仓库。这展示了代理如何处理整个工作流,从理解提示到创建文件,再到编写完整的脚本,一气呵成。

终端原生集成与工作流保存
Copilot CLI 在终端中原生运行,将你的整个工作流集中在一处。你可以在不切换工具的情况下规划任务、生成代码和执行命令。
CLI 还会保持会话上下文,因此在你工作时它会记住你之前的步骤。这种连续性使得处理多步任务和解决复杂问题变得更加容易。
GitHub 集成与仓库上下文
Copilot CLI 直接与 GitHub 生态系统集成,让你可以在终端中访问你的远程仓库、分支和工作流。
这种集成简化了 GitHub 操作。你可以使用简单的自然语言提示来创建拉取请求、审查差异或修复未解决的问题。例如,你可以让 CLI 创建一个新的 PR,附带你的更改摘要,它就会准备请求、生成描述并推送到 GitHub.com。
GitHub Copilot CLI 的操作模式
为了让你能根据不同任务获得恰当的控制级别,CLI 被组织成三种不同的操作模式:询问模式(Ask)、编辑模式(Edit)和代理模式(Agent)。
询问模式(Ask mode)
在“询问”模式下,你可以请求定义、示例、比较或分步指导,Copilot 会以对话的方式回应。
例如,如果你不确定某个参数如何工作、某个流水线的作用,或者为什么脚本会失败,“询问”模式会提供直接的解释,而无需离开终端。
编辑模式(Edit mode)
当你在“编辑”模式下向 Copilot 提出要求时,它会分析你的项目,识别需要更新的文件,并生成更改。你可以在终端中查看差异并批准它们。
你可以用它来重构函数、更新配置文件、跨项目重命名变量,或者将代码迁移到新的模式。
代理模式(Agent mode)
代理模式是 Copilot CLI 从辅助任务转向自主执行的地方。代理会解释你的请求,创建一个多步工作流,运行每个步骤,检查结果,并根据需要进行调整。
这种模式处理需要多条命令或手动规划的任务。例如,代理可以通过创建目录、生成文件和安装依赖项来设置开发环境。
GitHub Copilot CLI 的高级特性
在了解了核心功能和操作模式之后,我们再深入看看一些更高级的特性。
斜杠命令与工作流快捷方式
斜杠命令(Slash commands)是 Copilot CLI 中常见操作的快捷方式。它们无需完整的提示就能立即触发操作,这对于快速或重复性任务非常有用。常见例子包括:
/explain用于解释命令或脚本/commit用于从暂存的更改生成提交消息/pr用于起草拉取请求描述/fix用于识别代码中的问题并提出修正建议/review用于总结或审查本地更改/run用于生成并执行命令
自定义设置
Copilot CLI 将其设置存储在默认 Copilot 目录下的一个 JSON 配置文件中:~/.copilot。此文件包含你的默认 AI 模型、编辑器集成设置和工作流偏好。
你可以手动编辑它来控制 Copilot 的行为方式。因为该文件位于你的主目录中,所以它全局应用于每个项目,确保了项目间的一致性。
CLI 还包括无需手动编辑文件即可调整配置的命令。常用命令包括:
copilot config view显示你当前的设置copilot config set <key> <value>更新特定的配置值copilot config reset将所有设置恢复为默认值
在多用户或企业环境中,团队可以分发标准的配置模板,或者使用入职脚本为每个开发者设置默认行为。
每个用户仍保留自己的配置目录,但管理员可以将共享的默认值与个人自定义结合起来。这种平衡在整个组织中创建了一致的 Copilot 体验,同时保留了开发者所需的灵活性。
安全配置
对于令牌或企业特定标识符等敏感数据,Copilot CLI 使用环境变量。你可以将这些变量添加到你的 shell 配置文件中,从秘密管理器加载它们,或者为短期的认证按会话定义它们。这样可以避免将秘密暴露在版本控制中,降低安全风险。
GitHub Copilot CLI 的使用场景
本节将重点介绍 CLI 如何在常见开发任务中提高生产力。
从简单提示开始
刚开始上手 Copilot CLI 时,建议从简单的提示开始。尽管这个代理功能强大,但输出质量取决于你的输入。要掌握编写有效指令的艺术,可以参考相关的提示工程课程。
你可以用它来解释 shell 命令、总结错误或生成小代码片段。例如,我们可以让它清理未使用的 Docker 镜像和容器:
copilot -p "Clean up unused Docker images and containers"

如图片所示,一个完整的脚本被生成了,当你接受这个建议后,它会运行并删除未使用的镜像和容器,正如我们所愿。
文档生成
你可以要求 Copilot 生成文档、添加内联注释或更新现有文档。让我们看看它如何为一个仓库生成 README 文件:
copilot -p "Generate a README for this repo: include purpose, install, basic usage, and example commands."

由于我这个仓库已经有一个 README 文件,Copilot 更新了它以符合我提示中给出的新要求。差异显示了红色表示删除的文本,绿色表示添加的文本,这使得更改易于审查和批准。
框架升级与旧代码现代化
在旧代码库中,开发者可以利用 Copilot CLI 替换废弃的 API、迁移旧模式或进行项目范围的重构。你也可以让 Copilot 升级过时的库、为新的 API 重写代码,或者为主要版本发布准备迁移说明。
例如,我提示它将所有 Gradle 依赖项升级的最新安全版本:
copilot -p "Upgrade all Gradle dependencies to their latest safe versions"

找到了两个有相关更新的依赖项,我们可以简单地接受差异以包含这些更新的版本。
结语
GitHub Copilot CLI 的出现,确实将终端从一个静态的命令提示符转变为一个智能代理,它能够理解并执行复杂的开发工作流。通过深度结合仓库上下文与自主规划能力,它赋予了开发者自动化繁琐任务、并在不离开命令行的情况下管理整个 GitHub 生命周期的新力量。
我相信,Copilot CLI 还会不断发展,未来会看到更深入的 MCP 服务器集成和更可靠的代理驱动自动化。当然,代理式 AI 的未来也正朝着视觉模型集成方向迈进。这意味着像 Copilot 这样的 AI 工具将能够解释错误截图或设计模型,直接从视觉输入支持更自主的工作流。
对于组织内部的平稳推行,我建议从共享的入职指南开始,涵盖安装和认证。通过使用基于 JSON 的配置模板和安全环境变量来保持一致性。对于大型环境,可以提供按角色或团队划分的配置配置文件,以保持一致性。
GitHub Copilot CLI 常见问题解答
Copilot CLI 与旧版 gh copilot 扩展有何不同?
旧版扩展仅生成建议。Copilot CLI 则是一个自主代理,可以创建文件、修改代码、执行命令和管理 GitHub 工作流。
Copilot CLI 可以自动修改我的代码吗?
是的。编辑模式和代理模式会分析你的项目,生成更改,显示差异,并应用更新。但它们只在你批准后才生效。除非你明确授予完全写入权限,否则它绝不会未经你同意而覆盖文件。
在生产仓库上使用 Copilot CLI 安全吗?
是的,你可以在生产仓库上使用 Copilot CLI,但应遵循标准的部署安全实践。GitHub 只执行你批准的更改,因此在接受建议之前请仔细审查。此外,避免将密码、API 密钥和认证令牌暴露给 Copilot;请将它们安全地保存在环境变量中。
Copilot CLI 支持哪些操作系统?
Copilot CLI 完全支持 Linux 和 macOS。它也支持在原生 Windows PowerShell 上运行,但存在一些限制,并且需要 PowerShell 6 或更高版本。
关于
关注我获取更多资讯