速览
- 沙箱模式让 Copilot 的 shell 命令、文件工具、MCP 和 LSP 服务器都运行在操作系统沙箱里——不靠虚拟机或容器(macOS 用 Seatbelt,Linux 用 bubblewrap,Windows 用 ProcessContainer),限制文件、网络和凭据访问。
- Copilot 应用里沙箱默认关闭:打开应用设置,选中项目,开启 "Sandbox new sessions"。CLI 里执行 /sandbox enable(实验特性)。
- 执行 /sandbox 调整策略——CLI 里有 General、Filesystem、Network 三个标签页;应用里有额外可读写、只读、拒绝路径以及网络和凭据开关。改动只对新会话生效,或用 /restart-session。
- copilot --cloud 把整个会话搬进 GitHub 托管的云端沙箱;之后从 github.com/copilot/tasks 链接或仓库的 Agents 标签页重新进入。本地沙箱设置对云端会话不生效。
How to run GitHub Copilot in local and cloud sandboxes | demo
频道:GitHub (official channel)1:31
GitHub Copilot Sandboxes are SO COOL
频道:Gwyneth Peña-Siguenza1:50
Local sandboxing in the GitHub Copilot app (public preview)
文档:github.blog/changelog
Configuring local sandboxing in the GitHub Copilot app
文档:docs.github.com
About cloud and local sandboxes for GitHub Copilot
文档:docs.github.com
本页截图全部来自 GitHub 官方沙箱演示视频——纯净的终端录屏。文字内容基于视频与 GitHub 官方文档撰写,设置项名称逐字引用。
截图版权归原创者所有,此处仅作带署名的视觉参考。本地沙箱处于公共预览阶段——名称和行为可能变化。
图文教程:12 步
1 · 开启本地沙箱
- 1
在仓库里启动 Copilot
在项目里启动 Copilot CLI。沙箱是 CLI 的实验特性——启动横幅上挂着 /experimental 徽标,状态栏里就有你马上要学会辨认的沙箱指示器。

Copilot CLI 启动画面:/experimental 徽标与状态栏里的沙箱指示。在 0:08 处观看 - 2
执行 /sandbox enable
输入 /sandbox,命令面板只给出两个开关:enable 和 disable。选 enable——沙箱对当前 Copilot 会话及其运行的每条 shell 命令生效。
![Copilot CLI slash-command menu listing /sandbox enable and /sandbox disable above the /sandbox [enable|disable] prompt hint Copilot CLI slash-command menu listing /sandbox enable and /sandbox disable above the /sandbox [enable|disable] prompt hint](/images/guides/copilot-sandbox-tutorial/copilot-sandbox-tutorial-sandbox-enable-autocomplete.webp)
/sandbox 自动补全给出 enable 与 disable 两个选项。在 0:24 处观看 - 3
确认会话已进入沙箱
Copilot 会打印 "Sandboxing has been enabled.",状态栏在 AI Credits 旁边显示 "sandbox enabled"。从这一刻起,代理运行的命令都在沙箱内执行。

"Sandboxing has been enabled."——你想看到的那行确认。在 0:12 处观看
2 · 划定沙箱的权限边界
- 4
用 /sandbox 打开策略面板
单独执行 /sandbox 会打开 Configure sandbox 面板,配置持久化在 settings.json 的 `sandbox` 下。General 标签决定哪些东西跑在沙箱里:shell 命令、MCP 服务器、LSP 服务器,以及供 git、gh 凭据助手使用的 macOS 钥匙串访问。

General 标签:shell、MCP、LSP 服务器与钥匙串访问。在 0:30 处观看 - 5
划定文件系统边界
Filesystem 标签会自动把当前工作目录加入可读写路径,并可在沙箱退出时重置权限。~/.nvm、~/.npm 这类工具路径以只读方式挂载——工具链需要更多权限时再往列表里加。

nvm 与 npm 的只读路径,工作目录自动纳入。在 0:32 处观看 - 6
划定网络边界
Network 标签给出三个开关:允许出站互联网、允许本地网络,以及按主机逐一添加的 Access 列表。任务不需要联网下载时,先收紧这里。

网络策略:出站、本地网络与按主机白名单。在 0:36 处观看 - 7
照常写代码——命令都被关在沙箱里
像平常一样干活。代理规划、改码、执行命令,状态栏始终显示 "sandbox enabled"。当命令需要策略不允许的东西时,Copilot 会明确报错,而不是悄悄溜出隔离环境。

