Ajan kurulumu · OpenCode

OpenCode ile LaunchRepo: tarayıcı MCP kurulumu, test edildi

opencode.json içindeki tek bir blok OpenCode’a gerçek bir Chrome verir. Lansmandaki tüm devir sürecini bununla çalıştırdık: formu doldur, doğrulamada dur, bir kişinin tamamlamasına izin ver, aynı oturuma devam et ve tek seferde gönder.

Kısa cevap

  • chrome-devtools girdisini opencode.json içindeki "mcp" anahtarının altına koy; "type": "local" ile ve komutun tamamını tek bir dizi olarak. Blok aşağıda.
  • OpenCode 1.18.34 onu genel dosyadan, proje opencode.json dosyasından (bir alt klasörde başlatıldığında da), .opencode/opencode.json dosyasından ve her iki ortam değişkeninden yükledi.
  • Ardından chrome-devtools_… adlı 30 tarayıcı aracı sundu ve 44.167 karakterlik sayfa anlık görüntüsünün tamamını kısaltmadan modele iletti.
  • Bir CAPTCHA veya 2FA adımından sonra aynı konuşmaya opencode run --session <session-id> ile devam et. Bu, headless modda her çalıştırmada işe yaradı: aynı sekme, aynı alanlar, tek gönderim.
  • OpenCode varsayılan olarak çoğu işleme izin verir; tarayıcı işlemlerini kendin onaylamak istiyorsan tek bir izin satırı ekle.

LaunchRepo, çalışma alanındaki dosyaları okuyup yazabilen ve bir tarayıcıyı kontrol edebilen her kodlama ajanıyla çalışır. OpenCode ikisini de yapar. Bu sayfa test edilmiş bir kurulumu belgeler; bir sertifika veya ortaklık değildir.

Tarayıcıyı opencode.json’a ekle

OpenCode yapılandırma dosyalarını değiştirmek yerine birleştirir. Bu da kurulumu güvenli kılar: tek bir anahtar eklersin ve mevcut tüm ayarların olduğu gibi kalır.

  1. LaunchRepo çalışma alanının kök dizinindeki opencode.json dosyasını aç ya da oluştur. Tüm projeler için tek seferde, bunun yerine ~/.config/opencode/opencode.json kullan.
  2. Aşağıdaki "mcp" bloğunu mevcut anahtarlarının yanına ekle. Dosyada zaten bir "mcp" anahtarı varsa içine yalnızca chrome-devtools girdisini ekle.
  3. Kullandığın Chrome’da chrome://inspect/#remote-debugging sayfasını aç ve uzaktan hata ayıklamayı etkinleştir (Chrome 144+). --autoConnect buna bağlanır.
  4. opencode mcp list komutunu çalıştır. Çalışan bir girdi aşağıdaki satırı gösterir; ardından OpenCode’dan https://example.com adresini açıp sayfa başlığını okumasını iste.

Şuraya ekle 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"
      ]
    }
  }
}

opencode mcp list çıktısında beklenen satır opencode mcp list

✓ chrome-devtools connected

--autoConnect zaten çalıştırdığın Chrome’u kullanır. Yalnızca lansmanlar için ayrı bir Chrome istiyorsan bunun yerine --browser-url=http://127.0.0.1:9222 kullan; testimiz geçici Chrome’una bu şekilde bağlandı.

Kendi ayarlarını koru

  • Bloğu asla mevcut bir dosyanın tamamının üzerine yapıştırma. Anahtarı ekle; OpenCode dosyaları birleştirir, böylece sağlayıcın, modelin ve diğer sunucuların yerinde kalır.
  • Proje opencode.json dosyası genel dosyayı yalnızca kendi ayarladığı anahtarlar için geçersiz kılar. Testimizde yalnızca "mcp" içeren bir proje dosyası genel model ve sağlayıcıyı etkin tuttu.
  • Genel dosyaya dokunmadan tarayıcıyı tek bir projede kapatmak için o projede chrome-devtools için "enabled": false ayarla. Bu tüm çalıştırmalarda işe yaradı.

