Konfiguracja agenta · OpenCode

LaunchRepo z OpenCode: przeglądarka przez MCP, przetestowana

Jeden blok w opencode.json daje OpenCode prawdziwego Chrome. Przeprowadziliśmy przez niego cały proces przekazania przy premierze: wypełnić formularz, zatrzymać się na weryfikacji, oddać ją człowiekowi, wznowić tę samą sesję i wysłać formularz dokładnie raz.

Krótka odpowiedź

  • Umieść wpis chrome-devtools pod kluczem "mcp" w opencode.json, z "type": "local" i całym poleceniem jako jedną tablicą. Blok znajdziesz poniżej.
  • OpenCode 1.18.34 załadował go z pliku globalnego, z projektowego opencode.json (także po uruchomieniu w podfolderze), z .opencode/opencode.json i z obu zmiennych środowiskowych.
  • Następnie udostępnił 30 narzędzi przeglądarki o nazwach chrome-devtools_… i przekazał modelowi pełny snapshot strony o długości 44 167 znaków, bez skracania.
  • Po kroku CAPTCHA lub 2FA wznów tę samą rozmowę poleceniem opencode run --session <session-id>. W trybie headless działało to w każdym przebiegu: ta sama karta, te same pola, jedno wysłanie.
  • OpenCode domyślnie zezwala na większość działań, więc dodaj jedną linię uprawnień, jeśli chcesz sam zatwierdzać akcje w przeglądarce.

LaunchRepo działa z każdym agentem programistycznym, który potrafi czytać i zapisywać pliki w twoim workspace oraz sterować przeglądarką. OpenCode potrafi jedno i drugie. Ta strona dokumentuje przetestowaną konfigurację; nie jest to certyfikacja ani partnerstwo.

Dodaj przeglądarkę do opencode.json

OpenCode scala swoje pliki konfiguracji zamiast je zastępować. Dzięki temu konfiguracja jest bezpieczna: dodajesz jeden klucz, a wszystkie dotychczasowe ustawienia zostają bez zmian.

  1. Otwórz opencode.json w katalogu głównym swojego workspace LaunchRepo albo go utwórz. Dla wszystkich projektów naraz użyj zamiast tego ~/.config/opencode/opencode.json.
  2. Dodaj poniższy blok "mcp" obok istniejących kluczy. Jeśli plik ma już klucz "mcp", dodaj w nim tylko wpis chrome-devtools.
  3. W Chrome, którego używasz, otwórz chrome://inspect/#remote-debugging i włącz zdalne debugowanie (Chrome 144+). Właśnie z tym łączy się --autoConnect.
  4. Uruchom opencode mcp list. Działający wpis pokazuje poniższą linię; potem poproś OpenCode, żeby otworzył https://example.com i odczytał tytuł strony.

Dodaj do opencode.json

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "chrome-devtools": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "chrome-devtools-mcp@1.10.1",
        "--autoConnect",
        "--no-usage-statistics",
        "--no-performance-crux"
      ]
    }
  }
}

Oczekiwana linia w opencode mcp list opencode mcp list

✓ chrome-devtools connected

--autoConnect używa Chrome, który już masz uruchomiony. Dla osobnego Chrome tylko do premier użyj zamiast tego --browser-url=http://127.0.0.1:9222; tak nasz test łączył się ze swoim tymczasowym Chrome.

Zachowaj własne ustawienia

  • Nigdy nie wklejaj bloku na cały istniejący plik. Dodaj klucz; OpenCode scala pliki, więc twój dostawca, model i inne serwery zostają.
  • Projektowy opencode.json nadpisuje plik globalny tylko w kluczach, które ustawia. W naszym teście plik projektu zawierający tylko "mcp" zachował aktywny globalny model i dostawcę.
  • Aby wyłączyć przeglądarkę w jednym projekcie bez ruszania pliku globalnego, ustaw w tym projekcie "enabled": false dla chrome-devtools. Działało to we wszystkich przebiegach.

Które pliki konfiguracji ładuje OpenCode

