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

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

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

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

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

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

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

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

Без скриптів встановлення

Пакети, встановлені таким чином, ніколи не запускають власні скрипти встановлення (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-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-кодинг.

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

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

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

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

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