OpenCode hangi yapılandırma dosyalarını yükler

Aynı sunucu girdisi, farklı yerler ve biçimler. “Yüklendi”, chrome-devtools_… araçlarının OpenCode’un modele gönderdiği isteğe ulaştığı anlamına gelir.

VaryantDosya veya değişkenSonuç
Genel yapılandırma dosyası~/.config/opencode/opencode.json Yüklendi, 30 araç (3/3)
Yorumlar ve sonda virgül içeren genel JSONC dosyası~/.config/opencode/opencode.jsonc Yüklendi, 30 araç (3/3)
Çalışma alanı kök dizinindeki proje dosyasıopencode.json Yüklendi, 30 araç (3/3)
Proje dosyası, OpenCode bir alt klasörde başlatıldıopencode.json Yüklendi, 30 araç (3/3)
.opencode klasörünün içinde.opencode/opencode.json Yüklendi, 30 araç (3/3)
Ortam değişkeniyle özel dosyaOPENCODE_CONFIG=<file> Yüklendi, 30 araç (3/3)
Ortam değişkeniyle satır içi JSONOPENCODE_CONFIG_CONTENT Yüklendi, 30 araç (3/3)
Claude Code veya Cursor’dan kopyalanan "mcpServers" bloğuopencode.json Yüklenmedi, hata yok (3/3)
"command": "npx" artı "args" (diğer ajanların çoğunun kullandığı biçim)opencode.json Yapılandırma reddedildi, OpenCode çıkış kodu 1 ile durur (3/3)
"enabled": false içeren girdiopencode.json Yüklenmedi, hata yok (3/3)
Genel girdi, proje dosyası yalnızca "enabled": false ayarlıyoropencode.json Yüklenmedi, hata yok (3/3)

Can sıkan iki satır: yapıştırılmış bir "mcpServers" bloğu tek kelime edilmeden yok sayılır (opencode mcp list “No MCP servers configured” der) ve metin olarak yazılmış bir komut OpenCode’u daha başlamadan durdurur (“Expected array, got "npx"”). İkisi de yukarıdaki dizi biçimiyle düzelir.

Devir çalıştırması adım adım

OpenCode 1.18.34, Chrome DevTools MCP 1.10.1, Google Chrome 154.0.8037.92, macOS, Node 22 ile, 1 Ekim 2026 tarihinde. Her çalıştırma yeni bir ana dizin ve yeni bir Chrome profili kullandı; böylece hiçbir kişisel ayar okunmadı veya değiştirilmedi.

Hiçbir yapay zekâ modeli kullanılmadı. Küçük bir yerel model taklidi, OpenCode’un model isteklerini sabit araç çağrılarıyla yanıtladı ve öğe kimliklerini yalnızca OpenCode’un ona gerçekten gönderdiklerinden okudu. Bu, her çalıştırmayı aynı ve ücretsiz kılar ve OpenCode’un kontrol ettiği şeyleri test eder: yapılandırma, araçlar, modelin gördükleri, izinler ve oturumlar. Bir modelin ne kadar iyi plan yaptığını test etmez.

CAPTCHA rehberimizdeki demo form üzerinde devir çalıştırması: 5 çalıştırma. Yapılandırma varyantları: her biri 3 çalıştırma.

OpenCode demo formu açtı, doldurdu, taklit doğrulamada durdu ve çalıştırmayı bitirdi. Bir betik kişiyi canlandırdı ve doğrulamayı aynı sekmede tamamladı. Ardından --session ile ikinci bir opencode run aynı konuşmaya devam etti ve işi bitirdi. Ajan iş akışlarında CAPTCHA ve 2FA: kontrollü devir →

