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

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

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

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

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

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

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

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

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

  • Безопасные команды запускаются без карточки: 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) и если ваш администратор разрешил автоматический запуск. Иначе включить его нельзя.

Без install-скриптов

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

Пример:

Создай в этой папке небольшое 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-кодинг.

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

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

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

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

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