注意
本地沙盒 GitHub Copilot 位于 公开预览 且可能会更改。
重要
Windows上的本地沙盒需要Windows预览体验成员版本。
关于本地沙盒
沙盒目前是一项实验性功能。 若要使用它,请从Copilot CLI命令行选项开始‑‑experimental,或在会话期间输入/experimental on。
启用本地沙盒时, Copilot CLI 在操作系统沙盒中代表你运行大部分命令和工具。 启用本地沙盒后,它将用于所有 Copilot CLI 会话,直到禁用它,或为特定会话关闭它。 如果企业托管设置需要沙盒,则无法禁用它。
默认情况下,沙盒命令和工具可以在当前工作目录和临时文件夹中写入。 用户配置文件(主页)目录以及系统和工具位置都是只读的。 其他磁盘位置将被阻止。 在 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 切换设置,使其显示复选标记。