Copilot 命令行界面(CLI) 将其配置、会话历史记录、日志和自定义存储在计算机上的单个目录中。 默认情况下,此目录为 ~/.copilot (即 $HOME/.copilot) 。
本文介绍此目录的内容以及如何使用它们。
目录概述
该 ~/.copilot 目录包含以下顶级项。
| 路径 | 类型 | 说明 |
|---|---|---|
agents/ | 目录 | 个人自定义代理定义 |
config.json | File | 自动管理的应用程序状态(身份验证、已安装的插件和其他内部数据) |
copilot-instructions.md | File | 个人自定义说明(适用于所有会话) |
extensions/ | 目录 | 由 CLI 加载的个人扩展 |
hooks/ | 目录 | 用户级挂钩脚本 |
ide/ | 目录 | IDE 集成状态 |
installed-plugins/ | 目录 | 已安装的插件文件 |
instructions/ | 目录 | 其他个人 *.instructions.md 文件 |
logs/ | 目录 | 会话日志文件 |
lsp-config.json | File | 用户级 LSP 服务器定义 |
mcp-config.json | File | 用户级 MCP 服务器定义 |
mcp-oauth-config/ | 目录 | MCP OAuth 令牌和注册后备存储 |
mcp-secrets/ | 目录 | MCP 密钥占位符的本地后备存储和索引 |
permissions-config.json | File | 每个项目保存的工具和目录权限 |
plugin-data/ | 目录 | 已安装插件的持久数据 |
session-state/ | 目录 | 会话历史记录和工作区数据 |
command-history-state/ | 目录 | 命令历史记录数据 |
session-store.db | File | 用于跨会话数据的 SQLite 数据库 |
settings.json | File | 个人配置设置 |
skills/ | 目录 | 个人自定义技能定义 |
注意
并非所有项都立即出现。 有些是在首次使用特定功能时按需创建的,例如, installed-plugins/ 仅在安装第一个插件后显示。
用户可编辑的文件
以下文件旨在由你直接编辑,或通过 CLI 命令进行管理。
settings.json
这是用于 Copilot 命令行界面(CLI) 的主配置文件。 在会话中,可以使用交互式 /settings 命令更改特定值,或运行 /settings KEY VALUE 以设置单个值,或直接在文本编辑器中编辑文件。 该文件支持带有注释的 JSON(JSONC)。
注意
用户可编辑的设置最初存储在 config.json. 他们被转移到 settings.json了。 启动时存在 config.json 的任何用户设置都将自动迁移到 settings.json。
有关设置的完整列表及其与存储库级配置交互的方式,请参阅本文后面的 配置文件设置 。
提示
在终端中运行 copilot help config 以获取快速参考。
copilot-instructions.md
适用于所有会话的个人自定义说明,无论你正在使用哪个项目。 此文件的工作方式与存储库级别 copilot-instructions.md 相同,但全局应用。
有关详细信息,请参阅“为GitHub Copilot添加存储库自定义说明”。
instructions/
将此处的其他个人说明文件存储为 *.instructions.md 文件。 这些内容将与 copilot-instructions.md 一起加载,并适用于所有会话。 可以按主题组织说明,例如 ~/.copilot/instructions/code-style.instructions.md。
mcp-config.json
定义用户级别可用的 MCP(模型上下文协议)服务器。 无论你处于哪个项目目录,这些服务器都可以在所有会话中使用。 项目级 MCP 配置(在 .mcp.json 或 .github/mcp.json 中)在当服务器名称冲突时,优先于用户级定义。
有关详细信息,请参阅“为 GitHub Copilot 命令行界面 (CLI) 添加 MCP 服务器”。
lsp-config.json
定义在用户级别提供的语言服务器协议标准(LSP)服务器。 这些服务器向代理提供语言智能(诊断、完成等)。 使用 /lsp 斜杠命令管理此文件,或直接对其进行编辑。
有关详细信息,请参阅“为 GitHub Copilot 命令行界面 (CLI) 添加 LSP 服务器”。
agents/
将个人自定义代理定义存储在此处作为 .agent.md 文件。 放置在此目录中的代理在所有会话中都可用。 项目级智能体(位于 .github/agents/ 中)如果与个人智能体同名,将优先使用。
有关详细信息,请参阅“为 GitHub Copilot 命令行界面 (CLI) 创建和使用自定义智能体”。
skills/
在此处存储个人自定义技能定义。 每个技能都位于一个包含 SKILL.md 文件的子目录中,例如 ~/.copilot/skills/my-skill/SKILL.md。 所有会话中均可使用个人技能。 项目级别的技能优先于个人技能(如果两者同名)。
有关详细信息,请参阅“为 GitHub Copilot 命令行界面 (CLI) 添加代理技能”。
hooks/
在此处存储用户级挂钩脚本。 这些挂钩适用于所有会话。 还可以使用 ~/.copilot/settings.json 键在用户配置文件 (hooks) 中以内联方式定义挂钩。 存储库级挂钩(in .github/hooks/)与用户级挂钩一起加载。
有关详细信息,请参阅“与 GitHub Copilot 命令行界面 (CLI) 一起使用挂钩”。
extensions/
在此处存储用户级扩展文件。 此目录中的扩展可在会话之间使用。
可以手动在此目录中创建文件,或搭建扩展基架,然后编辑生成的文件。
自动管理文件
以下项由 CLI 管理。 通常不应手动编辑它们。
config.json
存储 CLI 自动管理的内部应用程序状态,包括身份验证数据、已安装的插件元数据和其他运行时信息。 通常不需要编辑此文件。
注意
早期版本的Copilot 命令行界面(CLI)将用户设置和应用程序状态存储在config.json中。 用户可编辑的设置现在位于 settings.json。 启动时的任何用户设置 config.json 都将自动迁移到 settings.json。 应用程序状态字段(例如loggedInUsers、installedPlugins和firstLaunchAt``staff)仍保留在其中config.json,并且不会迁移。
permissions-config.json
存储已保存的工具和目录权限决策,按项目位置进行组织。 批准工具或授予对当前位置目录的访问权限时,CLI 会在此处记录决策,这样就不会在同一存储库或目录中再次提示你。
注意
如果要重置项目的权限,可以从此文件中删除相关条目。 但是,在会话运行时编辑文件可能会导致意外行为。 CLI 会自动删除磁盘上不再存在其位置路径的条目。
文件位置
Copilot 命令行界面(CLI) 从配置目录中定位该文件。
| 优先级 | 来源 | 使用的文件 |
|---|---|---|
| 1 | --config-dir=DIRECTORY | DIRECTORY/ |
| 2 | COPILOT_HOME | $COPILOT_HOME/ |
| 3 | Default | ~/ |
此选项 --config-dir 是旧选项。 需要更改配置目录时首选 COPILOT_HOME 。
在Windows上,默认文件通常是:
C:\Users\YOUR-USER\.copilot\permissions-config.json
较旧的构建版本使用了一个名为 permissions-config 的无扩展名文件。 如果 permissions-config.json 不存在,但无扩展文件仍然存在,CLI 仍遵循旧文件。 新编辑时请使用 permissions-config.json。
当未设置 ~/.copilot 时,程序会在启动时将先前基于 XDG 的配置位置迁移到 COPILOT_HOME。
位置键
顶层 locations 对象以绝对路径为键。
- 对于 Git 存储库,请使用用于界定权限范围的 Git 根目录。
- 链接的工作树会解析到主仓库的根目录,因此它们与主工作树共享权限。
- 子模块使用自己的工作目录。
- 对于不在 Git 存储库中的目录,请使用规范化当前工作目录。
密钥必须与运行的位置 Copilot 命令行界面(CLI) 匹配。 如果密钥不匹配,则保存的审批将不适用。
CLI 会在会话启动时以及活动工作目录变更时加载对应位置中的审批配置。
架构
该文件必须包含 JSON 对象。
| 字段 | 类型 | Required | Default | 允许的值 | 说明 |
|---|---|---|---|---|---|
locations | 对象 | 否 | {} | 绝对路径键 | 用于保存审批的位置密钥的映射。 |
locations.<key> | 对象 | 否 | {} | 任意绝对位置键 | 已保存的针对某个仓库或目录的审批。 |
locations.<key>.tool_approvals | Array | 否 | [] | 审批对象 | 已批准用于此位置的工具。 |
locations.<key>.allowed_directories | 字符串数组 | 否 | [] | 绝对目录路径 | 路径门可以访问此位置的额外目录。 CLI 应用配置时,必须存在每个目录。 |
locations.<key>.tool_approvals[].kind | String | 是的 | 没有 | ||
commands、read、write、mcp、mcp-sampling、memory、custom-tool、extension-management、extension-permission-access | 选择审批类型。 | ||||
command | 字符串数组 | 是,对于 commands | 没有 | 命令标识符 | 待批准的 Shell 命令标识符。 |
serverName | String | 是,对于 mcp 和 mcp-sampling | 没有 | MCP 服务器名称 | 待批准的 MCP 服务器。 |
toolName | 字符串或 null | 是,对于 mcp | 没有 | MCP 工具名称,或 null | 要批准的 MCP 工具。 使用 null 批准服务器上的所有工具。 |
toolName | String | 是,对于 custom-tool | 没有 | 自定义工具名称 | 按确切名称审批的自定义工具。 |
operation | String | 否,对于 extension-management | 省略 | 扩展操作名称 | 待批准的扩展管理操作。 省略此字段以批准所有扩展管理操作。 |
extensionName | String | 是,对于 extension-permission-access | 没有 | 扩展名称 | 已批准对权限限制功能的访问的扩展。 |
permissions-config.json 不支持拒绝规则、“ask”规则、默认模式、URL 规则、工具筛选或存储库本地共享策略。 对于这些行为,请使用命令行选项,例如--deny-tool、--available-tools、--excluded-tools和--allow-url``--deny-url。 保存的 URL 规则存储在其中 settings.json,而不是存储在其中 permissions-config.json。
未知字段不是架构的一部分。 CLI 可能会忽略它们,以后的写入可能会删除它们。
审批类型
每个项 tool_approvals 必须是下列对象之一。
kind | 必填字段 | 可选字段 | Meaning |
|---|---|---|---|
commands | command | 没有 | 批准匹配的 shell 命令标识符。 |
read | 没有 | 没有 | 批准读取工具请求。 交互式 CLI 会话已自动批准读取,因此这通常是不必要的。 |
write | 没有 | 没有 | 批准创建和修改文件的工具请求。 路径提示仍可应用于允许的目录之外的路径。 |
mcp | |||
serverName、toolName | 没有 | 批准一个 MCP 工具,或者在 toolName 为 null 时批准服务器上的所有工具。 | |
mcp-sampling | serverName | 没有 | 批准针对单个服务器的 MCP 采样请求。 |
memory | 没有 | 没有 | 批准内存写入和投票请求。 |
custom-tool | toolName | 没有 | 按确切名称批准自定义工具。 |
extension-management | 没有 | operation | 批准扩展管理。 如果 operation 省略,则所有扩展管理操作都匹配。 |
extension-permission-access | extensionName | 没有 | 批准扩展对权限限制功能的访问权限。 |
对于 MCP 审批, serverName 必须与配置的 MCP 服务器名称完全匹配。 使用 MCP 配置中的原始服务器名称,而不是经过规范化处理的工具名称前缀。
Shell命令匹配
commandIdentifiers 匹配从 shell 请求中提取的命令标识符。 匹配完全一致,但不包括 :* 后缀。
| 图案 | Matches | 不匹配 |
|---|---|---|
git status | git status | git status --short |
git:* | ||
git、git status、git push | gitea | |
gh pr:* | ||
gh pr、gh pr view、gh pr create | gh repo view |
:* 后缀不是通用的 glob 模式。 它匹配完全相同的词干,或者匹配后面跟一个空格和更多文本的词干。
目录匹配
allowed_directories 条目允许 Copilot 命令行界面(CLI) 在没有单独的路径提示的情况下访问这些目录中的路径。 他们并不批准该工具本身的操作。 例如,在允许的目录中编辑文件仍需要 write 审批。
每个 allowed_directories 条目必须是绝对的、非空的可访问目录。 CLI 在比较路径之前会解析符号链接,禁止使用 UNC 网络路径,除非其属于扩展长度本地路径;在 Windows 上比较路径时不区分大小写,而在其他平台上则区分大小写。 如果无法应用条目,CLI 会记录警告并跳过该条目。
示例
允许所有 Git 子命令并访问额外的本地目录:
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": ["git:*"]
}
],
"allowed_directories": ["C:\\src\\shared-docs"]
}
}
}
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": ["git:*"]
}
],
"allowed_directories": ["C:\\src\\shared-docs"]
}
}
}
允许所选命令,同时在写入文件前仍先询问:
{
"locations": {
"/Users/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": [
"git status",
"git diff",
"git log",
"npm test",
"npm run build"
]
}
]
}
}
}
{
"locations": {
"/Users/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": [
"git status",
"git diff",
"git log",
"npm test",
"npm run build"
]
}
]
}
}
}
批准存储库的文件写入和一台 MCP 服务器:
{
"locations": {
"/home/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "write"
},
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": null
}
]
}
}
}
{
"locations": {
"/home/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "write"
},
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": null
}
]
}
}
}
批准一个 MCP 工具、内存写入和扩展权限访问:
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": "search_code"
},
{
"kind": "memory"
},
{
"kind": "extension-permission-access",
"extensionName": "my-extension"
}
]
}
}
}
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": "search_code"
},
{
"kind": "memory"
},
{
"kind": "extension-permission-access",
"extensionName": "my-extension"
}
]
}
}
}
session-state/
包含按子目录中的会话 ID 组织的会话历史记录数据。 每个会话目录存储事件日志(events.jsonl)和工作区项目(计划、检查点、跟踪的文件)。 此数据启用会话恢复(--resume 或 --continue)。
从此目录中删除文件只会删除本地副本。 如果已将会话同步到 GitHub 账户,则同步的数据将单独存储,不受删除本地文件的影响。 您可以从 GitHub.com 删除或隐藏已同步的会话。 有关详细信息,请参阅“关于 GitHub Copilot 命令行界面 (CLI) 会话数据”。
command-history-state/
包含用于反向搜索(Ctrl+R)和交互式界面中的历史记录导航的命令历史记录数据。 此目录是自动管理的,不应对其进行编辑。
session-store.db
CLI 使用的 SQLite 数据库,用于存储跨会话数据,例如检查点索引和搜索。 此文件是自动管理的,不应对其进行编辑。
如果删除此文件,可以使用命令重新生成该文件 /chronicle reindex 。 重新编入索引还会将您的会话数据同步到您的账户。
logs/
包含 CLI 会话的日志文件。 每个会话创建一个名为process-{timestamp}-{pid}.log的文件。 这些文件可用于调试问题。
CLI 还可能在 logs/extensions/ 下创建扩展专用日志。
这与 ~/.copilot/extensions/存储用户创作的扩展代码不同。
提示
若要查找当前会话的日志文件,请在交互式会话中输入 /session 。 输出包括日志文件的完整路径,以及其他会话详细信息,例如会话 ID、持续时间和工作目录。
installed-plugins/
包含已安装的插件的文件。 从市场安装的插件存储在 installed-plugins/{marketplace-name}/{plugin-name}/以下位置。 直接安装的插件存储在 installed-plugins/_direct/. 使用 copilot plugin 命令管理插件,而不是直接编辑此目录。
有关详细信息,请参阅“GitHub Copilot CLI 插件参考”。
plugin-data/
包含已安装插件的持久性数据,按市场和插件名称进行组织。 此数据由插件本身管理,不应手动编辑。
ide/
包含 IDE 集成相关的锁定文件和状态(例如,当Copilot 命令行界面(CLI)与Visual Studio Code连接时)。 此目录会自动管理。
mcp-oauth-config/
包含 MCP OAuth 令牌、注册信息以及在密钥链存储不可用时的 PKCE 备用文件。 此目录会自动管理。
mcp-secrets/
包含备用文件存储以及在密钥链存储不可用时 MCP 密钥占位符的索引。 此目录会自动管理。
更改配置目录的位置
若要替代默认 ~/.copilot 位置,请将 COPILOT_HOME 环境变量设置为要使用的目录的路径。
export COPILOT_HOME=/path/to/my/copilot-config
export COPILOT_HOME=/path/to/my/copilot-config
要注意的事项
-
COPILOT_HOME替换整个~/.copilot路径。 设置的值应该是要用于配置文件和子目录的目录的完整路径。 -
更改目录意味着不会在新位置找到现有的配置、会话历史记录、已安装的插件和已保存的权限。 如果您想要保留
~/.copilot的内容,请将其复制或移动到新位置。 -
缓存目录(用于市场缓存、自动更新包和其他临时数据)遵循平台约定,不受影响
COPILOT_HOME。 它位于:- macOS:****
- Linux:
$XDG_CACHE_HOME/copilot或~/.cache/copilot - Windows:
%LOCALAPPDATA%/copilot
若要单独替代缓存目录,请设置
COPILOT_CACHE_HOME。
可以安全地删除的内容
| 物品 | 删除是否安全? | Effect |
|---|---|---|
agents/、skills/、hooks/ | 不推荐 | 你将丢失个人自定义项。 首先备份。 |
config.json | 谨慎 | 重置应用程序状态,包括身份验证。 需要重新进行身份验证,CLI 将在下次启动时重新检测内部状态。 |
copilot-instructions.md、instructions/ | 不推荐 | 你将丢失个人自定义说明。 首先备份。 |
extensions/ | 不推荐 | 您将丢失个人扩展。 首先备份。 |
installed-plugins/ | 不推荐 | 请改用 copilot plugin uninstall ,确保插件元数据 config.json 保持准确。 |
logs/ | 是的 | 日志文件在每次会话中会被重新创建。 删除它们不会影响功能。 |
lsp-config.json | 不推荐 | 你将失去用户级 LSP 服务器定义。 首先备份。 |
mcp-config.json | 不推荐 | 你将失去用户级 MCP 服务器定义。 首先备份。 |
mcp-oauth-config/ | 谨慎 | 清除本地 MCP OAuth 回退状态。 可能需要重新对 MCP 服务器进行身份验证。 |
mcp-secrets/ | 谨慎 | 清除本地 MCP 机密的后备状态和映射。 机密支持的 MCP 服务器可能需要重新配置。 |
permissions-config.json | 谨慎 | 重置所有已保存的权限。 CLI 将再次提示你进行工具和目录审批。 |
plugin-data/ | 是的 | 插件持久数据会根据需要重新创建。 |
session-state/ | 谨慎 | 删除会话将清除历史记录。 你将无法再恢复过去的会话。 |
command-history-state/ | 谨慎 | 删除会清除命令历史记录。 你将无法再使用 Ctrl+R 搜索以前的命令。 |
session-store.db | 谨慎 | 删除操作会移除跨会话数据。 该文件会自动重新创建。 |
settings.json | 谨慎 | 将所有用户首选项重置为默认值。 需要重新配置设置。 |
配置文件设置
设置按此顺序应用(稍后将替代前面):
- 内置默认值
- 移动设备管理(MDM)托管设置
- 用户设置 (
~/.copilot/settings.json) - 存储库设置 (
.github/copilot/settings.json) - 本地设置 (
.github/copilot/settings.local.json) - 环境变量
- 命令行标志
MDM 托管设置会在启动时加载,并作为策略基线与用户设置合并。 对于大多数密钥,用户设置可以替代该基线。 对于 permissions.disableBypassPermissionsMode,MDM 值 "disable" 始终获胜。 有关详细信息,请参阅 MDM 托管设置。
| Scope | Location | Purpose |
|---|---|---|
| 用户 | ~/ | 所有存储库的全局默认值。 使用 COPILOT_HOME 环境变量指定备用路径。 |
| 资料库 | .github/ | 共享存储库配置(提交到存储库)。 |
| Local | .github/ | 个人覆盖(将此添加到 .gitignore)。 |
CLI 还会读取 .claude/settings.json 和 .claude/settings.local.json,以获取存储库设置中供各工具共享的那部分子集(例如 companyAnnouncements、disableAllHooks、enabledPlugins、extraKnownMarketplaces 和 hooks)。
用户设置 (~/.copilot/settings.json)
这些设置适用于所有会话和存储库。 可以使用 /settings 斜杠命令运行交互式对话,或使用特定的斜杠命令来更新单个值,或直接编辑此文件。
| 密钥 | 类型 | Default | 说明 |
|---|---|---|---|
allowedUrls | string[] | [] | 无需提示即允许的 URL 或域。 支持确切的 URL、域模式和通配符子域(例如)。 "*.github.com" |
askUser | boolean | true | 允许代理提出澄清问题。 设置为 false 可实现完全自主运作。 还可以使用 --no-ask-user. |
autoUpdate | boolean | true | 自动下载 CLI 更新。 |
auto | |||
"stable" | |||
| | | |||
"prerelease" | |||
"stable" | 更新通道。 将"prerelease"设置为接收预发布更新。 | ||
banner | |||
"always" | |||
| | | |||
"once" | |||
| | | |||
"never" | |||
"once" | 动画横幅显示频率。 | ||
bashEnv | boolean | false | 启用 BASH_ENV 对 bash shell 的支持。 可以用 --bash-env 或 --no-bash-env 设置。 |
beep | boolean | true | 需要注意时播放一声哔哔音。 |
beepOnSchedule | boolean | true | 在预定的 /every 或 /after 运行完成后发出蜂鸣提示音。 |
built | boolean | true | 启用“橡皮鸭”子智能体,该子智能体会对智能体计划提供对抗性反馈。 |
built | boolean | false | 包含主动提示,用于自动调用“橡皮鸭”。 设置为 true 以在智能体回合期间选择接收额外的“橡皮鸭”提示。 |
colorMode | |||
"default" | |||
| | | |||
"github" | |||
| | | |||
"dim" | |||
| | | |||
"high-contrast" | |||
| | | |||
"colorblind" | |||
"default" | 颜色对比度模式。 由/settings``/theme斜杠命令管理。 | ||
compactPaste | boolean | true | 将大块粘贴内容(超过 10 行)折叠成紧凑的标记。 |
company | string[] | [] | 启动时随机显示的自定义消息。 每次启动 CLI 时,都会随机选择一条消息。 适用于团队公告或提醒。 |
continue | boolean | false | 在速率受限时自动切换到自动模式。 如果为 true,那么符合条件的速率限制错误会触发系统自动切换到自动模式并进行重试。 不适用于全局速率限制或 BYOK 提供程序。 |
copyOnSelect | boolean | ||
true (macOS)、 false (其他) | 自动将鼠标选择的文本复制到系统剪贴板。 | ||
custom | boolean | false | 仅使用本地自定义代理(无远程组织或企业代理)。 |
deniedUrls | string[] | [] | 始终被拒绝的 URL 或域。 拒绝规则优先于允许规则。 |
disableAllHooks | boolean | false | 禁用所有钩子(包括存储库级别和用户级别)。 |
disabled | string[] | [] | 要禁用的 MCP 服务器名称。 列出的服务器已配置,但未启动。 |
disabledSkills | string[] | [] | 要禁用的技能名称。 列出的技能已被发现,但未能加载。 |
dynamicRetrieval | { skills?: boolean } | 取消设置 | 按类别控制基于嵌入的动态指令检索。 将skills设置为false以禁用技能的检索。 还可以使用 --dynamic-retrieval 进行设置(例如,--dynamic-retrieval skills=off);使用该标志会将此首选项保存到此文件中。 |
effortLevel | string | "medium" | 扩展思维的推理工作水平: "low"、 "medium"、 "high"或 "xhigh"。 更高的级别使用更多的计算。 |
enabledMcpServers | string[] | [] | 启用默认情况下被禁用的内置 MCP 服务器(例如,"computer-use")。 |
enabledPlugins | Record<string, boolean> | {} | 声明性插件自动安装。 密钥是插件规格; true 值为 (enabled) 或 false (disabled)。 |
experimental | boolean | false | 启用实验性功能。 还可以使用 --experimental 命令行选项或 /experimental 斜杠命令启用。 |
extra | Record<string, {...}> | {} | 其他插件市场。 每个密钥都是市场名称;值指定源("directory"或"git"``"github")。 |
footer | object | — | 控制状态行中显示的项。 子键包括showModelEffort、showDirectory、showBranch、showContextWindow、showQuota、showAgent、showAiUsed、showCodeChanges、showUsername、showSandbox、showYolo和showCustom(均为boolean)。 由 /statusline 斜杠命令管理。 |
hooks | object | — | 内联用户级挂钩定义,按事件名称进行键控。 使用与 .github/ 文件相同的架构。 请参阅“与 GitHub Copilot 命令行界面 (CLI) 一起使用挂钩”。 |
ide.autoConnect | boolean | true | 启动时自动连接到 IDE 工作区。 当 false 时,你仍然可以使用 /ide 命令手动连接。 |
ide.open | boolean | true | 在连接的 IDE 中打开文件编辑差异以供批准。 如果为 false,文件编辑审批仅显示于终端中。 |
include | boolean | true | 将 Co-authored-by 尾部添加到代理进行的 git 提交。 |
keepAlive | |||
"on" | |||
| | | |||
"off" | |||
| | | |||
"busy" | |||
"off" | 启动 CLI 时应用保持活动模式。 | ||
"on" 始终防止系统进入休眠状态,"busy" 仅在智能体运行时防止休眠,而 "off" 禁用保持活动状态。 也可以使用 /keep-alive 斜杠命令进行配置。 | |||
logLevel | |||
"none" | |||
| | | |||
"error" | |||
| | | |||
"warning" | |||
| | | |||
"info" | |||
| | | |||
"debug" | |||
| | | |||
"all" | |||
| | | |||
"default" | |||
"default" | 日志记录详细程度。 | ||
mergeStrategy | |||
"rebase" | |||
| | | |||
"merge" | |||
| — | |||
/pr fix conflicts 的冲突解决策略。 设置为 "rebase" 时,通过变基到基分支来解决冲突。 当设置为 "merge"时,将基分支合并到功能分支中。 如果未配置,将显示选取器对话框。 | |||
model | string | 变化 | 要使用的 AI 模型。 设置为 "auto" 允许 Copilot 自动选取最佳可用模型。 由 /model 斜杠命令管理。 |
mouse | boolean | true | 启用鼠标支持。 可以用 --mouse 或 --no-mouse 设置。 |
permissions.disable | string | — | 当设置为 "disable" 时,所有“全部允许”标志(--allow-all-tools、--allow-all-paths、--allow-all-urls、--allow-all、--yolo)都会在启动时被禁用,并且不能用于授予提升后的权限。 |
powershellFlags | string[] | ["-NoProfile", "-NoLogo"] | 启动时传递给 PowerShell 的标志。 在Windows上,CLI 首选 PowerShell 7+ (pwsh),并在 powershell.exe 不可用时回退到 Windows PowerShell(pwsh)。 仅适用于Windows。 |
proxy | string | 取消设置 | 用于 Kerberos/Negotiate 代理身份验证的服务主体名称(SPN),用于覆盖派生的 HTTP/<proxy-host>。 |
proxyUrl | string | 取消设置 | HTTP(S) 请求的代理 URL(例如 http:/)。 可由 HTTP_PROXY 或 HTTPS_PROXY 环境变量覆盖(不区分大小写)。 |
remote | |||
"on" | |||
| | | |||
"off" | |||
"on" | 控制会话同步和远程访问。 | ||
"off"设置为仅保留本地会话数据并禁用远程控制。 可以用 --remote 或 --no-remote 设置。 | |||
renderMarkdown | boolean | true | 在终端输出中呈现 Markdown。 |
remoteExport | boolean | true | 当会话同步可用时远程导出会话。 设置为 false 默认退出远程导出。 当 remoteSessions 设置设为 true 时,或设置了 --remote 标志时,无论此设置如何,仍会启用导出和引导。 |
respectGitignore | boolean | true | 从 @ 文件提及选取器中排除 gitignored 文件。 当 false,选取器包含通常被 .gitignore排除的文件。 |
screenReader | boolean | false | 启用屏幕阅读器优化。 |
scrollbar | boolean | true | 在可滚动视图中显示滚动条。 将其设置为 false 以将其隐藏,并使用终端的全部宽度。 |
showTipsOnStartup | boolean | true | 在 CLI 启动时显示随机命令提示。 |
skillDirectories | string[] | [] | 用于搜索自定义技能定义的其他目录(除了 ~/)。 |
statusLine | object | — | 自定义状态行显示。 |
type:必须是 "command"。 | |||
command:用于接收 stdin 上的会话 JSON 的可执行脚本的路径,并将状态内容输出到 stdout。 | |||
padding:可选数量的左填充空格。 | |||
store | boolean | false | 允许在系统密钥链不可用时以纯文本 config.json 形式存储身份验证令牌。 |
stream | boolean | true | 启用流响应。 |
streamerMode | boolean | false | 隐藏预览模型名称和配额详细信息。 演示 Copilot 命令行界面(CLI) 或屏幕共享时非常有用。 |
subagents.agents | object | {} | 各代理的模型配置,以代理名称为键。 每个值都是一个具有可选model(字符串)、 effortLevel (string)和contextTier("default"、或"long_context"``"inherit")字段的对象。 将任意字段设置为 "inherit",以在分派时使用父会话的值。 |
/subagents使用斜杠命令以交互方式配置这些设置。 | |||
subagents.disabled | string[] | [] | 需防止被调度的智能体名称。 只有 rubber-duck 代理无法通过此设置禁用。 可以禁用所有其他内置代理,包括explore、task、code-review``general-purpose、research和security-review。 |
tabs.enabled | boolean | true | 显示主选项卡栏。 将其设为 false 以将其完全隐藏。 |
tabs.hide | string[] | [] | 要隐藏的选项卡标识符。 接受的值:"copilot"、"agents"、"issues"、"pull-requests"、"gists"(匹配时不区分大小写)。 |
tabs.sort | string[] | [] | 选项卡的显示顺序。 未列出的选项卡排在已列出的选项卡之后,并保持其默认的相对顺序。 忽略未知标识符。 |
terminalProgress | boolean | true | 在代理工作时发送 OSC 9;4 终端进度指示器。 支持的终端包括 Windows 终端、iTerm2、Ghostty 和 ConEmu。 |
theme | |||
"auto" | |||
| | | |||
"dark" | |||
| | | |||
"light" | |||
"auto" | 终端颜色主题。 | ||
"auto" 检测终端背景并相应地选择。 | |||
toolSearch | boolean | 取决于模型和功能 | 控制工具搜索(延迟的工具加载)。 将 toolSearch: false 设为不参与工具搜索。 |
update | boolean | true | 在终端选项卡或窗口标题中显示当前意向。 |
存储库设置 (.github/copilot/settings.json)
存储库设置适用于在存储库中工作的每个人。 它们将提交到存储库并与协作者共享。
注意
存储库配置文件(enabledPlugins 和 extraKnownMarketplaces)中与插件相关的键也会被 Copilot云代理 读取,而不只是被 Copilot 命令行界面(CLI) 读取。 这样,便可以从单个文件中为两个客户端启用相同的插件。 有关插件的详细信息,请参阅 关于 GitHub Copilot 插件。
存储库级别仅支持下表中列出的密钥。 将无提示地忽略任何其他密钥(包括用户配置文件中有效的密钥)。
| 密钥 | 类型 | 合并行为 | 说明 |
|---|---|---|---|
company | string[] | 已替换 — 存储库优先 | 启动时随机显示的消息。 |
disableAllHooks | boolean | 存储库优先 | 禁用所有挂钩。 |
enabledPlugins | Record<string, boolean> | 已合并 — 存储库覆盖用户的相同密钥 | 声明性插件自动安装。 |
extra | Record<string, {...}> | 已合并 — 存储库覆盖用户的相同密钥 | 此存储库中提供的插件市场。 |
hooks | object | 串联 - 存储库挂钩在用户挂钩后运行 | 范围限定到此存储库的挂钩定义。 请参阅“与 GitHub Copilot 命令行界面 (CLI) 一起使用挂钩”。 |
mergeStrategy | |||
"rebase" | |||
| | | |||
"merge" | |||
| 存储库优先 | |||
/pr fix conflicts 的冲突解决策略。 |
本地设置 (.github/copilot/settings.local.json)
在存储库中创建 .github/copilot/settings.local.json,用于存放那些不应被提交的个人覆盖。 将此文件添加到 .gitignore.
本地配置文件使用与存储库配置文件 (.github/copilot/settings.json) 相同的架构,并优先于它。
MDM 托管设置
IT 管理员可以通过移动设备管理(MDM)托管设置下发基线策略,而不是要求按用户逐一配置。 这些设置对受支持的密钥应用设备级默认值,并在用户设置之前加载。
MDM 托管设置源
Copilot 命令行界面(CLI) 从平台特定的 MDM 或基于文件的位置中读取托管设置。
| 平台 | 源类型 | Location |
|---|---|---|
| macOS | MDM plist | com.github.copilot |
| macOS | File | / |
| Windows操作系统 | MDM 注册表 | HKLM\ |
| Windows操作系统 | File | %Program |
| Linux | File | / |
注意
在 POSIX 系统上, Copilot 命令行界面(CLI) 拒绝基于文件的托管设置,这些设置是符号链接,不是根拥有的,也不是世界可写的。
文件格式
将基于文件的托管设置编写为 JSON。
{
"permissions": {
"disableBypassPermissionsMode": "disable"
}
}
支持的密钥
MDM 托管设置中仅支持以下密钥。
| 密钥 | 说明 |
|---|---|
enabledPlugins | 启用或禁用特定插件 |
extra | 添加可信的插件市场 |
model | 为所有用户设置默认模型(可被 --model 标志或恢复会话时使用的模型覆盖) |
permissions | 设置托管权限,包括 disable |
strict | 将插件限制为已知市场 |