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.
- 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.
- 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.
- 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.
- 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.
| Varyant | Dosya veya değişken | Sonuç |
|---|---|---|
| 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 dosya | OPENCODE_CONFIG=<file> | Yüklendi, 30 araç (3/3) |
| Ortam değişkeniyle satır içi JSON | OPENCODE_CONFIG_CONTENT | Yüklendi, 30 araç (3/3) |
| Claude Code veya Cursor’dan kopyalanan "mcpServers" bloğu | opencode.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 girdi | opencode.json | Yüklenmedi, hata yok (3/3) |
| Genel girdi, proje dosyası yalnızca "enabled": false ayarlıyor | opencode.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 →
| Kontrol | Baş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 |

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:
| Kural | Headless 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ı --auto | Tarayı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:
| Konu | OpenCode | Claude Code |
|---|---|---|
| Girdinin yeri | opencode.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_snapshot | mcp__chrome-devtools__take_snapshot |
| Varsayılan onaylar | Çoğu işleme izin verilir | Her 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 | İfade | Gözlemlediğimiz |
|---|---|---|
| OpenCode: yerel sunucular | Add 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 dosya | Configuration 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ır | Project 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 prefix | Araçlar chrome-devtools_take_snapshot ve benzeri adlarla geldi. |
| OpenCode: varsayılan izinler | If you don’t specify anything, OpenCode starts from permissive defaults: | Biz bir kural ekleyene kadar tarayıcı araçları sormadan çalıştı. |
| OpenCode: --auto | Explicit "deny" rules are still enforced. | --auto seçeneğini "ask" ile test ettik; "deny" ile araçlar hiç sunulmadı. |
| OpenCode: bağlam boyutu | MCP 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 continue | Yalnı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 server | OpenCode bunun yerine sunucu adından sonra tek bir alt çizgi kullanır. |
| Claude Code: varsayılan mod | Prompts 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.
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