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

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

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

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

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

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

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

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

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

  • Безопасные команды запускаются без карточки: 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 со счётчиком. Установи зависимости, запусти сервер разработки и покажи результат в браузере.

Просмотр страницы ассистентом​

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

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

Версии и GitHub​

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

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

Как подключить GitHub и опубликовать проект онлайн, читайте в разделе Вайб-кодинг.

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

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

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

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

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