opencode — ИИ-агент для программирования с открытым исходным кодом, который запускают из терминала на Mac; он часто фигурирует в запросах вроде «opencode security 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. Функция Agent profile распознаёт 19 ИИ-агентов, изучает, куда каждый из них обычно подключается, и помечает новое. На странице Agent profile opencode указан среди агентов командной строки, распознаваемых по имени их программы. Поэтому соединения программы с именем opencode и её дочерних процессов, например оболочки или git, приписываются opencode.
- В течение первых 3 дней FireAI изучает адреса, к которым агент обычно обращается, группируя их по доменам: api.anthropic.com превращается в anthropic.com. В этот период ничего не помечается.
- После этого первое обращение к адресу вне базового профиля помечается для проверки в Suggestions, в карточке AI agents и в Quick Review. Смахните влево, чтобы заблокировать, или вправо — «It’s fine».
- Помечается и всплеск отправки данных: час, за который агент отправил как минимум в 4 раза больше, чем в самый загруженный час до этого, и не меньше 25 МБ.
- FireAI использует только метаданные, то есть имена хостов и объёмы в байтах. Он никогда не читает содержимое соединения.
Настройка FireAI для opencode
- Установите FireAI и пользуйтесь агентом как обычно. 3-дневный период обучения начинается сам и ничего не помечает.
- Откройте Suggestions и найдите карточку AI agents. После периода обучения пометка для агента появится там и в Quick Review.
- Проверьте каждую пометку. Выберите Block, чтобы создать правило для подключившегося процесса, или «It’s fine», чтобы добавить адрес в базовый профиль агента.
- Чтобы ограничить агента уже знакомыми адресами, выберите Agent profile в меню режимов безопасности рядом с Home, Coffee shop, Paranoid и Under attack. Ваши правила действуют как в Home, а соединение с адресом вне базового профиля после окончания обучения блокируется, а не помечается.
- Заблокированный адрес появляется в карточке AI agents с кнопками Allow и Keep blocked. Allow добавляет его в базовый профиль, и агент сразу получает к нему доступ. Keep blocked создаёт правило блокировки, действующее во всех режимах.
Правило разрешения, созданное вами для сайта, домена или адреса, по-прежнему имеет приоритет, а DNS и локальная сеть никогда не блокируются. Для агента, которого нет в списке FireAI, создайте правило для его программы вручную в правилах для приложений. Режим Agent profile требует FireAI 1.0.3 или новее, а распознавание opencode — версии 1.0.4.
Ограничения
- Правила разрешений opencode определяют, какие вызовы инструментов одобряются, и в режиме
--autoодобряют большинство из них. FireAI работает на уровне соединений, поэтому эти механизмы дополняют, а не дублируют друг друга. - opencode распознаётся по имени программы, то есть маркируется, а не проверяется: только Claude Code, Claude и Cursor сверяются с подписью разработчика.
- FireAI не останавливает внедрение промптов (prompt injection). Он ограничивает ущерб: помечает путь, по которому данные покинули бы Mac, и позволяет его заблокировать.
- FireAI не видит промпты, содержимое инструментов MCP, обращения к файлам и навыки. TLS скрывает содержимое, а FireAI не находится внутри агента.
- Очень быстро завершающиеся дочерние процессы могут остаться незамеченными, и они сопоставляются по пути, а не по подписи.
- В течение 3-дневного периода обучения ничего не помечается, а всплески отправки данных помечаются, но не блокируются.
- В режиме Agent profile соединение с голым 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. Полное описание функции приведено на странице документации Agent profile, опубликованной HisnLabs.
Какое место здесь занимают FireAI и HisnLabs
FireAI изучает, куда opencode обычно подключается на вашем Mac, и помечает первое обращение к новому адресу или всплеск отправки данных, не читая ваши данные.
FireAI — это собственный продукт HisnLabs: ИИ-файрвол, работающий прямо на вашем Mac. Он показывает простым языком каждое соединение, которое устанавливают ваши приложения, и позволяет вам решать, что покидает ваш Mac, — его ИИ работает локально, поэтому ваш трафик никогда не отправляется ни нам, ни кому-либо ещё. Команда исследователей безопасности HisnLabs — это те, кто поддерживает точность этих решений: они каталогизируют, какие домены являются обычной телеметрией, а какие — реальным сервисом, отслеживают страну и сеть, стоящие за соединением, и обучают локальную модель (функцию FireAI Pilot) на реальных шаблонах трафика — и ничего из этого не покидает ваш Mac.
Вы можете прочитать о технических решениях, лежащих в его основе, или попробовать FireAI в течение 17 дней на странице FireAI от HisnLabs.
