opencode — агент ШІ для програмування з відкритим кодом, який запускають з термінала на Mac, і він часто фігурує в запитах на кшталт «безпека opencode mac», «чи безпечний opencode» і «мережевий доступ opencode». Його документація прямо описує модель дозволів і єдину функцію, що вивантажує розмову на сервер. Ця стаття викладає ці задокументовані факти, а потім пояснює, як FireAI, фаєрвол для macOS від HisnLabs, що працює на пристрої, стежить за з’єднаннями програми і чого він зробити не може.
Що таке opencode
opencode описує себе як «the open source AI coding agent». Репозиторій на GitHub, що переїхав з організації sst до anomalyco, має ліцензію MIT. Він постачається як термінальний інтерфейс, настільний застосунок (у README позначений як бета) і розширення для IDE та містить два вбудовані агенти: build, агент із повним доступом, що діє за замовчуванням, і plan, агент лише для читання, який просить дозволу [1]. Користувачі підключають його до постачальників моделей за допомогою ключів API; вступ рекомендує OpenCode Zen, добірку моделей, перевірених командою opencode [2].
Як opencode працює на macOS
README перелічує кілька способів встановлення на macOS: скрипт curl -fsSL https://opencode.ai/install | bash, npm, bun, pnpm чи yarn, Homebrew і DMG для настільного застосунку. Під час встановлення для командного рядка програма, яку ви запускаєте, має назву opencode, і саме так процес бачить система.
До чого він має доступ і як цей доступ контролюється
Система дозволів має три стани: allow, ask і deny. Правила можна задавати глобально або для окремого інструмента, і вони можуть відповідати шаблонам вхідних даних інструмента, причому діє останнє відповідне правило. Документація зазначає, що більшість дозволів за замовчуванням мають значення allow; doom_loop і external_directory за замовчуванням мають значення ask, а файли .env за замовчуванням заблоковано. Прапорець --auto автоматично схвалює запити, якщо не діє явне правило deny [3].
Дозвіл external_directory регулює шляхи поза робочим простором проєкту. Ці дозволи визначають, що агент робить з інструментами, як-от читання, редагування й виконання команд. Вони не описуються як список дозволених мережевих адрес.
Куди він підключається
Сторінка про спільний доступ документує єдину функцію, що надсилає розмову на сервери opencode. Команда /share створює публічну URL-адресу й синхронізує з ними історію розмови, повідомлення, відповіді та метадані сеансу. Спільний доступ за замовчуванням ручний, тож без цієї команди нічого не надсилається; його можна вимкнути через "share": "disabled" в opencode.json, а спільні сеанси залишаються доступними, доки не використано /unshare [4]. Сторінки, прочитані для цієї статті, не перелічують інших доменів, тож окрім вашого постачальника моделі та всього, до чого звертається інструмент, вважайте інші адреси тут незадокументованими.
Спостереження за opencode за допомогою FireAI
FireAI — фаєрвол для macOS, що працює на Mac. Його функція «Профіль агента» розпізнає 19 агентів ШІ, вивчає, куди кожен зазвичай підключається, і позначає нове. Сторінка «Профілю агента» у FireAI зараховує opencode до агентів командного рядка, яких розпізнає за назвою їхньої програми. Тому з’єднання програми з назвою opencode та її дочірніх процесів, як-от shell чи git, приписуються opencode.
- Перші 3 дні FireAI вивчає адреси, з якими агент зазвичай зв’язується, групуючи їх за доменом: api.anthropic.com стає anthropic.com. У цей період нічого не позначається.
- Після цього перша за весь час адреса поза базовою лінією позначається для перегляду в «Пропозиціях», у картці «Агенти ШІ» та в «Швидкому перегляді». Проведіть ліворуч, щоб заблокувати, або праворуч, щоб вибрати «It’s fine».
- Сплеск вивантаження теж позначається: година, за яку агент вивантажив щонайменше вчетверо більше, ніж за свою найактивнішу годину досі, і ніколи не менше ніж 25 MB.
- FireAI використовує лише метадані, тобто імена хостів і кількість байтів. Вміст з’єднання він ніколи не читає.
Налаштування FireAI для opencode
- Установіть FireAI й користуйтеся агентом як зазвичай. Триденний період навчання починається сам і нічого не позначає.
- Відкрийте «Пропозиції» й знайдіть картку «Агенти ШІ». Після періоду навчання позначка для агента з’являється там і в «Швидкому перегляді».
- Перегляньте кожну позначку. Виберіть «Заблокувати», щоб створити правило для процесу, який підключився, або «It’s fine», щоб додати адресу до базової лінії агента.
- Щоб обмежити агента місцями, якими він уже користується, виберіть «Профіль агента» в меню режимів безпеки поряд із «Дім», «Кав’ярня», «Параноя» та «Під атакою». Ваші правила діють як у режимі «Дім», а з’єднання з адресою поза базовою лінією блокується замість позначення, щойно агент завершить навчання.
- Заблокована адреса з’являється в картці «Агенти ШІ» з кнопками «Дозволити» та «Залишити заблокованим». «Дозволити» додає її до базової лінії, і агент одразу отримує до неї доступ. «Залишити заблокованим» створює правило блокування, яке діє в усіх режимах.
Дозвільне правило, яке ви створили для вебсайту, домену чи адреси, усе одно має пріоритет, а DNS і ваша локальна мережа ніколи не блокуються. Для агента, якого FireAI не має в списку, напишіть правило для його програми вручну в правилах для застосунків. Режим «Профіль агента» потребує FireAI 1.0.3 або новішої версії, а розпізнавання opencode — версії 1.0.4.
Обмеження
- Правила дозволів opencode визначають, які виклики інструментів схвалюються, а в режимі
--autoвони схвалюють більшість із них. FireAI натомість працює на рівні з’єднань, тож ці два механізми доповнюють, а не дублюють один одного. - opencode розпізнається за назвою своєї програми, тобто він позначається міткою, а не перевіряється: лише Claude Code, Claude і Cursor звіряються з підписом свого розробника.
- FireAI не зупиняє prompt injection. Він обмежує шкоду, позначаючи шлях, яким дані залишали б ваш Mac, і даючи змогу цей шлях заблокувати.
- FireAI не бачить запитів, вмісту інструментів MCP, доступу до файлів чи навичок. TLS приховує вміст, а FireAI не працює всередині агента.
- Дочірні процеси, що завершуються дуже швидко, можуть залишитися непоміченими, і вони зіставляються за шляхом, а не за підписом.
- Протягом триденного періоду навчання нічого не позначається, а сплески вивантаження позначаються, але не блокуються.
- У режимі «Профіль агента» з’єднання з «голою» IP-адресою без імені хоста зіставляється за адресою, тож нову адресу сервісу, яким агент зазвичай користується, буде заблоковано, доки ви її не дозволите.
Інші агенти
Той самий підхід застосовується до кожного агента, якого розпізнає FireAI. Інші посібники: Claude Code, настільний застосунок Claude, Cursor, застосунок ChatGPT для Mac, OpenAI Codex CLI, OpenClaw, Hermes Agent, Gemini CLI, GitHub Copilot CLI, Amp, Qwen Code, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse від Meta, будь-який інший агент ШІ, що працює на python чи node. Повний опис функції наведено на сторінці документації «Профілю агента», опублікованій HisnLabs.
Яке місце тут посідають FireAI та HisnLabs
FireAI вивчає, куди opencode зазвичай підключається на вашому Mac, і позначає першу нову адресу або сплеск вивантаження, не читаючи ваших даних.
FireAI — це власний продукт HisnLabs: ШІ-фаєрвол, який працює безпосередньо на вашому Mac. Він показує простою мовою кожне з’єднання, яке встановлюють ваші застосунки, і дає вам вирішувати, що покидає ваш Mac, — його ШІ працює локально, тож ваш трафік ніколи не надсилається ні нам, ні будь-кому іншому. Команда дослідників безпеки HisnLabs — саме вона підтримує точність цих рішень: каталогізує, які домени є звичайною телеметрією, а які — справжнім сервісом, відстежує країну та мережу за з’єднанням і навчає локальну модель (функцію FireAI Pilot) на реальних шаблонах трафіку — і нічого з цього не покидає ваш Mac.
Ви можете почитати про технічні рішення, що лежать в його основі, або спробувати FireAI протягом 17 днів на сторінці FireAI від HisnLabs.
