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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если Разрешить сеть выключено, а ассистент хочет что-то скачать, например с помощью 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) и если администратор разрешил автоматическое выполнение. Иначе включить его нельзя.

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

Пакеты, устанавливаемые таким образом, никогда не запускают собственные скрипты установки (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-Corporate, сайты не получают разрешений вроде камеры или микрофона, и загрузка файлов невозможна.
  • Пока открыто меню или диалоговое окно приложения, страница временно скрывается.

Пример:

Создай в этой папке небольшое 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 приложения для офисных файлов: для шаблонов, диаграмм и анализов. Этот Python работает без интернета, пишет только в рабочую папку и не может запускать другие программы. Если ничего не настроено, он следует параметру Разрешить локальные команды. Без песочницы (Windows) он доступен только если локальные команды включены, и каждый раз требует подтверждения.