Перейти к основному содержимому

Безопасное выполнение локальных команд

В десктопном приложении ассистент может выполнять команды и тесты в рабочей папке вашего чата. Как это работает в чате, см. в разделе Локальный доступ к файлам. На этой странице вы настраиваете, когда это можно делать без запроса, и насколько изолированно запускаются команды.

Открытие настроек команд​

Откройте в чате панель Команды и выберите Настройки команд для этой папки. Настройки действуют для каждой папки отдельно.

Когда ассистент может выполнить команду?​

Выберите один из этих трёх режимов:

  • Всегда спрашивать: вы подтверждаете каждую команду.
  • Доверенные команды автоматически: команды, которые вы сохранили, запускаются без запроса. Другие команды по-прежнему требуют разрешения.
  • Автоматически в песочнице: всё запускается без запроса, но в изолированной среде.

В любом режиме действуют также эти правила:

  • Безопасные команды запускаются без карты: mkdir, ls, cat, head, tail, wc, grep, find (без -exec или -delete), touch, pwd, tree и проверки версии (--version, -v или -V для node, npm, npx, python, pip и aischool-python). Они не делают ничего большего, чем уже делают встроенные инструменты работы с файлами без вопросов. Они работают в песочнице без сети и только с путями внутри рабочей папки, даже после перехода по ссылкам (без абсолютных путей, ~ или ..). Если ссылка ведёт за пределы папки, карта всё же появится. Для этого нужны песочница (macOS и Linux) и локальные команды, но не Разрешить автоматическое выполнение от вашего администратора. В панели Команды тогда отображается Автоматически (безопасная команда). Список в фигурных скобках, например mkdir -p src/{components,utils}, тоже запускается без карты: приложение разбирает его на отдельные пути и проверяет их все.
  • Каждая карта показывает точную команду и, при онлайн-действиях, точный адрес. Ниже мелким шрифтом указан текст объяснения от ассистента.
  • Если песочница доступна и администратор разрешил автоматическое выполнение, то на карте для команды, которая запускается в песочнице, также есть кнопка Всегда автоматически в песочнице в этой папке. Она переключает папку в режим Автоматически в песочнице, чтобы следующие команды запускались без карты. Команды, которым нужен сеть, ещё один раз запросят разрешение, если только установка пакетов не разрешена.
  • Первая карта в папке, которая запускается в песочнице и не требует сети, один раз показывает Доверять этому проекту. Она выполняет команду, переводит папку в режим Автоматически в песочнице и включает Разрешить установку пакетов без запроса. После этого тесты и сборки, такие как npm test, npm run build и node --test, запускаются без карты, в песочнице без сети. Команды, которым всё же нужна сеть, или которые запускаются вне песочницы, по-прежнему будут спрашивать разрешение. После Выполнить или Отказать вопрос в этой папке больше не появляется; режим меняется в настройках команд. Если автоматическое выполнение выключено, каждая карта сообщает, делает ли это ваш администратор или политика управления этим компьютером.

Сохранение доверенных команд​

Для команды выберите Всегда разрешать в этой папке, а затем Точно эту команду или Всё, что начинается с этого. Сохранённые команды впредь запускаются без вопросов. Команды со специальными символами (например ; | > $) всегда требуют разрешения.

Сохранённые правила находятся в настройках команд в разделе Всегда разрешено в этой папке. Там их можно и удалить.

Песочница и сеть​

  • Использовать песочницу: команды могут писать только в этой папке. Эта опция по умолчанию включена на macOS и Linux.
  • Разрешить сеть: определяет, есть ли у команд доступ в интернет. Эта опция по умолчанию выключена. Без песочницы у команд всегда есть доступ к сети.

Каждая карточка команды показывает, включены ли песочница и сеть.

Если Разрешить сеть выключено и ассистент хочет что-то скачать, например с помощью npm install, карточка команды спросит, хотите ли вы выполнить именно эту команду с сетью. То есть вам не нужно включать сеть для всей папки.

Windows

В Windows песочница пока недоступна.

Установка пакетов​

У приложения есть собственный Node.js с npm. Поэтому команды вроде node, npm и npx работают даже если Node.js не установлен на вашем компьютере. Если вы установили Node.js сами, приложение использует эту версию. Исключение: проект, который сам запускает Electron (electron .), требует Node.js, установленный вами.

Разрешить установку пакетов без запроса​

В Настройках команд для этой папки включите переключатель Разрешить установку пакетов без запроса. Тогда установки пакетов с именем запускаются без карты: npm install <имя> и npm install из package.json, pnpm, yarn или bun с install или add, а также pip install <имя> (в том числе через uv). Они всегда работают в песочнице, с сетью. Другие команды следуют режиму, выбранному для папки.

Эти установки всё равно показывают карту:

  • генераторы проектов, такие как npm create vite@latest и npx create-…, потому что они выполняют собственный код;
  • pip install ., pip install -r requirements.txt, установки из другого реестра (--registry, -i, --index-url) и пакеты из git-адреса, URL или пути.

Переключатель работает только с песочницей (macOS и Linux) и если администратор разрешил автоматическое выполнение. Иначе включить его нельзя.

Без скриптов установки

Пакеты, установленные таким способом, никогда не запускают собственные скрипты установки (npm работает с --ignore-scripts). Пакеты Python устанавливаются только как готовые wheels.

Локальные серверы и встроенный браузер​