KontrolBaşarılı çalıştırmalar
opencode mcp list sunucuyu bağlı olarak gösteriyor 5/5
Chrome DevTools araçları modele sunuluyor 5/5
Varsayılan ayarlarla tam sayfa anlık görüntüsü modele ulaşıyor 5/5
Demo formu bağlı Chrome’da açıyor 5/5
Üç alanı dolduruyor ve geri okuyor 5/5
Doğrulamada duruyor, durum prepared_needs_human 5/5
Sekme ve doldurulmuş alanlar çalıştırmanın bitişinden sonra kalıyor 5/5
Oturum kimliği opencode session list çıktısında görünüyor 5/5
Kişi doğrulamayı aynı sekmede tamamlıyor 5/5
opencode run --session aynı oturuma devam ediyor 5/5
Devam eden oturum önceki adımları hâlâ içeriyor 5/5
Devam eden çalıştırma aynı sekmeyi bulup seçiyor 5/5
Alanlar duraklamadan sonra değişmemiş 5/5
Tam olarak bir kez gönderiyor 5/5
"ask" ile headless çalıştırma: tarayıcı çağrısı reddedildi, soru sorulmadı 5/5
Aynı kural --auto ile: tarayıcı çağrısı çalışıyor 5/5
"deny": tarayıcı araçları modelin listesinden kaldırılıyor 5/5
Headless çalıştırma: modele soru aracı sunulmuyor 5/5
stdin açık bırakılmış headless çalıştırma: 20 sn sonra durdurulana kadar bekliyor 3/3
OpenCode’un duraklamadayken Chrome DevTools MCP üzerinden aldığı ekran görüntüsü: alanlar dolu, durum kişiyi bekliyor.
OpenCode’un duraklamadayken Chrome DevTools MCP üzerinden aldığı ekran görüntüsü: alanlar dolu, durum kişiyi bekliyor.

Kişi işini bitirdikten sonra devam et

Her opencode run, oturum kimliğini --format json çıktısında yazdırır; opencode session list --format json da onu listeler.

Aynı kimlikle devam et. Çalıştırmalarımızda devam eden oturum önceki tüm adımlara sahipti, Chrome DevTools MCP üzerinden aynı sekmeyi buldu, alanları değişmemiş gördü ve bir kez gönderdi.

Terminal arayüzünü mü tercih ediyorsun? opencode --session <session-id> aynı konuşmayı orada açar.

Oturumu bul
opencode session list --format json
Headless devam et
opencode run --session <session-id> "The check is done. Re-read the form and submit once."
Terminal arayüzünde devam et
opencode --session <session-id>

Onaylar: ask, allow, deny

Bir izin bloğu olmadan OpenCode tarayıcı araçlarını sormadan çalıştırır. Tek bir satır bunu değiştirir. Her kuralı, betiklerin OpenCode’u çağırdığı gibi headless olarak çalıştırdık:

KuralHeadless bir opencode run içinde
"chrome-devtools_*": "ask"“The user rejected permission to use this specific tool call.” mesajıyla anında reddedilir. Çalıştırma yine de çıkış kodu 0 ile biter.
Aynı kural artı --autoTarayıcı çağrısı çalışır. Belgelere göre açık deny kuralları yine de geçerlidir.
"chrome-devtools_*": "deny"Tarayıcı araçları modelin araç listesinden kaybolur.

Her tarayıcı işlemini kendin onayla

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

"ask" kuralını, OpenCode’un bir kez, her zaman veya reddet diye sorduğu terminal arayüzünde kullan. Headless çalıştırmalarda ya "ask" kuralının tarayıcıyı engellediğini kabul et ya da --auto seçeneğini bilerek, lansmanlara ayrılmış bir Chrome profilinde kullan.

Claude Code’dan geçenler için

Sunucu aynı, yapılandırma değil. Girdinin çalışıp çalışmayacağını dört fark belirler:

KonuOpenCodeClaude Code
Girdinin yeriopencode.json içinde "mcp" anahtarı.mcp.json içinde "mcpServers"
Komut biçimi"command" tek bir dizi, artı "type": "local""command" metni artı "args" dizisi
Kurallardaki araç adlarıchrome-devtools_take_snapshotmcp__chrome-devtools__take_snapshot
Varsayılan onaylarÇoğu işleme izin verilirHer aracın ilk kullanımında sorar

