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

Безпечне виконання локальних команд

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

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

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

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

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

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

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

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