Перейти до основного змісту

Безпечно виконувати локальні команди

У настільному застосунку асистент може виконувати команди й тести в робочій папці вашого чату. Як це працює в чаті, читайте в розділі Локальний доступ до файлів. На цій сторінці ви налаштовуєте, коли це може відбуватися без запиту, і наскільки ізольовано виконуються команди.

Відкрити налаштування команд​

У чаті відкрийте панель Команди та виберіть Налаштування команд для цієї папки. Налаштування діють для кожної папки окремо.

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

Оберіть один із цих трьох режимів:

  • Завжди питати: ви підтверджуєте кожну команду.
  • Автоматично для довірених команд: команди, які ви зберегли, запускаються без запиту. Інші команди й надалі потребують дозволу.
  • Автоматично в sandbox: усе запускається без запиту, але в ізольованому середовищі.

У кожному режимі також діють такі правила:

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

Зберігати довірені команди​

Для команди виберіть Завжди дозволяти в цій папці, а потім Точно цю команду або Усе, що починається з цього. Збережені команди надалі запускаються без запитів. Команди зі спеціальними символами (наприклад ; | > $) завжди потребують дозволу.

Збережені правила знаходяться в налаштуваннях команд у розділі Завжди дозволено в цій папці. Там їх також можна видалити.

Sandbox і мережа​

  • Використовувати sandbox: команди можуть записувати лише в цю папку. Ця опція за замовчуванням увімкнена на macOS.
  • Дозволити мережу: визначає, чи мають команди доступ до інтернету. Ця опція за замовчуванням вимкнена. Без sandbox команди завжди мають доступ до мережі.

Кожна картка команди показує, чи ввімкнені sandbox і мережа.

Якщо Дозволити мережу вимкнено, а асистент хоче щось завантажити, наприклад за допомогою npm install, тоді картка команди запитає, чи хочете ви виконати саме цю команду з мережею. Тобто вам не потрібно вмикати мережу для всієї папки.

Windows

На Windows sandbox поки недоступний.

Встановлення пакетів​

У застосунку є власний 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). Вони завжди виконуються в sandbox, з мережею. Інші команди дотримуються режиму, який ви вибрали для папки.

Ці встановлення все ще показують картку:

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

Перемикач працює лише із sandbox (macOS) і якщо ваш адміністратор дозволив автоматичне виконання. Інакше ввімкнути його не можна.

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

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

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

Асистент також може запускати сервер розробки, який працює постійно, наприклад npm run dev для невеликого React-проєкту з Vite. Для цього діють ті самі правила, що й для інших команд: ви підтверджуєте точну команду, або вона запускається через збережене правило чи автоматично в sandbox. Замість максимального часу виконання на картці написано: "Працює як локальний сервер, доки ви його не зупините."

Сервер продовжує працювати після відповіді асистента. У панелі Команди картка показує статус Сервер працює, з кнопками Відкрити в браузері та Зупинити. Одночасно може працювати щонайбільше 4 сервери. Сервери зупиняються, коли ви їх зупиняєте або закриваєте застосунок.

У sandbox без мережі сервер може слухати лише на цьому комп’ютері (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 coden.

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

В офлайн-режимі команди завжди виконуються в sandbox без мережі. Встановлення пакетів із мережею та онлайн-дії вбудованого git (завантаження, отримання, публікація та GitHub) тоді не працюють. Збереження версій і показ простої вебсторінки працюють.

Налаштування для адміністраторів​

Адміністратори можуть вимкнути локальні команди або автоматичне виконання для всіх у середовищі. Це робиться в адміністративному середовищі в розділі Функції (на рівні середовища), у картці Desktop-app:

  • Дозволити локальні команди: якщо вимкнено, асистент не може виконувати команди. Онлайн-дії вбудованого git також не працюють. Збереження версій і гілки продовжують працювати: вони змінюють лише файли в папці, так само як і інструменти для файлів.
  • Дозволити автоматичне виконання: якщо вимкнено, кожна команда потребує дозволу, і ви не можете ввімкнути Дозволити встановлення пакетів без запиту.
  • Дозволити Python застосунку для Office-файлів: для шаблонів, діаграм і аналізів. Цей Python працює без інтернету, записує лише в робочу папку і не може запускати інші програми. Якщо нічого не налаштовано, він успадковує Дозволити локальні команди. Без sandbox (Windows) він доступний лише тоді, коли локальні команди увімкнено, і щоразу запитує дозвіл.