Ten sam wpis serwera, różne miejsca i formy. „Załadowany” oznacza, że narzędzia chrome-devtools_… trafiły do zapytania OpenCode do modelu.

WariantPlik lub zmiennaWynik
Globalny plik konfiguracji~/.config/opencode/opencode.json Załadowany, 30 narzędzi (3/3)
Globalny plik JSONC z komentarzami i przecinkiem na końcu~/.config/opencode/opencode.jsonc Załadowany, 30 narzędzi (3/3)
Plik projektu w katalogu głównym workspaceopencode.json Załadowany, 30 narzędzi (3/3)
Plik projektu, OpenCode uruchomiony w podfolderzeopencode.json Załadowany, 30 narzędzi (3/3)
W folderze .opencode.opencode/opencode.json Załadowany, 30 narzędzi (3/3)
Własny plik przez zmienną środowiskowąOPENCODE_CONFIG=<file> Załadowany, 30 narzędzi (3/3)
JSON inline przez zmienną środowiskowąOPENCODE_CONFIG_CONTENT Załadowany, 30 narzędzi (3/3)
Blok "mcpServers" skopiowany z Claude Code lub Cursoraopencode.json Niezaładowany, bez błędu (3/3)
"command": "npx" plus "args" (forma, której używa większość innych agentów)opencode.json Konfiguracja odrzucona, OpenCode kończy działanie z kodem 1 (3/3)
Wpis z "enabled": falseopencode.json Niezaładowany, bez błędu (3/3)
Wpis globalny, plik projektu ustawia tylko "enabled": falseopencode.json Niezaładowany, bez błędu (3/3)

Dwa wiersze, które dają się we znaki: wklejony blok "mcpServers" jest ignorowany bez słowa (opencode mcp list mówi „No MCP servers configured”), a polecenie jako string zatrzymuje OpenCode, zanim wystartuje („Expected array, got "npx"”). Oba problemy rozwiązuje powyższa forma z tablicą.

Przebieg z przekazaniem krok po kroku

OpenCode 1.18.34 z Chrome DevTools MCP 1.10.1, Google Chrome 154.0.8037.92, macOS, Node 22, dnia 1 października 2026. Każdy przebieg używał świeżego katalogu domowego i świeżego profilu Chrome, więc żadne osobiste ustawienia nie zostały odczytane ani zmienione.

Nie użyliśmy żadnego modelu AI. Mały lokalny zastępnik odpowiadał na zapytania OpenCode do modelu stałymi wywołaniami narzędzi i odczytywał identyfikatory elementów wyłącznie z tego, co OpenCode faktycznie mu wysłał. Dzięki temu każdy przebieg jest identyczny i darmowy, a test sprawdza to, za co odpowiada OpenCode: konfigurację, narzędzia, to, co widzi model, uprawnienia i sesje. Nie sprawdza, jak dobrze model planuje.

Przebieg z przekazaniem na formularzu demo z naszego poradnika o CAPTCHA: 5 razy. Warianty konfiguracji: każdy 3 razy.

OpenCode otworzył formularz demo, wypełnił go, zatrzymał się na zastępczej weryfikacji i zakończył przebieg. Skrypt odegrał rolę człowieka i ukończył weryfikację w tej samej karcie. Potem drugi opencode run z --session kontynuował tę samą rozmowę i ją dokończył. CAPTCHA i 2FA w pracy agenta AI: kontrolowane przekazanie →

