Appearance
GitHub Copilot CLI 是一款在终端中使用的 AI 编程代理,支持自然语言完成本地代码任务和 GitHub.com 操作(PR 管理、Issue 等)。它既可以交互对话,也可以通过 --autopilot 全自动运行,还支持通过 MCP Server、自定义代理、Hooks 等机制深度扩展——是 Claude Code CLI 之外另一个成熟的终端 AI 开发工具选项。
GitHub Copilot CLI 完整介绍:终端 AI 编程代理核心概念
什么是 Copilot CLI
GitHub Copilot CLI 让你直接在终端里用自然语言完成开发任务,无需切换到 IDE 或浏览器。典型使用场景:
本地任务:
- 修改代码:
"把所有 H1 标题的背景色改成深蓝色" - 查看变更历史:
"显示 CHANGELOG.md 最近 5 次修改" - 提交代码:
"把这个仓库的修改提交" - 诊断问题:
"你刚才说应用在 localhost:3002 运行正常,但实际上…"
GitHub.com 操作:
- 列出 PR/Issue:
"列出我的所有 Open PR" - 从 URL 处理 Issue:直接粘贴 Issue 链接,让 Copilot 开始处理
- 创建 PR:
"把这个文件改动提交并创建一个 PR" - 审查 PR:
"检查 PR #57575 的修改"
支持平台
- Linux
- macOS
- Windows(通过 PowerShell 和 WSL)
使用模式
交互模式
bash
copilot启动一个持续对话的会话,支持:
- 普通模式:逐步确认,适合探索和调整
- Plan Mode(按
Shift+Tab切换):AI 先生成计划,你批准后再执行 - Autopilot Mode(再次
Shift+Tab):自主完成多步骤任务,无需逐步确认
编程(非交互)模式
bash
# 直接执行任务
copilot -p "显示本周的所有 Git 提交并生成摘要" --allow-tool='shell(git)'
# 结合脚本输出
./generate-options.sh | copilot使用
--allow-all-tools时,Copilot 拥有与当前用户相同的系统权限,需谨慎。
自动上下文管理
Copilot CLI 会自动管理上下文窗口:
- 自动压缩:上下文即将满时自动压缩历史
/compact:手动压缩上下文,保留关键信息/context:查看当前上下文使用量和 token 消耗情况
扩展与自定义
Copilot CLI 提供了丰富的扩展机制:
| 扩展方式 | 说明 |
|---|---|
| 自定义指令 | AGENTS.md、.github/copilot-instructions.md 等,自动加载的规则文件 |
| Skills | 针对特定任务的指令文件,可手动触发或自动匹配 |
| MCP Servers | 接入外部服务(数据库、API、日历等)的工具集 |
| Hooks | 在会话生命周期事件(工具调用前后、会话开始/结束)执行自定义 shell 命令 |
| 自定义代理 | 针对特定领域的专项代理配置(含独立权限和工具集) |
| Plugins | 打包分发以上扩展能力的安装包(适合团队统一配置) |
权限控制
Copilot CLI 需要你明确授权才能执行工具调用:
bash
# 允许所有工具(完全信任模式)
copilot --allow-all-tools
# 只允许指定工具
copilot --allow-tool='shell' --allow-tool='write'
# 拒绝特定危险操作
copilot --allow-all-tools --deny-tool='shell(git push)' --deny-tool='shell(rm -rf)'安全建议:在虚拟机、容器或专用沙箱环境中运行,并严格限制允许的工具集。
模型选择
默认模型:Claude Sonnet 4.5(通用编程能力与速度的平衡)
切换模型:
bash
# 会话中切换
/model claude-opus-4-7
# 启动时指定
copilot --model claude-opus-4-7使用自定义模型(BYOK)
通过环境变量接入自定义模型提供商:
bash
export COPILOT_PROVIDER_BASE_URL="https://api.your-provider.com/v1"
export COPILOT_PROVIDER_TYPE="openai" # openai | azure | anthropic
export COPILOT_PROVIDER_API_KEY="your-api-key"
export COPILOT_MODEL="your-model-name"要求:模型必须支持工具调用(tool calling)、流式输出(streaming),且上下文窗口至少 128k tokens。
通过 ACP 协议集成
Copilot CLI 支持 ACP(Agent Communication Protocol),这是与 AI 代理交互的开放标准,允许将 Copilot CLI 集成到更大的自动化系统中。
与 Claude Code CLI 的对比
如果你在评估 Copilot CLI 还是 Claude Code:
| 特性 | Copilot CLI | Claude Code CLI |
|---|---|---|
| 模型默认 | Claude Sonnet(可切换) | Claude(Anthropic 原生) |
| GitHub 集成 | 原生支持(PR/Issue 操作) | 需通过工具或 MCP |
| 计费方式 | Copilot 订阅 | Claude API 单独计费 |
| 定制扩展 | Skills/Plugins/Hooks | CLAUDE.md/MCP Servers |
| 快照回滚 | 内置(Esc 键) | 需手动 Git 操作 |
常见问题
Q: Copilot CLI 和 IDE 里的 Copilot 哪个更强大?
A: 两者侧重不同。IDE Copilot 专注于代码补全和 Chat;CLI 更适合自动化任务、多步骤操作、GitHub 工作流集成,以及需要完整 shell 权限的任务。
Q: 可以在没有 GitHub 仓库的目录中使用吗?
A: 可以。Copilot CLI 可以在任何目录运行,不强制要求是 Git 仓库。但某些 GitHub 功能(如 PR 管理)需要仓库上下文才能工作。
Q: 和 ChatGPT/Claude.ai 网页版相比有什么优势?
A: Copilot CLI 直接运行在你的开发环境中,可以访问本地文件、执行 shell 命令、读取 Git 历史——这些是网页 AI 无法做到的。它是"能真正干活"的代理,而不只是聊天界面。