一次 SQLAlchemy 迁移的规划与执行,状态栏显示 "sandbox enabled"。在 0:20 处观看
3 · 干活、关闭、或上云
- 8
用 /sandbox disable 切回普通模式
某一步需要跳出沙箱?/sandbox disable 直接关闭沙箱——出现 "Sandboxing has been disabled.",状态栏的沙箱徽标随之消失。任务需要时可以随时来回切换。

"Sandboxing has been disabled."——注意状态栏里的沙箱徽标已经不见。在 0:38 处观看 - 9
用 copilot --cloud 启动云端沙箱
更重的任务可以带 --cloud 标志启动 Copilot(官方演示搭配 --yolo,GitHub 文档示例为 --cloud --experimental)。会话将运行在 GitHub 托管的临时环境里,而不是你的电脑上。

copilot --cloud --yolo——整个会话即将离开你的笔记本。在 0:50 处观看 - 10
拿到远程控制链接
远程会话创建完成后,Copilot 会连上远程控制并打印 github.com/copilot/tasks/... 链接——按 ctrl+e 可显示二维码。工作目录位于云端沙箱的 /workspaces/<repo>。

远程控制已连接,附会话链接与二维码快捷键。在 1:00 处观看 - 11
让它在云端构建并跑测试
代理在云端沙箱里创建文件、安装依赖、运行你的测试脚本——图中正在创建 test_auth.py 并执行后端测试套件。你的电脑全程闲置,只有状态栏里的点数在跳动。

测试在云端沙箱中运行,至今已消耗 80.4 AI Credits。在 1:10 处观看 - 12
在 GitHub.com 上盯进度、随时回来
会话会出现在仓库的 Agents 标签页,标记为 Remote CLI session——在浏览器里看进度、发消息,之后用 copilot --resume 恢复,本地和远程会话都会列出来。

tailspin-toys 仓库的 Agents 标签页正在实时跟踪云端会话。在 1:14 处观看
设置在哪里:Copilot 应用与 Copilot CLI
本地沙箱存在于两个入口,两者的设置相互独立——改哪一个都不会影响另一个。
- 1Copilot 应用:默认关闭。打开应用设置,选中项目,在 "Sandbox" 下开启 "Sandbox new sessions"。项目策略描述沙箱会话可以申请哪些权限。
- 2应用侧策略:文件系统访问从工作区与当前目录的可读写开始,另有额外可读写、额外只读、拒绝路径三类清单;网络访问覆盖出站互联网与本地网络;凭据覆盖 git 与 GitHub CLI。
- 3Copilot CLI:沙箱是实验特性——先带 --experimental 启动(或执行 /experimental on),再用 /sandbox enable、/sandbox disable,或单独执行 /sandbox 打开配置面板。配置持久化在 settings.json 的 `sandbox` 下。
- 4斜杠命令与时机有关:会话进行中输入 /sandbox on 或 /sandbox off 只覆盖当前会话;会话开始前输入则会改写项目默认值。用 /restart-session 可以应用新策略且不丢历史。
- 5云端会话是另一个世界:本地沙箱设置对云端沙箱和远程主机会话都不生效,而且云端沙箱需要组织或企业所有者先开启访问策略才会出现。
本教程里的 CLI 演示是最快的上手路径;想清楚策略之后,应用里按项目的开关才是长久默认。
当沙箱说不:默认失败关闭
沙箱的设计是失败关闭——如果操作系统无法执行你申请的策略,命令会直接报错,而不是脱离沙箱继续跑。
- 1平台或策略不受支持:当所申请的策略无法被执行时,沙箱化 shell 会报错退出——绝不会静默回退成无沙箱运行。
- 2"Sandbox unavailable":应用会标出问题所在,修复后点击 Retry sandbox 按钮重试。
- 3逃生舱口:"Run outside the sandbox?" 提示可以取消、在沙箱外运行一次,或对当前会话关闭沙箱——"Re-enable sandbox" 再切回来。重启后失效,且从不改动项目默认值。
- 4企业所有者拥有一票否决权:托管设置可以封掉沙箱外运行的逃生舱口,而且那边的强制策略同样失败关闭。
平台要点:macOS 推荐 15+(Seatbelt);Linux 需要 PATH 里有 bubblewrap 0.5.0+,外加 slirp4netns、util-linux 2.35+、iptables 和 /dev/net/tun;Windows 走 ProcessContainer 的 BaseContainer 层,无法保证拒绝路径生效时命令会以 unsupported-policy 报错。
