Deepseek ArtifactsDeepseek Artifacts
Из официального демо песочницы GitHub

Режим песочницы Copilot: иллюстрированное руководство

Локальная песочница удерживает шелл-команды, файловые инструменты и сетевые запросы GitHub Copilot внутри изоляции на уровне ОС. Проходим официальную демонстрацию GitHub: включаем через /sandbox, настраиваем политику, выключаем и отдаем целые сессии облаку.

Коротко

  • Режим песочницы запускает шелл-команды, файловые инструменты, MCP- и LSP-серверы Copilot внутри песочницы ОС — ограничивая файлы, сеть и учетные данные без виртуальных машин и контейнеров (Seatbelt на macOS, bubblewrap на Linux, ProcessContainer на Windows).
  • В приложении Copilot песочница по умолчанию выключена: откройте настройки приложения, выберите проект и включите "Sandbox new sessions". В CLI выполните /sandbox enable (экспериментальная функция).
  • Команда /sandbox открывает настройку политики — вкладки General, Filesystem и Network в CLI; дополнительные пути на чтение/запись, только для чтения и запрещенные, а также переключатели сети и учетных данных в приложении. Изменения применяются к новым сессиям или через /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. 1

    Запустите Copilot в репозитории

    Запустите Copilot CLI в своем проекте. Песочница — экспериментальная функция CLI: на баннере виден значок /experimental, а в строке состояния появляется индикатор песочницы, который вы научитесь читать.

    Copilot CLI v1.0.56 session start in a repo showing the yellow /experimental badge with the sandbox enabled indicator lit in the status bar
    Запуск Copilot CLI: значок /experimental и индикатор песочницы в строке состояния.Смотреть с 0:08
  2. 2

    Выполните /sandbox enable

    Наберите /sandbox — и в палитре команд появятся ровно два переключателя: enable и disable. Выберите enable — песочница распространится на эту сессию Copilot и каждую запущенную в ней команду.

    Copilot CLI slash-command menu listing /sandbox enable and /sandbox disable above the /sandbox [enable|disable] prompt hint
    Автодополнение /sandbox предлагает enable и disable.Смотреть с 0:24
  3. 3

    Убедитесь, что сессия в песочнице

    Copilot печатает "Sandboxing has been enabled.", а в строке состояния рядом с AI Credits появляется "sandbox enabled". С этого момента команды агента выполняются внутри песочницы.

    Copilot CLI printing Sandboxing has been enabled with the status bar reading sandbox enabled next to AI Credits 0
    "Sandboxing has been enabled." — то самое подтверждение.Смотреть с 0:12

2 · Определяем, что песочнице доступно

  1. 4

    Откройте /sandbox и настройте политику

    Голая команда /sandbox открывает панель Configure sandbox, которая хранится в settings.json под ключом `sandbox`. Вкладка General решает, что работает внутри: шелл-команды, MCP-серверы, LSP-серверы и доступ к связке ключей macOS для хелперов git и gh.

    Copilot CLI Configure sandbox panel on the General tab with Sandboxing enabled, Sandbox MCP servers, Sandbox LSP servers and Allow keychain access checkboxes
    Вкладка General: шелл, MCP- и LSP-серверы плюс доступ к ключам.Смотреть с 0:30
  2. 5

    Очертите файловую систему

    Вкладка Filesystem автоматически добавляет рабочую директорию в пути чтения/записи и может сбрасывать права при выходе из песочницы. Инструментальные пути вроде ~/.nvm и ~/.npm монтируются только для чтения — расширьте список, если инструментам нужно больше.

    Copilot CLI sandbox Filesystem tab showing Include working directory, Clear policy on exit and the read-only ~/.nvm and ~/.npm path list
    Пути только для чтения для nvm и npm; рабочая директория включена автоматически.Смотреть с 0:32
  3. 6

    Очертите сеть

    Вкладка Network показывает три рычага: разрешить исходящий интернет, разрешить локальную сеть и список Access по хостам. Если задаче не нужны загрузки — сначала сократите именно это.

    Copilot CLI sandbox Network tab with the Allow outbound connections and Allow local network checkboxes plus an empty Access Host list
    Сетевая политика: исходящий трафик, локальная сеть и белый список хостов.Смотреть с 0:36
  4. 7

    Работайте как обычно — команды в песочнице

    Дальше всё по привычному сценарию. Агент планирует, правит и выполняет команды, а строка состояния продолжает показывать "sandbox enabled". Если команде понадобится то, что запрещено политикой, Copilot громко упадет, а не тихо вылезет из коробки.

    Copilot CLI agent planning a SQLAlchemy 2.0 migration while the status bar reads sandbox enabled at 61.8 AI Credits
    Миграция на SQLAlchemy спланирована и выполнена со "sandbox enabled" в строке состояния.Смотреть с 0:20

