Skip to main content

GitHub Copilot CLI 命令参考

查找有助于你有效使用 Copilot CLI 的命令和键盘快捷键。

命令行命令

命令Purpose
copilot启动交互式用户界面。
copilot help [topic]显示帮助信息。 帮助主题包括:config、、commands``environmentloggingpermissions
copilot init初始化此存储库的Copilot自定义说明
copilot update下载并安装最新版本。
copilot version显示版本信息并检查更新。
copilot login通过 OAuth 设备流使用 Copilot 进行身份验证。 接受 --host HOST 指定 GitHub 主机 URL (默认值: https://github.com) 。
copilot logout注销 GitHub 并删除存储的凭据。
copilot plugin管理插件和插件市场。

交互式界面中的全局快捷方式

ShortcutPurpose
@ FILENAME将文件内容包含在上下文中。
          <kbd>Ctrl</kbd>+然后 <kbd>X</kbd>`/`  | 开始键入提示后,这样就可以运行斜杠命令,例如,如果要更改模型,而无需重新键入提示。 |

| Esc | 取消当前操作。 | | ! COMMAND | 在本地 shell 中执行命令,绕过 Copilot。 | | Ctrl+C | 取消操作/清除输入。 按两次退出。 | | Ctrl+D | 关闭。 | | Ctrl+L | 清除屏幕。 | | Shift+Tab | 在标准模式、计划和 Autopilot 模式之间循环。 |

交互式界面中的时间线快捷方式

ShortcutPurpose
ctrl+o尽管提示输入中没有任何内容,但这将展开 Copilot的响应时间线中的最近项以显示更多详细信息。
ctrl+e尽管提示输入中没有任何内容,但这会将 Copilot的响应时间线中的所有项目展开。
ctrl+t展开/折叠响应中推理的显示。
ShortcutPurpose
          <kbd>Ctrl</kbd>+<kbd>A</kbd>        | 移动到行首(输入时)。 |

| Ctrl+B | 移动到上一个字符。 | | Ctrl+E | 移动到行的末尾(键入时)。 | | Ctrl+F | 移动到下一个字符。 | | Ctrl+G | 在外部编辑器中编辑提示。 | | Ctrl+H | 删除上一个字符。 | | Ctrl+K | 从光标删除到行尾。 如果光标位于行的末尾,请删除换行符。 | | Ctrl+U | 从光标删除到行首。 | | Ctrl+W | 删除上一个单词。 | | 主页 | 移动到当前行的开头。 | | 结束 | 移动到当前行的末尾。 | | Ctrl+Home | 移动到文本的开头。 | | Ctrl+结束 | 移动到文本的末尾。 | | +/ | 按单词移动光标。 | | / | 浏览命令历史。 |

交互式接口中的斜杠命令

命令Purpose
/add-dir PATH将目录添加到允许的文件访问列表。
/agent浏览并选择可用代理(如果有)。
          `/allow-all`、`/yolo`                               | 启用所有权限(工具、路径和 URL)。 |

| /clear/new | 清除对话历史记录。 | | /compact | 汇总对话历史记录以减少上下文窗口使用情况。 | | /context | 显示上下文窗口令牌使用情况和可视化效果。 | | /cwd/cd [PATH] | 更改工作目录或显示当前目录。 | | /delegate [PROMPT] | 使用 AI 生成的拉取请求提交更改到远程存储库。 | | /diff | 查看当前目录中所做的更改。 | | /exit/quit | 退出 CLI。 | | /experimental [on\|off] | 切换或打开/关闭实验功能。 | | /feedback | 提供有关 CLI 的反馈。 | | /fleet [PROMPT] | 启用任务的各部分由子代理并行执行。 请参阅“使用 /fleet 命令并行运行任务”。 | | /help | 显示交互式命令的帮助。 | | /ide | 连接到 IDE 工作区。 | | /init | 为此存储库初始化 Copilot 自定义指令和智能体功能。 | | /list-dirs | 显示允许访问文件的所有目录。 | | /login | 登录 Copilot。 | | /logout | 退出 Copilot。 | | /lsp [show\|test\|reload\|help] [SERVER-NAME] | 管理语言服务器配置。 | | /mcp [show\|add\|edit\|delete\|disable\|enable] [SERVER-NAME] | 管理 MCP 服务器配置。 | | /model/models [MODEL] | 选择要使用的 AI 模型。 | | /plan [PROMPT] | 在编码之前创建实现计划。 | | /plugin [marketplace\|install\|uninstall\|update\|list] [ARGS...] | 管理插件和插件市场。 | | /rename NAME | 重命名当前会话(/session rename 的别名)。 | | /reset-allowed-tools | 重置允许的工具列表。 | | /resume [SESSION-ID] | 通过从列表中选择(可选指定会话 ID)切换到其他会话。 | | /review [PROMPT] | 运行代码评审代理以分析更改。 | | /session [checkpoints [n]\|files\|plan\|rename NAME] | 显示会话信息和工作区摘要。 请使用子命令查看详细信息。 | | /share [file\|gist] [PATH] | 将会话共享到 Markdown 文件或 GitHub Gist。 | | /skills [list\|info\|add\|remove\|reload] [ARGS...] | 管理技能以提升能力。 | | /terminal-setup | 为多行输入支持配置终端(Shift+EnterCtrl+Enter)。 | | /theme [show\|set\|list] [auto\|THEME-ID] | 查看或配置终端主题。 | | /usage | 显示会话使用情况指标和统计信息。 | | /user [show\|list\|switch] | 管理当前 GitHub 用户。 |

要获取所有可用的斜杠命令的完整列表,请在 CLI 的交互式界面中输入 /help

命令行选项

选项Purpose
--acp启动代理客户端协议服务器。
--add-dir=PATH将目录添加到允许的文件访问列表(可多次使用)。
--add-github-mcp-tool=TOOL添加一个工具,以便为 GitHub MCP 服务器启用,而不是默认 CLI 子集(可多次使用)。 将 * 用于所有工具。
--add-github-mcp-toolset=TOOLSET添加工具集以启用 GitHub MCP 服务器,而不是默认 CLI 子集(可多次使用)。 对所有工具集使用 all
--additional-mcp-config=JSON仅为此会话添加 MCP 服务器。 服务器配置可以作为 JSON 字符串或文件路径(前缀) @提供。 从~/.copilot/mcp-config.json扩充配置。 覆盖具有相同名称的任何已安装 MCP 服务器配置。
--agent=AGENT指定要使用的 自定义智能体。
--allow-all启用所有权限(等效于 --allow-all-tools --allow-all-paths --allow-all-urls)。
--allow-all-paths禁用文件路径验证并允许访问任何路径。
--allow-all-tools允许所有工具在不确认的情况下自动运行。 以编程方式使用 CLI 时是必需的(env: COPILOT_ALLOW_ALL)。
--allow-all-urls允许在没有确认的情况下访问所有 URL。
--allow-tool=TOOL ...CLI 有权使用的工具。 不会提示输入权限。 对于多个工具,请使用带引号的逗号分隔列表。
--allow-url=URL ...允许访问特定的网址或域。 对于多个 URL,请使用带引号的逗号分隔列表。
--alt-screen=VALUE使用终端备用屏幕缓冲区(onoff)。
--autopilot在提示模式下启用 autopilot 延续。 请参阅“允许 GitHub Copilot CLI 自主工作”。
--available-tools=TOOL ...只有这些工具可供模型使用。 对于多个工具,请使用带引号的逗号分隔列表。
--banner显示启动横幅。
--bash-env启用 BASH_ENV 对 bash shell 的支持。
--config-dir=PATH设置配置目录(默认值: ~/.copilot)。
--continue恢复最新的会话。
--deny-tool=TOOL ...CLI 没有使用权限的工具。 不会提示输入权限。 对于多个工具,请使用带引号的逗号分隔列表。
--deny-url=URL ...拒绝访问特定 URL 或域,优先于 --allow-url。 对于多个 URL,请使用带引号的逗号分隔列表。
--disable-builtin-mcps禁用所有内置 MCP 服务器(当前: github-mcp-server)。
--disable-mcp-server=SERVER-NAME禁用特定的 MCP 服务器(可以多次使用)。
--disable-parallel-tools-execution禁用工具的并行执行(LLM 仍可以进行并行工具调用,但它们将按顺序执行)。
--disallow-temp-dir防止自动访问系统临时目录。
--enable-all-github-mcp-tools启用所有 GitHub MCP 服务器工具,而不是默认 CLI 子集。
          `--add-github-mcp-toolset`和`--add-github-mcp-tool`选项被覆盖。 |

| --excluded-tools=TOOL ... | 这些工具将不适用于模型。 对于多个工具,请使用带引号的逗号分隔列表。 | | --experimental | 启用实验性功能(使用 --no-experimental 进行禁用)。 | | -h--help | 显示帮助。 | | -i PROMPT--interactive=PROMPT | 启动交互式会话并自动执行此提示。 | | --log-dir=DIRECTORY | 设置日志文件目录(默认值: ~/.copilot/logs/)。 | | --log-level=LEVEL | 设置日志级别(选项:none、、error``warninginfodebugall``default)。 | | --max-autopilot-continues=COUNT | Autopilot 模式下的最大延续消息数(默认值:无限制)。 请参阅“允许 GitHub Copilot CLI 自主工作”。 | | --model=MODEL | 设置要使用的 AI 模型。 | | --no-alt-screen | 禁用终端备用屏幕缓冲区。 | | --no-ask-user | ask_user禁用该工具(代理在不提出问题的情况下自主工作)。 | | --no-auto-update | 禁用自动下载 CLI 更新。 | | --no-bash-env | 禁用 BASH_ENV 对 bash shell 的支持。 | | --no-color | 禁用所有颜色输出。 | | --no-custom-instructions | 禁止从 AGENTS.md 相关文件中加载自定义指令。 | | --no-experimental | 禁用实验性功能。 | | --output-format=FORMAT | FORMAT 可以是 text (默认值)或 json (输出 JSONL:每行一个 JSON 对象)。 | | -p PROMPT--prompt=PROMPT | 以编程方式执行提示(完成后退出)。 | | --plain-diff | 禁用富差异渲染(通过你的 git 配置指定的差异工具进行语法高亮显示)。 | | --resume=SESSION-ID | 通过从列表中选择(可选)指定会话 ID 来恢复以前的交互式会话。 | | -s--silent | 仅输出代理响应(不使用使用情况统计信息),对于使用 -p脚本编写非常有用。 | | --screen-reader | 启用屏幕阅读器优化。 | | --secret-env-vars=VAR ... | 一个环境变量,其值需要在输出中被隐藏。 对于多个变量,请使用带引号的逗号分隔列表。 默认情况下,环境变量GITHUB_TOKEN``COPILOT_GITHUB_TOKEN中的值会被隐藏。 | | --share=PATH | 完成编程会话后,将会话共享到 Markdown 文件(默认路径: ./copilot-session-<ID>.md) 。 | | --share-gist | 在完成编程会话后,将会话共享到机密 GitHub gist。 | | --stream=MODE | 启用或禁用流模式(模式选项: onoff)。 | | -v--version | 显示版本信息。 | | --yolo | 启用所有权限(等效于 --allow-all)。 |

有关命令和选项的完整列表,请运行 copilot help

工具权限模式

          `--allow-tool`和`--deny-tool`选项接受格式为`Kind(argument)`的权限模式。 该参数是可选的, 省略它与该类型的所有工具匹配。
种类说明示例模式
shellShell 命令执行
          `shell(git push)`、`shell(git:*)`、`shell` |

| write | 文件创建或修改 | writewrite(src/*.ts) | | read | 文件或目录读取 | readread(.env) | | SERVER-NAME | MCP 服务器工具调用 | MyMCP(create_issue)MyMCP | | url | 通过 web 抓取或 shell 访问 URL | url(github.com)url(https://*.api.com) | | memory | 将事实存储到代理内存 | memory |

对于 shell 规则,:* 后缀会与命令主干匹配,然后跟一个空格,以避免部分匹配。 例如, shell(git:*) 匹配 git pushgit pull 不匹配 gitea

即使设置了拒绝规则, --allow-all 拒绝规则始终优先于允许规则。

# Allow all git commands except git push
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'

# Allow a specific MCP server tool
copilot --allow-tool='MyMCP(create_issue)'

# Allow all tools from a server
copilot --allow-tool='MyMCP'

环境变量

Variable说明
COPILOT_MODEL设置 AI 模型。
COPILOT_ALLOW_ALL将其设置为 true 以自动允许所有权限(相当于 --allow-all)。
COPILOT_AUTO_UPDATE设置为 false 禁用自动更新。
COPILOT_CUSTOM_INSTRUCTIONS_DIRS自定义说明中额外目录的逗号分隔列表。
COPILOT_SKILLS_DIRS技能附加目录的逗号分隔列表。
COPILOT_EDITOR用于交互式编辑的编辑器命令(在$VISUAL$EDITOR检查后)。 如果未设置,则默认为vi
COPILOT_GITHUB_TOKEN身份验证令牌。 优先于 GH_TOKENGITHUB_TOKEN
COPILOT_HOME重写配置和状态目录。 默认值:$HOME/.copilot
GH_TOKEN身份验证令牌。 优先于 GITHUB_TOKEN.
GITHUB_TOKEN身份验证令牌。
USE_BUILTIN_RIPGREPfalse 设置为使用系统的 ripgrep,而不是使用捆绑的版本。
PLAIN_DIFF设置为 true 禁用丰富的差异呈现。
COLORFGBG检测深色/浅色终端背景的回退机制
COPILOT_CLI_ENABLED_FEATURE_FLAGS要启用的功能标志的逗号分隔列表(例如)。 "SOME_FEATURE,SOME_OTHER_FEATURE"

配置文件设置

设置逐层下传,从用户到存储库再到本地,更具体的范围会覆盖更泛泛的范围。 命令行标志和环境变量始终优先。

Scope位置Purpose
用户~/.copilot/config.json所有存储库的全局默认值。 使用 COPILOT_HOME 环境变量指定备用路径。
资料库.github/copilot/settings.json共享存储库配置(提交到存储库)。
本地.github/copilot/settings.local.json个人替代(将此替代添加到 .gitignore)。

用户设置 (~/.copilot/config.json

密钥类型默认说明
allowed_urlsstring[][]允许的 URL 或域,无需提示。
alt_screenbooleanfalse使用终端备用屏幕缓冲区。
auto_updatebooleantrue自动下载 CLI 更新。
banner
          `"always"`
          \|
          `"once"`
          \|
          `"never"`
         | `"once"` | 动画横幅显示频率。 |

| bash_env | boolean | false | 启用 BASH_ENV 对 bash shell 的支持。 | | beep | boolean | true | 当需要注意时播放一声提示音。 | | compact_paste | boolean | true | 将大型粘贴折叠到压缩令牌中。 | | custom_agents.default_local_only | boolean | false | 仅使用本地自定义代理。 | | denied_urls | string[] | [] | 这些 URL 或域被阻止(优先于 allowed_urls)。 | | experimental | boolean | false | 启用实验性功能。 | | include_coauthor | boolean | true | 向 Co-authored-by 代理提交的 git 提交添加预告片。 | | companyAnnouncements | string[] | [] | 启动时随机显示的自定义消息。 | | log_level | "none" | "error" | "warning" | "info" | "debug" | "all" | "default" | "default" | 日志记录详细程度。 | | model | string | 变化 | 要使用的 AI 模型(请参阅 /model 命令)。 | | powershell_flags | string[] | ["-NoProfile", "-NoLogo"] | 启动时传递给 PowerShell 的pwsh标志。 仅限 Windows。 | | reasoning_effort | "low" | "medium" | "high" | "xhigh" | "medium" | 扩展思维的推理工作水平。 更高的级别使用更多的计算。 | | render_markdown | boolean | true | 在终端输出中呈现 Markdown。 | | screen_reader | boolean | false | 启用屏幕阅读器优化。 | | stream | boolean | true | 启用流响应。 | | store_token_plaintext | boolean | false | 当没有系统密钥链可用时,将身份验证令牌以纯文本形式存储在配置文件中。 | | streamer_mode | boolean | false | 隐藏预览模型名称和配额详细信息(录制时很有用)。 | | theme | "auto" | "dark" | "light" | "auto" | 终端颜色主题。 | | trusted_folders | string[] | [] | 具有预授予文件访问权限的文件夹。 | | update_terminal_title | boolean | true | 在终端标题中显示当前意向。 |

存储库设置 (.github/copilot/settings.json

存储库设置适用于在存储库中工作的每个人。 存储库级别仅支持一部分设置。 忽略不受支持的密钥。

密钥类型合并行为说明
companyAnnouncementsstring[]已替换 — 存储库优先启动时随机显示的消息。
enabledPluginsRecord<string, boolean>合并 - 存储库覆盖同一密钥的用户声明性插件自动安装。
extraKnownMarketplacesRecord<string, {...}>合并 - 存储库覆盖同一密钥的用户此存储库中提供的插件市场。
marketplacesRecord<string, {...}>合并 - 存储库覆盖同一密钥的用户插件市场(已弃用—使用 extraKnownMarketplaces)。

本地设置 (.github/copilot/settings.local.json

          `.github/copilot/settings.local.json`在存储库中创建不应提交的个人替代。 将此文件添加到 `.gitignore`.

本地配置文件使用与存储库配置文件 (.github/copilot/settings.json) 相同的架构,并优先于它。

挂钩参考

钩子是在会话的特定生命周期节点执行的外部命令,用于实现自定义自动化、安全控制和集成。 挂钩配置文件会自动从 .github/hooks/*.json 存储库中加载。

钩子配置格式

挂钩配置文件使用 JSON 格式和版本 1

指令钩

命令挂钩运行 shell 脚本,在所有挂钩类型上都受支持。

{
  "version": 1,
  "hooks": {
    "preToolUse": [
      {
        "type": "command",
        "bash": "your-bash-command",
        "powershell": "your-powershell-command",
        "cwd": "optional/working/directory",
        "env": { "VAR": "value" },
        "timeoutSec": 30
      }
    ]
  }
}
领域类型必需说明
type"command"是的必须是 "command"
bash字符串其中一个 bash/powershellUnix 的 Shell 命令。
powershell字符串其中一个 bash/powershell适用于 Windows 的 Shell 命令。
cwd字符串命令的工作目录(相对于存储库根目录或绝对目录)。
env对象要设置的环境变量(支持变量扩展)。
timeoutSec数字超时时间(以秒为单位) 默认值:30

提示钩子

提示挂钩自动提交文本,就好像用户键入了它一样。 它们仅在sessionStart上受支持,并在通过--prompt的任何初始提示之前运行。 文本可以是自然语言提示或斜杠命令。

{
  "version": 1,
  "hooks": {
    "sessionStart": [
      {
        "type": "prompt",
        "prompt": "Your prompt text or /slash-command"
      }
    ]
  }
}
领域类型必需说明
type"prompt"是的必须是 "prompt"
prompt字符串是的要提交的文本可以是自然语言消息或斜杠命令。

挂钩事件

事件触发时间已处理的输出
sessionStart新的或已恢复的会话开始。
sessionEnd会话终止。
userPromptSubmitted用户提交提示。
preToolUse在每个工具执行之前。是 — 可以允许、拒绝或修改。
postToolUse每个工具完成操作后。
agentStop主代理完成回合。是 — 可以阻止和强制继续。
subagentStop子代理完成。是 — 可以阻止和强制继续。
errorOccurred执行期间发生错误。

          `preToolUse` 决策控制

挂钩 preToolUse 可以通过将 JSON 对象写入 stdout 来控制工具执行。

领域价值观说明
permissionDecision
          `"allow"`、`"deny"`、`"ask"` | 工具是否已执行? 空输出使用默认行为。 |

| permissionDecisionReason | 字符串 | 显示给代理的原因。 决策 "deny"时是必要的。 | | modifiedArgs | 对象 | 替换工具参数以使用,而不是使用原始参数。 |

          `agentStop`
           / 
          `subagentStop` 决策控制
领域价值观说明
decision
          `"block"`、`"allow"` | 
          `"block"` 强制另一个代理将 `reason` 作为提示。 |

| reason | 字符串 | 当decision"block"时,提示下一轮。 |

挂钩匹配工具名称

工具名称说明
bash执行 shell 命令(Unix)。
powershell执行 shell 命令(Windows)。
view读取文件内容。
edit修改文件内容。
create创建新文件。
glob按模式查找文件。
grep搜索文件内容。
web_fetch抓取网页。
task运行子代理任务。

如果配置了同一类型的多个挂钩,则它们按顺序执行。 对于 preToolUse,如果任何挂钩返回 "deny",则阻止该工具。 挂钩故障(非零退出代码或超时)会记录并跳过,它们永远不会阻止代理执行。

MCP 服务器配置

MCP 服务器向 CLI 代理提供其他工具。 在~/.copilot/mcp-config.json中配置持久性服务器。 使用 --additional-mcp-config 来为单个会话添加服务器。

传输类型

类型说明必填字段
local / stdio本地进程通过 stdin/stdout 进行通信。
          `command`、`args` |

| http | 使用可流式 HTTP 传输的远程服务器。 | url | | sse | 使用服务器发送事件 (Server-Sent Events) 传输的远程服务器。 | url |

本地服务器配置字段

领域必需说明
command是的用于启动服务器的命令。
args是的命令参数(数组)。
tools是的要启用的工具:["*"],可以是所有工具或特定工具名称的列表。
env环境变量。 支持$VAR${VAR}``${VAR:-default}扩展。
cwd服务器的工作目录。
timeout工具调用超时(以毫秒为单位)。
type
          `"local"` 或 `"stdio"`。 默认值:`"local"`。 |

远程服务器配置字段

领域必需说明
type是的
          `"http"` 或 `"sse"`。 |

| url | 是的 | 服务器 URL。 | | tools | 是的 | 要启用的工具。 | | headers | 否 | HTTP 标头。 支持变量扩展。 | | oauthClientId | 否 | 静态 OAuth 客户端 ID(跳过动态注册)。 | | oauthPublicClient | 否 | OAuth 客户端是否为公共客户端。 默认值:true。 | | timeout | 否 | 工具调用超时(以毫秒为单位)。 |

筛选器映射

控制如何使用服务器配置中的filterMapping字段来处理 MCP 工具输出。

模式说明
none无筛选。
markdown将输出格式化为 Markdown。
hidden_characters删除隐藏或控制字符。 违约。

内置 MCP 服务器

CLI 包括内置 MCP 服务器,这些服务器在没有其他设置的情况下可用。

服务器说明
github-mcp-serverGitHubAPI 集成:问题、拉取请求、提交、代码搜索和 GitHub Actions。
playwright浏览器自动化:导航、单击、键入、屏幕截图和表单处理。
fetch通过该工具发送的 HTTP 请求。
time时间实用工具: get_current_timeconvert_time

用于 --disable-builtin-mcps 禁用所有内置服务器,或 --disable-mcp-server SERVER-NAME 禁用特定服务器。

MCP 服务器信任级别

MCP 服务器从多个源加载,每个源具有不同的信任级别。

来源信任级别需评审
内置
存储库 (.github/mcp.json中等推荐
工作区 (.mcp.json.vscode/mcp.json中等推荐
开发容器 (.devcontainer/devcontainer.json中等推荐
用户配置(~/.copilot/mcp-config.jsonUser-defined用户责任
远程服务器始终

所有 MCP 工具调用都需要显式权限。 这甚至适用于对外部服务的只读操作。

技能指南

功能是 Markdown 文件,用来扩展 CLI 的能力。 每个技能都位于其自己的目录中,其中包含一个 SKILL.md 文件。 调用(通过 /SKILL-NAME 或自动由代理调用)时,技能的内容将注入到会话中。

技能前置元数据字段

领域类型必需说明
name字符串是的技能的唯一标识符。 仅字母、数字和连字符。 最多 64 个字符。
description字符串是的技能的作用以及何时使用它。 最多 1024 个字符。
allowed-toolsString 或 String[]技能处于活动状态时自动允许的工具的逗号分隔列表或 YAML 数组。 将 "*" 用于所有工具。
user-invocable布尔用户是否可以调用技能 /SKILL-NAME。 默认值:true
disable-model-invocation布尔阻止代理自动调用此技能。 默认值:false

技能位置

技能将按照优先顺序从这些位置加载(在重复名称中,首次找到的优先)。

位置Scope说明
.github/skills/项目特定于项目的技能。
.agents/skills/项目替代项目位置。
.claude/skills/项目与 Claude 兼容的位置。
父母 .github/skills/继承Monorepo 父目录支持。
~/.copilot/skills/个人适用于所有项目的个人技能。
~/.claude/skills/个人与 Claude 兼容的个人定位设置。
插件目录插件已安装插件中的技能。
COPILOT_SKILLS_DIRS自定义其他目录(逗号分隔)。

命令(可选技能格式)

命令是存储为单个 .md 文件的 .claude/commands/技能的替代方法。 命令名称派生自文件名。 命令文件使用简化的格式(不需要 name 字段)和支持 descriptionallowed-tools以及 disable-model-invocation。 命令的优先级低于具有相同名称的技能。

自定义代理参考

自定义代理是在 Markdown 文件中定义的专用 AI 代理。 文件名(减扩展名)将成为代理 ID。 使用 .agent.md.md 用作文件扩展名。

内置代理

代理人默认模型说明
code-reviewclaude-sonnet-4.5高信噪比代码审查。 分析代码差异中的缺陷、安全问题和逻辑错误。
exploreclaude-haiku-4.5快速代码库浏览。 搜索文件、读取代码和回答问题。 提供不超过300字的简明答案。 可以安全地并行运行。
general-purposeclaude-sonnet-4.5支持复杂多步骤任务的全功能代理。 在单独的上下文窗口中运行。
researchclaude-sonnet-4.6深度研究代理。 基于代码库、相关存储库和 Web 中的信息生成报表。
taskclaude-haiku-4.5命令执行(测试、构建、代码检查)。 成功时返回简要摘要,失败时返回全部输出。

自定义代理程序前端字段

领域类型必需说明
description字符串是的说明显示在代理列表和task 工具中。
infer布尔允许主代理自动委派。 默认值:true
mcp-servers对象要连接的 MCP 服务器。 使用与~/.copilot/mcp-config.json相同的模式。
model字符串此代理的 AI 模型。 未设置时,继承外部代理的模型。
name字符串显示名称。 默认为文件名。
tools字符串[]代理可用的工具。 默认值: ["*"] (所有工具)。

自定义代理位置

Scope位置
项目
          `.github/agents/` 或 `.claude/agents/` |

| 用户 | ~/.copilot/agents/~/.claude/agents/ | | 插件 | <plugin>/agents/ |

项目级代理优先于用户级代理。 插件代理的优先级最低。

权限审批结果

当 CLI 提示执行作的权限时,可以使用以下键进行响应。

密钥Effect
y允许此特定请求一次。
n拒绝此特定请求一次。
!允许会话其余部分的所有类似请求。
#拒绝会话其余部分的所有类似请求。
?显示有关请求的详细信息。

运行 /clear 或启动新会话时,会话审批会重置。

Flag说明
AUTOPILOT_MODEexperimental自动运行模式。
BACKGROUND_AGENTSstaff在后台运行代理。
QUEUED_COMMANDSstaff代理运行时的队列命令。
LSP_TOOLSon语言服务器协议工具。
PLAN_COMMANDon交互式规划模式。
AGENTIC_MEMORYon跨会话的持久内存。
CUSTOM_AGENTSon自定义代理定义。

OpenTelemetry 监控

Copilot CLI 可以通过 OpenTelemetry(OTel )导出跟踪和指标,从而了解代理交互、LLM 调用、工具执行和令牌使用情况。 所有信号名称和属性都遵循 OTel GenAI 语义约定

默认情况下,OTel 处于关闭状态,开销为零。 当满足以下任一条件时,它将激活:

  • COPILOT_OTEL_ENABLED=true
  •         `OTEL_EXPORTER_OTLP_ENDPOINT` 已设置
    
  •         `COPILOT_OTEL_FILE_EXPORTER_PATH` 已设置
    

OTel 环境变量

Variable默认说明
COPILOT_OTEL_ENABLEDfalse显式启用 OTel。 如果 OTEL_EXPORTER_OTLP_ENDPOINT 已设置,则不是必需的。
OTEL_EXPORTER_OTLP_ENDPOINTOTLP 终结点 URL。 设置此项会自动启用 OTel。
COPILOT_OTEL_EXPORTER_TYPEotlp-http导出程序类型: otlp-httpfile。 当设置file时自动选择COPILOT_OTEL_FILE_EXPORTER_PATH
OTEL_SERVICE_NAMEgithub-copilot资源属性中的服务名称。
OTEL_RESOURCE_ATTRIBUTES额外的资源属性作为逗号分隔的key=value键值对。 对特殊字符使用百分比编码。
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENTfalse捕获完整的提示和响应内容。 请参阅 内容捕获
OTEL_LOG_LEVELOTel 诊断日志级别:NONE、、ERROR``WARNINFO``DEBUGVERBOSEALL
COPILOT_OTEL_FILE_EXPORTER_PATH将所有信号作为 JSON 行写入此文件。 设置此项会自动启用 OTel。
COPILOT_OTEL_SOURCE_NAMEgithub.copilot用于跟踪器和测量仪器的检测范围名称。
OTEL_EXPORTER_OTLP_HEADERSOTLP 导出器(例如 Authorization=Bearer token)的身份验证头。

Traces

运行时为每个代理交互发出分层跨度树。 每个树都包含根invoke_agent范围,以及chat``execute_tool子范围。

          `invoke_agent` span 属性

代理程序的整个调用过程:涵盖单个用户消息的所有 LLM 调用和工具执行。 范围类型: CLIENT.

Attribute说明
gen_ai.operation.nameinvoke_agent
gen_ai.provider.name提供者(例如githubanthropic
gen_ai.agent.id会话标识符
gen_ai.agent.name代理名称(仅限子代理)
gen_ai.agent.description代理说明(仅限子代理)
gen_ai.agent.version运行时版本
gen_ai.conversation.id会话标识符
gen_ai.request.model请求的模型
gen_ai.response.model已解析的模型
gen_ai.response.id上次响应 ID
gen_ai.response.finish_reasons
          `["stop"]` 或 `["error"]` |

| gen_ai.usage.input_tokens | 总输入令牌数(所有轮次) | | gen_ai.usage.output_tokens | 总输出标记(所有轮次) | | gen_ai.usage.cache_read.input_tokens | 读取缓存的输入令牌 | | gen_ai.usage.cache_creation.input_tokens | 创建的缓存输入令牌 | | github.copilot.turn_count | LLM 往返次数 | | github.copilot.cost | 货币成本 | | github.copilot.aiu | AI 单元消耗 | | server.address | 服务器主机名 | | server.port | 服务器端口 | | error.type | 错误类名称(出错时) | | gen_ai.input.messages | 完整输入消息作为 JSON 格式(仅限内容捕获) | | gen_ai.output.messages | JSON格式的完整输出消息(仅用于捕获内容) | | gen_ai.system_instructions | 系统提示内容以 JSON 格式(仅内容捕获) | | gen_ai.tool.definitions | 工具模式为 JSON(仅内容捕获) |

          `chat` span 属性

每个 LLM 请求的一个范围。 范围类型: CLIENT.

Attribute说明
gen_ai.operation.namechat
gen_ai.provider.name提供者名称
gen_ai.request.model请求的模型
gen_ai.conversation.id会话标识符
gen_ai.response.id响应 ID
gen_ai.response.model已解析的模型
gen_ai.response.finish_reasons停止原因
gen_ai.usage.input_tokens此轮次输入令牌
gen_ai.usage.output_tokens此轮次输出令牌
gen_ai.usage.cache_read.input_tokens读取缓存令牌
gen_ai.usage.cache_creation.input_tokens创建的缓存令牌
github.copilot.cost轮次成本
github.copilot.aiuAI 单元消耗于当前回合
github.copilot.server_duration服务器端持续时间
github.copilot.initiator请求发起者
github.copilot.turn_id轮次标识符
github.copilot.interaction_id交互标识符
server.address服务器主机名
server.port服务器端口
error.type错误类名称(出错时)
gen_ai.input.messages将完整的提示消息作为 JSON(仅限内容捕获)
gen_ai.output.messagesJSON 形式的完整响应消息(仅内容捕获)
gen_ai.system_instructions系统提示内容以 JSON 格式(仅内容捕获)

          `execute_tool` span 属性

为每个工具调用指定一个跨度。 范围类型: INTERNAL.

Attribute说明
gen_ai.operation.nameexecute_tool
gen_ai.provider.name提供程序名称(如果可用)
gen_ai.tool.name工具名称(例如, readFile
gen_ai.tool.typefunction
gen_ai.tool.call.id工具调用标识符
gen_ai.tool.description工具说明
error.type错误类名称(出错时)
gen_ai.tool.call.arguments工具输入参数以 JSON 格式(仅内容捕获)
gen_ai.tool.call.result工具输出为 JSON(仅限内容捕获)

Metrics

GenAI 约定指标

Metric类型单位说明
gen_ai.client.operation.duration直方图sLLM API 调用和代理调用持续时间
gen_ai.client.token.usage直方图tokens按类型排序的令牌计数 (input/output
gen_ai.client.operation.time_to_first_chunk直方图s接收第一个流媒体数据块的时间
gen_ai.client.operation.time_per_output_chunk直方图s第一个区块后的区块间延迟

特定于供应商的指标

Metric类型单位说明
github.copilot.tool.call.countCounter电话工具调用由 gen_ai.tool.namesuccess
github.copilot.tool.call.duration直方图s工具执行由 gen_ai.tool.name 产生的延迟
github.copilot.agent.turn.count直方图转动每个代理调用的 LLM 往返次数

跨事件

在活动 chatinvoke_agent 跨度上记录的生命周期事件。

事件说明密钥属性
github.copilot.session.truncation对话历史记录被截断
          `github.copilot.token_limit`、`github.copilot.pre_tokens`、`github.copilot.post_tokens`、`github.copilot.tokens_removed`、`github.copilot.messages_removed` |

| github.copilot.session.compaction_start | 历史压缩开始 | 没有 | | github.copilot.session.compaction_complete | 已完成历史记录压缩 | github.copilot.successgithub.copilot.pre_tokensgithub.copilot.post_tokensgithub.copilot.tokens_removedgithub.copilot.messages_removed | | github.copilot.skill.invoked | 调用了技能 | github.copilot.skill.namegithub.copilot.skill.pathgithub.copilot.skill.plugin_namegithub.copilot.skill.plugin_version | | github.copilot.session.shutdown | 会话正在关闭 | github.copilot.shutdown_typegithub.copilot.total_premium_requestsgithub.copilot.lines_addedgithub.copilot.lines_removedgithub.copilot.files_modified_count | | github.copilot.session.abort | 用户取消了当前操作 | github.copilot.abort_reason | | exception | 会话错误 | github.copilot.error_typegithub.copilot.error_status_codegithub.copilot.error_provider_call_id |

资源属性

所有信号都携带这些资源属性。

Attribute价值
service.name
          `github-copilot` (可通过 `OTEL_SERVICE_NAME`) |

| service.version | 运行时版本 |

内容捕获

默认情况下,不会捕获提示内容、响应或工具参数,仅捕获模型名称、令牌计数和持续时间等元数据。 若要捕获完整内容,请设置 OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true

警告

内容捕获可能包括敏感信息,例如代码、文件内容和用户提示。 仅在受信任的环境中启用此功能。

启用内容捕获后,将填充以下属性。

AttributeContent
gen_ai.input.messages完整提示消息 (JSON)
gen_ai.output.messages完整响应消息 (JSON)
gen_ai.system_instructions系统提示内容 (JSON)
gen_ai.tool.definitions工具架构 (JSON)
gen_ai.tool.call.arguments工具输入参数
gen_ai.tool.call.result工具输出结果

延伸阅读

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-plugin-reference)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference)