注意
本地沙盒 GitHub Copilot 位于 公开预览 且可能会更改。
重要
Windows上的本地沙盒需要Windows预览体验成员版本。
有关本地沙盒机制
沙盒机制目前仍是一项实验性功能。 若要使用它,请从Copilot CLI命令行选项开始‑‑experimental,或在会话期间输入/experimental on。
启用本地沙盒时, Copilot CLI 在操作系统沙盒中代表你运行大部分命令和工具。 启用本地沙盒后,它将用于所有 Copilot CLI 会话,直到禁用它,或为特定会话关闭它。 如果企业管理设置要求启用沙盒,则普通配置、--no-sandbox 命令行选项和 /sandbox disable 命令都无法将其禁用。 但是,如果有效策略允许绕过沙盒,则可以通过当前显示的绕过权限提示,显式禁用当前会话剩余时间内的沙盒机制。
默认情况下,沙盒命令和工具可以在当前工作目录和临时文件夹中写入。 您的用户配置文件(主)目录以及系统和工具位置均为只读。 其他磁盘位置会被阻止。 在 Git 存储库中,当前工作目录上方的存储库的其余部分是可读的,但不可写。 允许访问本地和专用网络,出站 Internet 访问也是允许的。
默认情况下,经过身份验证的 Git 和 GitHub CLI (gh) 操作将继续在沙盒中工作,因为 Copilot CLI 使 GitHub 凭据可用于沙盒命令。 这使得诸如 git push 和 gh pr create 之类的操作能够成功完成。 可以在沙盒设置中关闭此功能。
有关 Copilot CLI 中沙盒机制的概念概述,请参阅 关于云端和本地沙盒 GitHub Copilot。
沙盒命令
你可以在 /sandbox 会话中使用 Copilot CLI 斜杠命令管理本地沙盒环境。 它具有以下子命令。
| 命令 | 说明 |
|---|---|
/sandbox status | 显示当前会话是否正在使用沙盒。 请参阅 检查是否使用沙盒。 |
/sandbox policy | 显示当前目录当前生效的文件系统策略,即哪些路径可读、可写或被阻止访问,以及当前生效的网络访问权限。 有关详细信息,请参阅“了解 GitHub Copilot CLI 中用于本地沙盒的文件系统策略”。 |
/sandbox config | 打开交互式设置界面。 单独输入 /sandbox 也会产生同样的效果。 有关详细信息,请参阅“配置本地沙盒设置”。 |
/sandbox enable | 启用本地沙盒功能。 请参阅 “启用本地沙盒”。 |
/sandbox disable | 关闭本地沙盒模式。 如果企业管理设置要求进行沙盒化,则会被拒绝。 请参阅 禁用本地沙盒。 |
启用本地沙盒机制
若要启用本地沙盒,请在交互式 Copilot CLI 会话中输入以下命令:
/sandbox enable
/sandbox enable
沙盒机制会立即在当前会话中启用。
启用本地沙盒后,它将继续用于当前和将来的交互式会话,以及用于编程会话。
注意
如果你在进入 /sandbox enable 时还有其他会话处于打开状态,这些会话不会立即使用沙盒机制。 若要在已打开的会话中使用沙盒,请在该会话中执行下列操作之一:
- 关闭会话并重启会话,例如,通过运行
copilot --continue。 - 输入
/sandbox enable。
禁用本地沙盒
如果企业管理设置要求进行沙盒隔离,则会拒绝 /sandbox disable。 如果有效策略允许绕过沙盒,则可以改为通过当前显示的绕过权限提示,显式为当前会话的剩余时间禁用沙盒。
若要停止使用本地沙盒,请在交互式 Copilot CLI 会话中输入以下命令:
/sandbox disable
/sandbox disable
当前会话以及新建和重新启动的会话中均不再启用沙盒。
你是否使用本地沙盒的选择会保存为 sandbox.enabled 设置项,存储在 CLI 的个人设置文件中(默认为 ~/.copilot/settings.json)。
对单个会话使用沙盒隔离
可以使用 --sandbox 命令行选项为单个会话使用沙盒,而无需为其他会话启用沙盒。 如果已启用沙盒,则可以使用 --no-sandbox 选项仅对单次会话将其禁用。
--no-sandbox 选项无法覆盖要求使用沙盒机制的企业管理设置。
您可以将这些选项与 -p 命令行选项结合使用,以在以编程方式使用 CLI 时控制沙盒机制。 例如:
copilot --sandbox -p "PROMPT"
copilot --sandbox -p "PROMPT"
在沙盒外部运行单个命令
当命令需要比沙盒允许的更广泛的访问权限时, Copilot 可以请求在沙盒外部运行该单一命令。 系统会显示一个说明该命令的确认提示。 您可以批准这一条命令,让它继续在沙盒中运行,或者在当前会话的剩余时间内禁用沙盒。 仅当正在响应当前处于活动状态的绕过提示,且生效策略允许绕过沙盒时,会话退出选项才可用。
此行为默认处于启用状态,可在沙盒设置中关闭。
检查是否正在使用沙盒
若要检查本地沙盒是否用于当前会话,请输入:
/sandbox status
/sandbox status
Copilot CLI 指示当前会话是否已启用沙盒。 如果你的组织的托管设置要求启用沙盒,状态中也会注明这一点。 由于该状态反映了会话实际实施的限制,因此,确认命令 Copilot 的运行是否受沙盒限制时,应以该状态为准。
若要不仅查看沙盒是否处于打开状态,而且确切地查看哪些路径是可读、可写还是被阻止,请输入 /sandbox policy。 有关详细信息,请参阅“了解 GitHub Copilot CLI 中用于本地沙盒的文件系统策略”。
你还可以在状态行中一眼看出沙盒状态;启用沙盒时,状态行中会显示 sandbox enabled。 默认情况下,状态行中沙盒信息的显示处于打开状态。 如果它已关闭,则可以将其重新打开:
- 输入
/statusline。 - 将选项列表下移至 沙盒。
- 按 Enter 键切换该设置,使其显示勾选标记。