3 · Работаем, выключаем или уходим в облако

  1. 8

    Вернитесь через /sandbox disable

    Нужен шаг вне коробки? /sandbox disable выключает песочницу — появляется "Sandboxing has been disabled.", а значок песочницы исчезает из строки состояния. Переключайте туда-обратно столько раз, сколько требует задача.

    Copilot CLI printing Sandboxing has been disabled after the /sandbox disable command with AI Credits 133 and no sandbox badge left in the status bar
    "Sandboxing has been disabled." — обратите внимание: значка песочницы в строке состояния больше нет.Смотреть с 0:38
  2. 9

    Запустите облачную песочницу через copilot --cloud

    Для более тяжелой работы запустите Copilot с флагом --cloud (в официальном демо он идет в паре с --yolo, в документации GitHub — с --cloud --experimental). Сессия выполняется во временной среде на стороне GitHub, а не на вашей машине.

    Terminal launching a Copilot cloud sandbox with the copilot --cloud --yolo command typed at the tailspin-toys git prompt
    copilot --cloud --yolo — вся сессия вот-вот покинет ваш ноутбук.Смотреть с 0:50
  3. 10

    Заберите ссылку удаленного управления

    Когда удаленная сессия развернута, Copilot подключает remote control и печатает URL вида github.com/copilot/tasks/... — ctrl+e показывает QR-код. Рабочее дерево лежит в /workspaces/<repo> внутри облачной песочницы.

    Copilot cloud session showing Remote control connected as GeekTrainer with the github.com/copilot/tasks session URL and the ctrl+e QR code hint
    Удаленное управление подключено: ссылка на сессию и горячая клавиша QR-кода.Смотреть с 1:00
  4. 11

    Доверьте сборку и тесты облаку

    Агент создает файлы, ставит зависимости и запускает ваши тестовые скрипты внутри облачной песочницы — здесь создается test_auth.py и гоняется набор бэкенд-тестов. Ваша машина простаивает, а в строке состояния тикают кредиты.

    Copilot cloud sandbox creating test_auth.py and running backend unit tests through the test-runner skill inside /workspaces/tailspin-toys
    Тесты идут в облачной песочнице, потрачено 80.4 AI Credits.Смотреть с 1:10
  5. 12

    Следите и возвращайтесь через GitHub.com

    Сессия появляется во вкладке Agents репозитория как Remote CLI session — смотрите прогресс, пишите сообщения из браузера, а позже возобновляйте через copilot --resume: в списке будут и локальные, и удаленные сессии.

    GitHub.com Agents tab listing Remote CLI sessions for the tailspin-toys repo while Copilot recommends Flask auth libraries in the session panel
    Вкладка Agents репозитория tailspin-toys следит за облачной сессией в реальном времени.Смотреть с 1:14

Где живут настройки: приложение Copilot vs Copilot CLI

Локальная песочница существует в двух средах — приложении и CLI, и настраиваются они по отдельности: меняя одну, вы никогда не меняете другую.

  • 1Приложение Copilot: по умолчанию выключено. Откройте настройки приложения, выберите проект и в разделе "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 в этом гайде — самый быстрый путь; переключатель на уровне проекта в приложении становится постоянным дефолтом, когда вы определились с политикой.

Когда песочница говорит «нет»: fail-closed по дизайну

Песочница устроена по принципу fail-closed: если ОС не может обеспечить запрошенную политику, команда падает с ошибкой, а не выполняется без песочницы.

  1. 1Неподдерживаемая платформа или политика: если запрошенную политику невозможно обеспечить, шелл в песочнице падает с ошибкой — он никогда не откатывается молча к запуску без песочницы.
  2. 2"Sandbox unavailable": приложение сообщает о проблеме и после её устранения предлагает кнопку Retry sandbox.
  3. 3Аварийный люк: подсказка "Run outside the sandbox?" может предложить отменить, выполнить один раз вне песочницы или выключить песочницу для сессии — "Re-enable sandbox" возвращает всё назад. После перезапуска всё это сбрасывается, а дефолты проекта не меняются.
  4. 4У владельцев предприятия последнее слово: управляемые настройки способны заблокировать люк запуска вне песочницы, и там контроль тоже срабатывает по принципу fail-closed.

Замечания по платформам: на macOS рекомендуется 15+ (Seatbelt); Linux требует bubblewrap 0.5.0+ в PATH плюс slirp4netns, util-linux 2.35+, iptables и /dev/net/tun; Windows использует уровень BaseContainer из ProcessContainer — если запрещенный путь гарантировать нельзя, команда падает с сообщением unsupported-policy.

FAQ о песочнице Copilot

Похожие гайды