关于 Copilot CLI
Copilot CLI 让你在终端里使用 Copilot:支持的系统、交互与编程两种界面、plan 模式、本地与云端沙箱、用例、中途引导、自动上下文管理与定制方式。
Copilot 的命令行界面(CLI)让你直接在终端里使用 Copilot:回答问题、编写和调试代码,并与 GitHub 交互。例如你可以让 Copilot 对项目做一些改动并创建 pull request。它让你无需离开终端就能快速访问强大的 AI 智能体,替你完成任务,你也可以与它迭代式地构建所需代码。
支持的操作系统:Linux、macOS、Windows(PowerShell 内以及 Windows Subsystem for Linux(WSL))。
使用模式
Copilot CLI 有两种用户界面:交互式和编程式。
交互式界面:输入 copilot 启动交互会话,你可以与 Copilot 对话,让它执行一个或多个任务,并给它反馈和引导工作方向。交互界面有两种模式:默认的提问/执行模式,以及 plan 模式,在这个模式下 Copilot 会为你想完成的任务构建结构化的实现计划。按 Shift+Tab 在模式之间循环。在 plan 模式下,Copilot 分析你的请求、提出澄清问题以理解范围和需求,并在写任何代码之前构建计划,帮助你在代码写出之前发现误解。
编程式界面:也可以直接在命令行上给 CLI 传一个提示,CLI 完成任务后退出。使用 -p 或 --prompt 命令行选项;要让 Copilot 修改和执行文件,还要用批准选项(见「权限与工具控制」):
copilot -p "Show me this week's commits and summarize them" --allow-tool='shell(git)'也可以用脚本输出命令行选项并通过管道传给 copilot。
小心:使用
--allow-all-tools这样的自动批准选项时,Copilot 对你电脑上文件的访问权限与你相同,可以不经你事先批准运行你能运行的任何 shell 命令。
在沙箱里运行命令
为了防止 Copilot 修改你不想让它碰的文件,可以强制智能体在本地沙箱环境里运行命令,或者在云端隔离的环境里运行整个 CLI 会话。
- 本地沙箱:在 Copilot 会话里启用本地沙箱,以限制它对你的文件系统、网络和系统能力的访问:在会话里运行
/sandbox enable - 云端沙箱:在隔离的、云端托管的环境里启动 Copilot 会话,适合想运行代码而不影响本地机器、在使用之间保持会话状态、从另一台机器继续会话,或并行运行多个任务。云端沙箱策略继承自云端智能体策略,防火墙规则等现有安全控制无需额外设置就延伸到云端沙箱。启动云端会话:
copilot --cloud
用例
本地任务:从项目目录让 Copilot 修改项目里的代码(如「Change the background-color of H1 headings to dark blue」);询问文件的变更历史(「Show me the last 5 changes made to the CHANGELOG.md file...」);让它改进代码或文档;帮你做 Git 操作(「Commit the changes to this repo」「Revert the last commit, leaving the changes unstaged」);从零创建应用做概念验证;让它解释为什么它做的某个改动没有按预期工作,或修复上一次改动的问题。
涉及 GitHub 的任务:获取并显示你在 GitHub 上的工作详情(「List my open PRs」「List all open issues assigned to me in OWNER/REPO」);让 Copilot 处理一个 issue(给它 issue 链接,让它在合适命名的分支上开始工作);让它做文件改动并在 GitHub 上发起 pull request(Copilot 代表你创建 pull request,你被标记为作者);让它在 GitHub 上为你创建 issue;让它检查某个 pull request 的代码改动并报告严重错误;管理 pull request(合并、关闭);用 GitHub MCP 服务器查找特定类型的 issue;查找或创建 GitHub Actions 工作流。如果你知道某个特定 MCP 服务器能完成某个任务,在提示里点明它有助于 Copilot 给出你想要的结果。
中途引导对话
可以在 Copilot 思考时与它互动来引导对话:排队额外的消息(发送后续消息把对话引向另一个方向,或排队额外的指令让 Copilot 在完成当前回复后处理);拒绝时给出行内反馈(拒绝工具权限请求时,可以就这次拒绝给 Copilot 行内反馈,让它调整方法而不必完全停下来)。
自动上下文管理
Copilot 自动管理你的对话上下文:自动压缩(对话接近 token 上限的 95% 时,Copilot 在后台自动压缩历史而不打断你的工作流,这让会话几乎可以无限长);手动控制(用 /compact 随时手动压缩上下文,按 Esc 取消);可视化用量(/context 命令显示详细的 token 用量明细,帮你了解上下文窗口如何被使用)。
定制 Copilot CLI
可以用多种方式定制:自定义指令(给 Copilot 关于项目以及如何构建、测试和验证改动的额外上下文,所有自定义指令文件现在是合并而不是按优先级回退);MCP 服务器(让 Copilot 访问不同的数据源和工具);自定义智能体(为不同任务创建 Copilot 的专门版本,比如定制成遵循团队指南的前端专家;Copilot 还包含它自动委派常见任务的专门智能体);Hooks(在智能体执行的关键点执行自定义 shell 命令,实现验证、日志、安全扫描或工作流自动化);Skills(用指令、脚本和资源增强 Copilot 执行专门任务的能力);Copilot Memory(让 Copilot 通过存储「记忆」建立对仓库的持久理解,这些记忆是它在工作时推断出的关于编码约定、模式和偏好的信息,减少了在对话里反复解释上下文的需要)。见「定制」页。
安全考虑
使用 Copilot CLI 时,它可以代表你执行任务,如执行或修改文件、运行 shell 命令。所以要始终牢记安全,就像你直接处理文件或在终端里直接运行命令时一样,并且在 Copilot 请求批准时仔细检查建议的命令。Copilot CLI 遵循在企业、组织和仓库级别配置的内容排除策略,被排除的文件不会用作上下文。受信任目录的设置见「认证与配置」页。