opencode to otwartoźródłowy agent programistyczny AI, którego ludzie uruchamiają z terminala na Macu; często pojawia się w zapytaniach takich jak „opencode security mac”, „czy opencode jest bezpieczny” i „opencode dostęp do sieci”. Jego dokumentacja mówi wprost o modelu uprawnień i o jedynej funkcji, która wysyła rozmowę na serwer. Ten artykuł przedstawia te udokumentowane fakty, a następnie wyjaśnia, jak FireAI, zapora sieciowa dla macOS działająca na urządzeniu, tworzona przez HisnLabs, obserwuje połączenia nawiązywane przez program i czego nie potrafi.
Czym jest opencode
opencode opisuje się jako „the open source AI coding agent” (otwartoźródłowy agent programistyczny AI). Repozytorium na GitHubie, przeniesione z organizacji sst do anomalyco, ma licencję MIT. Jest dostarczany jako interfejs terminalowy, aplikacja na komputer (oznaczona w README jako beta) i rozszerzenie IDE, a zawiera dwóch wbudowanych agentów: build, agenta z pełnym dostępem, który jest domyślny, oraz plan, agenta tylko do odczytu, który prosi o zgodę [1]. Użytkownicy łączą go z dostawcami modeli za pomocą kluczy API; wprowadzenie poleca OpenCode Zen, wyselekcjonowaną listę modeli przetestowanych przez zespół opencode [2].
Jak opencode działa w macOS
README wymienia kilka sposobów instalacji w macOS: skrypt curl -fsSL https://opencode.ai/install | bash, npm, bun, pnpm lub yarn, Homebrew oraz plik DMG dla aplikacji na komputer. Przy instalacji wiersza poleceń uruchamiany program nazywa się opencode i pod tą nazwą proces jest widoczny dla systemu.
Do czego ma dostęp i jak jest kontrolowany
System uprawnień ma trzy stany: allow, ask i deny. Reguły można ustawić globalnie lub dla poszczególnych narzędzi i mogą one dopasowywać wzorce danych wejściowych narzędzia, przy czym wygrywa ostatnia pasująca reguła. Dokumentacja podaje, że większość uprawnień ma domyślnie wartość allow; doom_loop i external_directory mają domyślnie ask, a pliki .env są domyślnie zablokowane. Flaga --auto automatycznie zatwierdza żądania, chyba że ma zastosowanie wyraźna reguła deny [3].
Uprawnienie external_directory dotyczy ścieżek poza obszarem roboczym projektu. Te uprawnienia określają, co agent robi z narzędziami, na przykład odczyt, edycję i uruchamianie poleceń. Nie są opisane jako lista dozwolonych adresów sieciowych.
Z czym się łączy
Strona o udostępnianiu dokumentuje jedyną funkcję, która wysyła rozmowę na serwery opencode. Polecenie /share tworzy publiczny adres URL i synchronizuje z nimi historię rozmowy, wiadomości, odpowiedzi i metadane sesji. Udostępnianie jest domyślnie ręczne, więc bez tego polecenia nic nie jest wysyłane; można je wyłączyć ustawieniem "share": "disabled" w opencode.json, a udostępnione sesje pozostają dostępne do czasu użycia /unshare [4]. Strony przeczytane na potrzeby tego artykułu nie wymieniają dalszych domen, więc poza dostawcą modelu i tym, z czym kontaktuje się narzędzie, pozostałe miejsca docelowe należy traktować jako nieudokumentowane.
Obserwowanie agenta opencode z FireAI
FireAI to zapora sieciowa dla macOS działająca na Macu. Jej funkcja Agent profile rozpoznaje 19 agentów AI, uczy się, z czym każdy z nich zwykle się łączy, i oznacza to, co nowe. Strona Agent profile w FireAI wymienia opencode wśród agentów wiersza poleceń rozpoznawanych po nazwie programu. Połączenia nawiązywane przez program o nazwie opencode oraz jego procesy potomne, takie jak powłoka czy git, są więc przypisywane do opencode.
- Przez pierwsze 3 dni FireAI uczy się miejsc docelowych, z którymi agent zwykle się kontaktuje, pogrupowanych według domeny, więc api.anthropic.com staje się anthropic.com. W tym okresie nic nie jest oznaczane.
- Po tym czasie pierwsze w historii miejsce docelowe spoza linii bazowej jest oznaczane do przeglądu w Suggestions, na karcie agentów AI i w Quick Review. Przesuń w lewo, aby zablokować, lub w prawo, aby wybrać „It’s fine”.
- Oznaczany jest także skok wysyłanych danych: godzina, w której agent wysłał co najmniej 4 razy więcej niż w swojej dotychczas najbardziej obciążonej godzinie, i nigdy mniej niż 25 MB.
- FireAI korzysta wyłącznie z metadanych, czyli nazw hostów i liczby bajtów. Nigdy nie czyta zawartości połączenia.
Konfiguracja FireAI dla agenta opencode
- Zainstaluj FireAI i korzystaj z agenta jak zwykle. 3-dniowy okres nauki rozpoczyna się sam i niczego nie oznacza.
- Otwórz Suggestions i znajdź kartę agentów AI. Po okresie nauki oznaczenie dla agenta pojawia się tam oraz w Quick Review.
- Przejrzyj każde oznaczenie. Wybierz Block, aby utworzyć regułę dla procesu, który się połączył, lub „It’s fine”, aby dodać miejsce docelowe do linii bazowej agenta.
- Aby ograniczyć agenta do miejsc, z których już korzysta, wybierz Agent profile w menu trybu bezpieczeństwa, obok Home, Coffee shop, Paranoid i Under attack. Twoje reguły działają jak w trybie Home, a po zakończeniu nauki przez agenta połączenie z miejscem docelowym spoza linii bazowej jest blokowane zamiast oznaczane.
- Zablokowane miejsce docelowe pojawia się na karcie agentów AI z opcjami Allow i Keep blocked. Allow dodaje je do linii bazowej i agent od razu może się z nim połączyć. Keep blocked tworzy regułę blokującą obowiązującą w każdym trybie.
Napisana przez Ciebie reguła zezwalająca dla strony, domeny lub adresu nadal ma pierwszeństwo, a DNS i sieć lokalna nigdy nie są blokowane. Dla agenta, którego FireAI nie wymienia, napisz ręcznie regułę dla jego programu w regułach dla aplikacji. Tryb Agent profile wymaga FireAI 1.0.3 lub nowszego, a rozpoznawanie agenta opencode wersji 1.0.4.
Ograniczenia
- Reguły uprawnień opencode decydują, które wywołania narzędzi zostaną zatwierdzone, a w trybie
--autozatwierdzają większość z nich. FireAI działa natomiast na warstwie połączeń, więc oba mechanizmy się uzupełniają, a nie dublują. - Agent opencode jest rozpoznawany po nazwie swojego programu, co oznacza, że jest etykietowany, a nie weryfikowany: tylko Claude Code, Claude i Cursor są sprawdzani pod kątem podpisu dewelopera.
- FireAI nie zatrzymuje wstrzykiwania promptów (prompt injection). Ogranicza szkody, oznaczając drogę, którą dane opuściłyby Maca, i pozwalając ją zablokować.
- FireAI nie widzi promptów, zawartości narzędzi MCP, dostępu do plików ani umiejętności (skills). TLS ukrywa zawartość, a FireAI nie działa wewnątrz agenta.
- Procesy potomne, które kończą się bardzo szybko, mogą zostać pominięte i są dopasowywane po ścieżce, a nie po podpisie.
- W 3-dniowym okresie nauki nic nie jest oznaczane, a skoki wysyłanych danych są oznaczane, nie blokowane.
- W trybie Agent profile połączenie nawiązane z samym adresem IP, bez nazwy hosta, jest dopasowywane po adresie, więc nowy adres usługi, z której agent zwykle korzysta, pozostaje zablokowany, dopóki go nie zezwolisz.
Inni agenci
To samo podejście dotyczy każdego agenta rozpoznawanego przez FireAI. Zobacz pozostałe przewodniki: Claude Code, aplikacja Claude na komputer, Cursor, aplikacja ChatGPT na Maca, OpenAI Codex CLI, OpenClaw, Hermes Agent, Gemini CLI, GitHub Copilot CLI, Amp, Qwen Code, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse od Meta, każdy inny agent AI działający na pythonie lub node. Pełny opis funkcji znajduje się na stronie dokumentacji Agent profile, opublikowanej przez HisnLabs.
Jaką rolę odgrywają FireAI i HisnLabs
FireAI uczy się, z czym opencode zwykle łączy się na Twoim Macu, i oznacza pierwsze w historii miejsce docelowe lub skok wysyłanych danych, nie czytając Twoich danych.
FireAI to własny produkt HisnLabs: zapora sieciowa z AI działająca bezpośrednio na Macu. Pokazuje prostym językiem każde połączenie nawiązywane przez twoje aplikacje i pozwala ci decydować, co opuszcza twojego Maca — jej AI działa lokalnie, więc twój ruch nigdy nie jest wysyłany do nas ani do nikogo innego. Zespół badań nad bezpieczeństwem HisnLabs dba o to, by te decyzje pozostały trafne: kataloguje, które domeny to zwykła telemetria, a które prawdziwa usługa, śledzi kraj i sieć stojące za połączeniem oraz trenuje lokalny model (funkcję FireAI Pilot) na rzeczywistych wzorcach ruchu — a nic z tego nie opuszcza twojego Maca.
Możesz przeczytać o decyzjach technicznych, które za tym stoją, albo wypróbować FireAI przez 17 dni na FireAI od HisnLabs.