Ассистент также может запускать сервер разработки, который продолжает работать, например npm run dev для небольшого React-проекта с Vite. Для этого действуют те же правила, что и для других команд: вы подтверждаете точную команду, либо она запускается по сохранённому правилу или автоматически в песочнице. Вместо максимального времени работы на карте написано: «Остаётся запущенным как локальный сервер, пока вы не остановите его».

Сервер продолжает работать после ответа ассистента. В панели Команды карта показывает статус Сервер работает, с кнопками Открыть в браузере и Остановить. Одновременно может работать максимум 4 сервера. Серверы останавливаются, если вы их остановите или закроете приложение.

В песочнице без сети сервер может слушать только на этом компьютере (localhost). Как ассистент устанавливает пакеты, см. в разделе Установка пакетов.

Показать простую веб-страницу​

Для обычной веб-страницы (это index.html с CSS и JavaScript, без этапа сборки) команда не нужна. Тогда ассистент использует встроенный веб-сервер приложения:

  • Папка видна только на этом компьютере, по http://127.0.0.1 с произвольным портом.
  • Скрытые файлы, такие как .git и .env, никогда не показываются.
  • Если файл меняется, страница автоматически перезагружается.

Для этого не появляется карта подтверждения. Сервер отображается в панели Команды, с Открыть в браузере и Остановить, и учитывается в лимите 4 серверов.

Результат вы просматриваете во встроенном браузере: кнопка Браузер (значок глобуса) справа в верхней панели. Панель открывается рядом с чатом, с кнопками назад, вперёд, обновить (остановить во время загрузки), адресной строкой и Открыть в стандартном браузере.

  • Ассистент сам открывает браузер, чтобы показать результат локального сервера. Это возможно только для локальных адресов, например http://localhost:5173.
  • Если в ответе вы нажмёте на ссылку localhost, она откроется во встроенном браузере. Другие ссылки открываются в вашем стандартном браузере.
  • Вы также можете сами ввести любой веб-адрес.
  • У браузера есть собственная отдельная сессия: вы там не вошли в AI-Public, сайты не получают разрешения вроде камеры или микрофона, и загрузка файлов невозможна.
  • Пока открыто меню или диалоговое окно приложения, страница временно скрывается.

Пример:

Создай в этой папке небольшое React-приложение с Vite и счётчиком. Установи зависимости, запусти dev-сервер и покажи результат в браузере.

Позволить ассистенту смотреть​

Если вы попросите ассистента посмотреть на страницу во встроенном браузере, он прочитает адрес, заголовок, видимый текст, снимок экрана и последние сообщения об ошибках страницы. Всё это отправляется в AI-модель.

  • Страницу на этом компьютере (localhost или 127.0.0.1) ассистент просматривает без запроса.
  • Для любого другого сайта, например страницы, на которой вы вошли в систему, ассистент сначала показывает карту: «Ассистент хочет посмотреть onedrive.live.com». Нажмите Разрешить просмотр или Отказать. Он будет спрашивать каждый раз.
  • Если после вашего разрешения страница перейдёт на другой сайт, ассистент ничего не читает.
  • Только на странице на этом компьютере ассистент сам кликает и печатает, чтобы проверить, что он создал. На других сайтах он не кликает, не печатает и не навигирует. Он не получает cookies или пароли.
  • В офлайн-режиме ассистент просматривает только страницы на этом компьютере.

Версии и GitHub​

У ассистента есть встроенный git. Поэтому git не нужно устанавливать, даже в Windows. Ассистент может сохранять версии, показывать, что изменилось, создавать ветки и публиковать проект онлайн.

  • Действия в этой папке, например сохранение версии, запускаются без запроса. Файлы, похожие на секреты (например .env-файлы, ключи или токены в коде, включая ключи Google API, начинающиеся с AIza), никогда не попадают в версию. Ассистент сообщает, если что-то пропускает.
  • Онлайн-действия (скачать проект, получить последнюю версию, опубликовать и создать репозиторий GitHub) сначала показывают карту с точным адресом и метками Встроено в приложение и Сеть включена. Если адрес не github.com или создаётся новый публичный репозиторий, карта предупреждает об этом. При публикации карта показывает, какие файлы будут отправлены. Выберите Выполнить или Отказать.
  • Подключение репозитория вне github.com тоже сначала требует разрешения.

Как подключить GitHub и опубликовать проект, см. в разделе Vibe coden.

Офлайн-режим

В офлайн-режиме команды всегда работают в песочнице без сети. Установка пакетов с сетью и онлайн-действия встроенного git (скачивание, получение, публикация и GitHub) тогда не работают. Сохранение версий и показ простой веб-страницы работают.

Настройки для администраторов​

Администраторы могут отключить локальные команды или автоматическое выполнение для всех в среде. Это делается в административной среде в разделе Функции (на уровне среды), в карточке Desktop-app:

  • Разрешить локальные команды: если это выключено, ассистент не может выполнять команды. Онлайн-действия встроенного git тоже не работают. Сохранение версий и ветки при этом продолжают работать: они изменяют только файлы в папке, как и инструменты работы с файлами.
  • Разрешить автоматическое выполнение: если это выключено, каждая команда требует разрешения, и вы не сможете включить Разрешить установку пакетов без запроса.
  • Разрешить использование Python приложения для Office-файлов: для шаблонов, диаграмм и анализа. Этот Python работает без интернета, пишет только в рабочую папку и не может запускать другие программы. Если ничего не задано, он следует параметру Разрешить локальные команды. Без песочницы (Windows) он доступен только если локальные команды включены, и каждый раз спрашивает разрешение.