SprawdzenieUdane przebiegi
opencode mcp list pokazuje serwer jako połączony 5/5
Narzędzia Chrome DevTools udostępnione modelowi 5/5
Pełny snapshot strony dociera do modelu przy ustawieniach domyślnych 5/5
Otwiera formularz demo w połączonym Chrome 5/5
Wypełnia trzy pola i odczytuje je z powrotem 5/5
Zatrzymuje się na weryfikacji, status prepared_needs_human 5/5
Karta i wypełnione pola przetrwają koniec przebiegu 5/5
ID sesji pojawia się w opencode session list 5/5
Człowiek kończy weryfikację w tej samej karcie 5/5
opencode run --session kontynuuje tę samą sesję 5/5
Wznowiona sesja nadal zawiera wcześniejsze kroki 5/5
Wznowiony przebieg znajduje i wybiera tę samą kartę 5/5
Pola bez zmian po przerwie 5/5
Wysyła formularz dokładnie raz 5/5
Przebieg headless z "ask": wywołanie przeglądarki odrzucone, bez pytania 5/5
Ta sama reguła z --auto: wywołanie przeglądarki się wykonuje 5/5
"deny": narzędzia przeglądarki usunięte z listy modelu 5/5
Przebieg headless: model nie dostaje narzędzia do zadawania pytań 5/5
Przebieg headless z otwartym stdin: czeka, aż zostanie zatrzymany po 20 s 3/3
Zrzut ekranu, który OpenCode zrobił przez Chrome DevTools MCP podczas pauzy: pola wypełnione, status czeka na człowieka.
Zrzut ekranu, który OpenCode zrobił przez Chrome DevTools MCP podczas pauzy: pola wypełnione, status czeka na człowieka.

Wznowienie po zakończeniu przez człowieka

Każdy opencode run wypisuje ID sesji w wyjściu --format json, a opencode session list --format json też je pokazuje.

Kontynuuj z tym samym ID. W naszych przebiegach wznowiona sesja miała wszystkie wcześniejsze kroki, znalazła tę samą kartę przez Chrome DevTools MCP, zobaczyła niezmienione pola i wysłała formularz raz.

Wolisz interfejs terminalowy? opencode --session <session-id> otwiera tam tę samą rozmowę.

Znajdź sesję
opencode session list --format json
Kontynuuj headless
opencode run --session <session-id> "The check is done. Re-read the form and submit once."
Kontynuuj w interfejsie terminalowym
opencode --session <session-id>

Zatwierdzanie: ask, allow, deny

Bez bloku uprawnień OpenCode uruchamia narzędzia przeglądarki bez pytania. Jedna linia to zmienia. Każdą regułę uruchomiliśmy headless, tak jak skrypty wywołują OpenCode:

RegułaW przebiegu headless opencode run
"chrome-devtools_*": "ask"Od razu odrzucone komunikatem „The user rejected permission to use this specific tool call.” Przebieg i tak kończy się kodem 0.
Ta sama reguła plus --autoWywołanie przeglądarki się wykonuje. Jawne reguły deny według dokumentacji nadal obowiązują.
"chrome-devtools_*": "deny"Narzędzia przeglądarki znikają z listy narzędzi modelu.

Sam zatwierdzaj każdą akcję w przeglądarce

{
  "permission": {
    "chrome-devtools_*": "ask"
  }
}

Używaj "ask" w interfejsie terminalowym, gdzie OpenCode pyta: raz, zawsze albo odrzuć. W przebiegach headless albo zaakceptuj, że "ask" blokuje przeglądarkę, albo świadomie użyj --auto, na profilu Chrome przeznaczonym do premier.

Przesiadka z Claude Code

Serwer jest ten sam, konfiguracja nie. Cztery różnice decydują, czy twój wpis zadziała:

TematOpenCodeClaude Code
Gdzie jest wpisKlucz "mcp" w opencode.json"mcpServers" w .mcp.json
Forma polecenia"command" jako jedna tablica, plus "type": "local""command" jako string plus tablica "args"
Nazwy narzędzi w regułachchrome-devtools_take_snapshotmcp__chrome-devtools__take_snapshot
Domyślne zatwierdzanieWiększość działań dozwolonaPyta przy pierwszym użyciu każdego narzędzia

Trzy rzeczy, które kradną czas