Zaman kaybettiren üç şey

Yapıştırılmış "mcpServers" bloğu sessiz kalır
OpenCode bu anahtarı tamamen yok sayar: hata yok, çıkış kodu 0, tarayıcı aracı yok. Girdiyi "mcp" altına taşı ve komutu tek bir diziye çevir.
Headless çalıştırmalar açık stdin’i bekler
Bir betik opencode run komutunu stdin bir pipe olarak açık kalacak şekilde başlatırsa, OpenCode hiç gelmeyecek girdiyi bekler. 3 çalıştırmanın hepsinde durdurulana kadar takılı kaldı; stdin /dev/null’dan geldiğinde hemen yanıt verdi.
Betiklerde "ask" hayır demektir
Headless bir çalıştırmada yanıt verecek kimse yoktur, bu yüzden her "ask" bir redde dönüşür. Tarayıcının tek başına hareket edip edemeyeceğine her çalıştırma için karar ver.
KonuİfadeGözlemlediğimiz
OpenCode: yerel sunucularAdd local MCP servers using type to "local" within the MCP object."type": "local" artı dizi biçimi her çalıştırmada yüklendi.
OpenCode: birden fazla dosyaConfiguration files are merged together, not replaced.Doğrulandı: yalnızca "mcp" içeren bir proje dosyası genel model ve sağlayıcıyı korudu.
OpenCode: hangi dosya kazanırProject config has the highest precedence among standard config files - it overrides both global and remote configs.Doğrulandı: projedeki "enabled": false genel girdiyi kapattı.
OpenCode: araç adlarıMCP server tools are registered with server name as prefixAraçlar chrome-devtools_take_snapshot ve benzeri adlarla geldi.
OpenCode: varsayılan izinlerIf you don’t specify anything, OpenCode starts from permissive defaults:Biz bir kural ekleyene kadar tarayıcı araçları sormadan çalıştı.
OpenCode: --autoExplicit "deny" rules are still enforced.--auto seçeneğini "ask" ile test ettik; "deny" ile araçlar hiç sunulmadı.
OpenCode: bağlam boyutuMCP servers add to your context, so you want to be careful with which ones you enable.Chrome DevTools MCP 30 araç ekler. Lansman yaparken diğer sunucuları kapalı tut.
OpenCode: --session bayrağıSession ID to continueYalnızca terminal arayüzünde devam edebilen ajanların aksine, her çalıştırmada headless olarak çalıştı.
Claude Code: proje dosyasıProject-scoped servers enable team collaboration by storing configurations in a .mcp.json file at your project’s root directory.OpenCode’dan farklı dosya ve anahtar; aynı girdi doğrudan taşınmaz.
Claude Code: kurallardaki araç adlarımcp__puppeteer__* matches every tool from the puppeteer serverOpenCode bunun yerine sunucu adından sonra tek bir alt çizgi kullanır.
Claude Code: varsayılan modPrompts for permission on first use of each tool.OpenCode’un varsayılanı tam tersi: bir kural koymadıkça izin ver.
Chrome DevTools MCP: OpenCode bölümüAdd the following configuration to your `opencode.json` file.Bizim bloğumuzla aynı biçim; biz sürümü sabitliyor ve --autoConnect ekliyoruz.

LaunchRepo’yu OpenCode’da başlat

OpenCode’u LaunchRepo özel çalışma alanında aç ve başlangıç komutunu yapıştır. Kit ardından onboarding’i yönetir, Chrome bağlantını Example Domain üzerinde test eder ve çalıştırmayı oluşturur.

  • Başlangıç komutu en iyi sonuçlar için Claude Code veya Codex CLI önerir. OpenCode aynı kit ile çalışır, çünkü kitin ihtiyaç duyduğu iki şeye sahiptir: çalışma alanında dosya erişimi ve MCP üzerinden bir tarayıcı.
  • OpenCode çalışma alanındaki AGENTS.md dosyasını okur, böylece kitin kurallarını kendiliğinden alır.
  • CAPTCHA ve 2FA adımları sana devir olarak geri gelir; oturuma yukarıda gösterildiği gibi --session ile devam edersin.

LaunchRepo başlangıç komutu

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.

Bu testin kapsamadıkları

  • Terminal arayüzünün onay soruları ve soru aracı. Yukarıdaki headless davranış ölçüldü; arayüz davranışı belgelere dayanıyor.
  • Gerçek bir yapay zekâ modeli. Model taklidi, model kalitesini sonuçtan çıkarır; bir model yine de yanlış öğeyi seçebilir.
  • Günlük kullanılan bir Chrome profiline --autoConnect. Biz --browser-url üzerinden geçici bir Chrome kullandık.
  • Windows ve Linux, uzak MCP sunucuları, OpenCode hesapları ve ücretli model planları.

Kaynaklar

Yukarıdaki her alıntı, 1 Ekim 2026 tarihinde okunan bu sayfalardan kelimesi kelimesine kopyalandı. Test edilen davranış, bu sayfada anlatılan kendi çalıştırmalarımızdan geliyor.

KaynakSayfa tarihiKontrol edildi
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 MCPtarih yok
Claude Code Docs: Configure permissionstarih yok
Chrome DevTools MCP: MCP client configurationtarih yok

SSS

OpenCode’da MCP sunucularını nereye koyarım?
opencode.json içindeki "mcp" anahtarının altına; ya proje kök dizininde ya da ~/.config/opencode/opencode.json içinde. Testimizde OpenCode 1.18.34 ayrıca .opencode/opencode.json, OPENCODE_CONFIG ve OPENCODE_CONFIG_CONTENT kaynaklarını da yükledi.
Chrome DevTools MCP için OpenCode yapılandırması nasıl?
"type": "local" ve "command": ["npx", "-y", "chrome-devtools-mcp@1.10.1", "--autoConnect", "--no-usage-statistics", "--no-performance-crux"] içeren, chrome-devtools adlı bir girdi. Bağlı olduğunu görmek için opencode mcp list çalıştır.
OpenCode neden MCP sunucumu göstermiyor?
Çoğu zaman girdi başka bir ajandan kopyalanmıştır: "mcpServers" bloğu hatasız yok sayılır, ayrı "args" ile "command": "npx" ise OpenCode’un tüm yapılandırmayı reddetmesine yol açar. "mcp" ve tek bir komut dizisi kullan.
Bunun yerine Playwright MCP kullanabilir miyim?
Evet, aynı "mcp" girdi biçimi her yerel MCP sunucusu için çalışır. Bu sayfa Chrome DevTools MCP’yi test ediyor, çünkü zaten kullandığın Chrome’a bağlanıyor; karşılaştırma sayfamız Playwright MCP’nin ne zaman daha uygun olduğunu açıklıyor.
CAPTCHA sonrası bir OpenCode oturumuna nasıl devam ederim?
Doğrulamayı aynı Chrome sekmesinde tamamla, ardından kısa bir talimatla opencode run --session <session-id> çalıştır ya da oturumu opencode --session <session-id> ile terminal arayüzünde aç. Çalıştırmalarımızda oturum, sekme ve alanların hepsi hâlâ yerindeydi.
OpenCode, LaunchRepo tarafından resmi olarak destekleniyor mu?
LaunchRepo, dosya ve tarayıcı erişimi olan kodlama ajanlarını destekler; OpenCode ikisine de sahip ve bu sayfa test edilmiş bir kurulumu belgeliyor. Bu bir sertifika veya ortaklık değildir ve başlangıç komutu en iyi sonuçlar için hâlâ Claude Code veya Codex CLI önerir.

OpenCode’a bir lansman planı ver

LaunchRepo ajanına platform listesini, çalışma kılavuzunu ve güncel tuttuğu bir takip dosyasını verir. OpenCode işi senin tarayıcında yapar; son söz sende kalır.

Fiyatları gör