Wklejony blok "mcpServers" milczy
OpenCode całkowicie ignoruje ten klucz: bez błędu, kod wyjścia 0, bez narzędzi przeglądarki. Przenieś wpis pod "mcp" i zamień polecenie w jedną tablicę.
Przebiegi headless czekają na otwartym stdin
Gdy skrypt uruchamia opencode run z stdin otwartym jako pipe, OpenCode czeka na dane, które nigdy nie nadejdą. We wszystkich 3 przebiegach wisiał, dopóki go nie zatrzymano; ze stdin z /dev/null odpowiadał od razu.
"ask" w skryptach oznacza nie
W przebiegu headless nie ma komu odpowiedzieć, więc każde "ask" staje się odmową. Decyduj dla każdego przebiegu, czy przeglądarka może działać sama.
TematBrzmienieCo zaobserwowaliśmy
OpenCode: serwery lokalneAdd local MCP servers using type to "local" within the MCP object.Forma "type": "local" plus tablica załadowała się w każdym przebiegu.
OpenCode: kilka plikówConfiguration files are merged together, not replaced.Potwierdzone: plik projektu zawierający tylko "mcp" zachował globalny model i dostawcę.
OpenCode: który plik wygrywaProject config has the highest precedence among standard config files - it overrides both global and remote configs.Potwierdzone: projektowe "enabled": false wyłączyło wpis globalny.
OpenCode: nazwy narzędziMCP server tools are registered with server name as prefixNarzędzia przyszły jako chrome-devtools_take_snapshot i tak dalej.
OpenCode: domyślne uprawnieniaIf you don’t specify anything, OpenCode starts from permissive defaults:Narzędzia przeglądarki działały bez pytania, dopóki nie dodaliśmy reguły.
OpenCode: --autoExplicit "deny" rules are still enforced.Przetestowaliśmy --auto z "ask"; przy "deny" narzędzia w ogóle nie były udostępniane.
OpenCode: rozmiar kontekstuMCP servers add to your context, so you want to be careful with which ones you enable.Chrome DevTools MCP dodaje 30 narzędzi. Podczas premiery wyłącz inne serwery.
OpenCode: flaga --sessionSession ID to continueDziałała headless w każdym przebiegu, w przeciwieństwie do agentów, które wznawiają tylko w swoim interfejsie terminalowym.
Claude Code: plik projektuProject-scoped servers enable team collaboration by storing configurations in a .mcp.json file at your project’s root directory.Inny plik i inny klucz niż w OpenCode; ten sam wpis nie przenosi się.
Claude Code: nazwy narzędzi w regułachmcp__puppeteer__* matches every tool from the puppeteer serverOpenCode zamiast tego używa pojedynczego podkreślnika po nazwie serwera.
Claude Code: tryb domyślnyPrompts for permission on first use of each tool.Domyślne ustawienie OpenCode jest odwrotne: zezwalaj, chyba że ustawisz regułę.
Chrome DevTools MCP: sekcja OpenCodeAdd the following configuration to your `opencode.json` file.Ta sama forma co nasz blok; przypinamy wersję i dodajemy --autoConnect.

Uruchom LaunchRepo w OpenCode

Otwórz OpenCode w swoim prywatnym workspace LaunchRepo i wklej prompt startowy. Zestaw poprowadzi onboarding, przetestuje połączenie z Chrome na Example Domain i zbuduje przebieg.

  • Prompt startowy dla najlepszych wyników zaleca Claude Code lub Codex CLI. OpenCode działa z tym samym zestawem, bo ma dwie rzeczy, których zestaw potrzebuje: dostęp do plików w workspace i przeglądarkę przez MCP.
  • OpenCode czyta AGENTS.md z workspace, więc sam przejmuje reguły zestawu.
  • Kroki CAPTCHA i 2FA wracają do ciebie jako przekazania; sesję wznawiasz z --session, jak pokazano wyżej.

Prompt startowy LaunchRepo

Recommend Claude Code CLI or Codex CLI in a terminal instead of the desktop apps for best results. If session metadata confirms desktop hosting, explicitly advise me to switch to the CLI and resume this same private workspace. Do not infer the host from a CLI engine version alone.

Read AGENTS.md, then follow "Start the dashboard for the owner". Create my private
workspace if I do not have one yet, start the dashboard, and give me the link.
Then lead ONBOARDING.md one phase at a time. Reuse recorded permissions instead of
asking again unless their scope is missing or conflicting. Actually test my visible
existing Chrome profile and intended identity as BROWSER-SETUP.md requires; use the
OS fallback if needed. Use one platform/browser worker by default. Build the normal
run only from suitable free-ready routes, keep research separate, and preserve any
draft that needs one exact human CAPTCHA/2FA action. Never claim browser control
bypasses or reduces those challenges.

Czego ten test nie obejmuje

  • Pytań o zatwierdzenie i narzędzia do pytań w interfejsie terminalowym. Zachowanie headless powyżej jest zmierzone; zachowanie interfejsu opisujemy według dokumentacji.
  • Prawdziwego modelu AI. Zastępnik usuwa jakość modelu z wyniku; model nadal może wybrać zły element.
  • --autoConnect do codziennego profilu Chrome. Użyliśmy tymczasowego Chrome przez --browser-url.
  • Windows i Linux, zdalnych serwerów MCP, kont OpenCode i płatnych planów modeli.

Źródła

Każdy cytat powyżej skopiowaliśmy słowo w słowo z tych stron, przeczytanych 1 października 2026. Przetestowane zachowanie pochodzi z naszych własnych przebiegów opisanych na tej stronie.

ŹródłoData stronySprawdzono
OpenCode Docs: MCP servers
OpenCode Docs: Config
OpenCode Docs: Permissions
OpenCode Docs: CLI
OpenCode Docs: Providers
Claude Code Docs: Connect Claude Code to tools via MCPbrak daty
Claude Code Docs: Configure permissionsbrak daty
Chrome DevTools MCP: MCP client configurationbrak daty

FAQ

Gdzie umieścić serwery MCP w OpenCode?
Pod kluczem "mcp" w opencode.json, w katalogu głównym projektu albo w ~/.config/opencode/opencode.json. W naszym teście OpenCode 1.18.34 ładował też .opencode/opencode.json, OPENCODE_CONFIG i OPENCODE_CONFIG_CONTENT.
Jak wygląda konfiguracja OpenCode dla Chrome DevTools MCP?
To wpis o nazwie chrome-devtools z "type": "local" i "command": ["npx", "-y", "chrome-devtools-mcp@1.10.1", "--autoConnect", "--no-usage-statistics", "--no-performance-crux"]. Uruchom opencode mcp list, żeby zobaczyć, że jest połączony.
Dlaczego OpenCode nie pokazuje mojego serwera MCP?
Najczęściej wpis został skopiowany z innego agenta: blok "mcpServers" jest ignorowany bez błędu, a "command": "npx" z osobnym "args" sprawia, że OpenCode odrzuca całą konfigurację. Użyj "mcp" i jednej tablicy polecenia.
Czy mogę zamiast tego użyć Playwright MCP?
Tak, ta sama forma wpisu "mcp" działa dla każdego lokalnego serwera MCP. Ta strona testuje Chrome DevTools MCP, bo podłącza się do Chrome, którego już używasz; nasza strona z porównaniem wyjaśnia, kiedy Playwright MCP pasuje lepiej.
Jak wznowić sesję OpenCode po CAPTCHA?
Ukończ weryfikację w tej samej karcie Chrome, a potem uruchom opencode run --session <session-id> z krótkim poleceniem albo otwórz sesję w interfejsie terminalowym przez opencode --session <session-id>. W naszych przebiegach sesja, karta i pola nadal były na miejscu.
Czy LaunchRepo oficjalnie wspiera OpenCode?
LaunchRepo wspiera agentów programistycznych, którzy mają dostęp do plików i przeglądarki; OpenCode ma jedno i drugie, a ta strona dokumentuje przetestowaną konfigurację. Nie jest to certyfikacja ani partnerstwo, a prompt startowy nadal zaleca Claude Code lub Codex CLI dla najlepszych wyników.

Daj OpenCode plan premiery

LaunchRepo daje twojemu agentowi listę platform, runbook i tracker, który agent na bieżąco aktualizuje. OpenCode wykonuje pracę w twojej przeglądarce; ostatnie słowo należy do ciebie.

Zobacz cennik