Claude Code, büyük bir kod tabanını okuyup çok sayıda dosyaya yayılan bir planı akılda tutmakta güçlüdür. Codex ise dar kapsamlı, test odaklı değişikliklerde güçlüdür. Pek çok mühendis her ikisini de aynı depoda kullanmak ister: biri refactor'ı kaleme alırken diğeri kararsız bir test paketini sağlamlaştırsın. Ama bunu denediğiniz anda aynı çalışma dizini sorunun kendisi haline gelir. İki farklı araç, iki farklı CLI, ikisinin de yazdığı tek bir klasör.
Bu rehber kurulumu adım adım anlatıyor, her adımda karşılaşabileceğiniz hata modunu isimlendiriyor ve iki terminalin nerede tıkanmaya başladığını gösteriyor. İzolasyon kısmı git worktree'lerle çözülmüş bir sorun. Koordinasyon kısmı, yani hangi aracın neyin üzerinde çalıştığını bilmek ve her değişikliği gözden geçirilebilir tutmak ise Sharkly gibi çalışma zamanından bağımsız bir katmanın devraldığı yer.
Sharkly, Claude Code veya Codex'in yerini almaz. Hâlihazırda çalıştırdığınız yürütme araçlarının etrafına paylaşılan Task, Computer, bağlam ve gözden geçirme katmanını ekler; böylece bir Claude Code oturumu ile bir Codex oturumu, başında beklediğiniz iki terminal yerine tek bir iş akışındaki iki görev haline gelir.
Claude Code ile Codex'i aynı depoda neden çalıştırırsınız
Sürekli karşımıza çıkan üç neden var ve bunlar aynı sorun değil.
Farklı görevlerde farklı güçler. Geniş bağlam gerektiren işi (bu hatayı modül genelinde izle, bu geçişi planla) bir ajana, dar ve doğrulanabilir işi (şu testi geçir, şu fonksiyonu sıkılaştır) diğerine verirsiniz. Aracı göreve eşleştirmek başlı başına bir konu; hangi kodlama görevi için hangi model yazısına bakın.
Gerçek iş üzerinde kafa kafaya karşılaştırma. Tek dürüst kıyaslama ölçütü, bir liderlik tablosu değil, kendi kod tabanınızdır. İkisini de aynı bilet üzerinde çalıştırıp diff'leri karşılaştırmak, yayınlanmış herhangi bir skordan daha fazlasını söyler. Yöntemi kodlama ajanlarını kendi kod tabanınızda nasıl karşılaştırırsınız yazısında ele alıyoruz.
İkisine de zaten para ödüyorsunuz. Pek çok ekibin elinde zaten bir Claude aboneliği ve bir Codex veya API koltuğu var. Buradaki mesele sağlayıcı bağımsızlığı: iş akışınız, sıradaki en iyi modeli kim sunarsa sunsun, baştan kurmaya gerek kalmadan ayakta kalmalı.
Sebep ne olursa olsun, sonuç aynı: başarısızlık. Tek bir klasördeki iki ajan, kilidi olmayan tek bir belgeyi düzenleyen iki yazardır. Biri diğerinin altından dalı değiştirir ya da düzenleme sırasında bir dosyayı yeniden biçimlendirir ve elinizde anlamsız, yarı uygulanmış diff'ler kalır.
1. Adım: her ajana kendi worktree'sini verin
git worktree çakışmayı kökünden çözer. Tek bir depo, aynı anda, her biri kendi dalında olan birkaç çalışma dizinine sahip olabilir ve hepsi tek bir .git veritabanını paylaşır. Her iki aracın kavga ettiği tek bir klasör yerine, her görev için bir tane elde edersiniz.
# One checkout per task, each on its own branch
git worktree add ../app-refactor -b agent/refactor
git worktree add ../app-tests -b agent/tests
git worktree list
Her dizini farklı bir araca yönlendirin:
cd ../app-refactor && claude # Claude Code on the refactor
cd ../app-tests && codex # Codex on the test suite
Bunu atlarsanız hata modu: her iki araç da aynı depoya cd yapar, aynı dosyalar için yarışır ve biri diğerinin commit edilmemiş işinin üzerine sessizce yazar. Worktree'ler bunu fiziksel olarak imkânsız kılar. Sonrasındaki temizliğin kendine özgü pürüzleri var; temizlik derdi olmadan worktree'leri yönetmek yazısı git worktree remove ve bayat dal sorununu ele alıyor.
2. Adım: her aracı doğru talimatlara yönlendirin
Claude Code ile Codex farklı proje dosyalarını okur. Claude Code CLAUDE.md dosyasına bakar; Codex ise AGENTS.md okur. Deponuzda bunlardan yalnızca biri varsa, ajanlardan biri sizin kurallarınızdan habersiz çalışır.
İkisini de tutun ve tutarlı tutun. Güvenilir kalıp, paylaşılan kuralları bir kez yazıp her giriş noktasının bunları içermesini sağlamaktır:
<!-- CLAUDE.md and AGENTS.md both start with -->
See ./docs/agent-conventions.md for build, test, and style rules.
# Verify each tool actually loads its file before you turn it loose
claude --version # Claude Code reads CLAUDE.md from the worktree root
codex --version # Codex reads AGENTS.md from the worktree root
Bunu atlarsanız hata modu: Codex bir lint yapılandırmasını izlerken Claude Code başka bir tanesini izler ve her birleştirme, kimsenin yazıya dökmediği bir stil kavgasına dönüşür. Burada kişisel bir not önemli: bir kurulum token'ı sizin kurallarınızı taşımaz ve .gitignore'lanmış yerel bir dosya worktree'ye gitmez. Paylaşılan kuralları takip edilen dosyalara koyun, yoksa her yeni worktree boş başlar.
3. Adım: başlatın, sonra koordinasyon boşluğunun açılışını izleyin
İki worktree ve iki yapılandırma dosyasıyla mekanik olarak her şey çalışır. Bir dalda Claude Code, diğerinde Codex var; hiçbiri diğerinin dosyalarına dokunmaz. İki ajanla geçirilecek bir öğleden sonra için bu yeter.
Boşluk, klavyeden başınızı kaldırdığınızda açılır. Her oturum kendi geçmişini kendi sekmesinde tutar ve diğeri bunu göremez. Codex çalıştırması, Claude Code çalıştırmasının neyi değiştirdiğini bilmeye ihtiyaç duyduğunda başvurulacak paylaşılan bir bellek yoktur; dolayısıyla entegrasyon katmanı siz olursunuz. Ajanlar farklı zamanlarda biter ve sessizce girdi bekler; böylece "ikisini paralel çalıştır" sessizce "her birini sırayla kontrol et"e dönüşür.
Bunu ikinin ötesine ölçekleyin. Doğal sonraki hamle, worktree'leri oluşturan, her birinde doğru aracı başlatan ve çıktıyı adlandırılmış tmux panellerine aktaran bir sarmalayıcı betiktir. Birkaç çalıştırma için işe yarar. Sonra büyür: dal adlandırma, temizlik, hangi aracın hangi görevde olduğunu söylemenin bir yolu, çöken için yeniden denemeler. Çok geçmeden, yarısı shell geçmişinde yarısı kafanızda yaşayan, bash ile bir arada tutulan kırılgan bir orkestrasyon çerçevesi işletirsiniz. Ajanların hepsi Claude Code olduğunda da — birden fazla Claude Code ajanını çalıştırma yazısındaki gibi — ya da karışık olduğunda da aynı duvara toslarsınız.
İki terminalin ölçeklenmeyi bıraktığı nokta
Kendin yap kurulumunu aşıp aşmadığınızı gösteren dürüst test:
- Bir ekip arkadaşınız, siz terminalinizi ona okumadan ajanlarınızın şu anda ne yaptığını görebiliyor mu?
- Codex saat 14.00'te bitip girdiye ihtiyaç duyduğunda, bunu size bir şey söylüyor mu?
- Her iki ajan birlikte bitirdiğinde, işlerini gözden geçirmek için bir kuyruk var mı, yoksa sadece siz ve iki dal mı?
Yanıtlar "hayır" ise, eksik parça bir başka shell betiği değil. İşi her iki araca da atayabilen, canlı durum gösteren ve her değişikliği birleşmeden önce gözden geçirilebilir tutan bir katmandır. Ham terminallerin üzerine bir görev panosunun eklediği şey tam da budur.
Bu, açıkça belirtilmeye değer sınır. Claude Code ve Codex yürütmeyi gerçekleştirir. Bir komut katmanı ise atamayı, bağlı Computer'ları, görev bağlamını, ilerlemeyi, engelleri, sonuçları ve her ikisi genelinde insan gözden geçirmesini yönetir. Sharkly'de bir Task'ı bir Claude Code Runtime'a, diğerini bir Codex Runtime'a atarsınız; her biri bağlı bir Computer üzerinde kendi izole worktree'sinde çalışır ve yürütme, engeller ve sonuçlar özel terminallerde kaybolmak yerine Task zaman çizelgesine döner.
İş bölümü temiz kalır. Ajanlar araştırır, yürütür, test eder ve raporlar. İnsanlar yön belirler, yetki verir ve sonucu kabul eder. Otomasyon, yargınızın gerektiği yerde durur ve doğrulama kanıtı eklenmiş bir diff'i geri verir. Hâlihazırda para ödediğiniz araçları korursunuz; model kullanımı yine her birinde yapılandırılmış abonelikler ve API anahtarları üzerinden yürür ve kimin neyin üzerinde olduğunu gördüğünüz tek bir yeriniz olur.
Bir öğleden sonra bir ya da iki ajan çalıştırıyorsanız ve durumu kafanızda tutabiliyorsanız manuel kurulumu kullanın. İkinci bir kişinin görünürlüğe ihtiyacı olduğunda, sayı tek bir terminal penceresinin gösterebileceğini aştığında ya da araçları "bu dalı hangi çalıştırma üretti" sorusu artık apaçık olmayacak kadar sık karşılaştırdığınızda paylaşılan bir katmana uzanın.
Bugün uygulayabileceğiniz bir kontrol listesi
Bir dahaki sefere her iki aracı tek bir depoya koyduğunuzda bunu baştan sona uygulayın:
- [ ] Her görev için, her biri kendi dalında olan bir
git worktreeoluşturun. İki aracı asla aynı dizine yönlendirmeyin. - [ ] Hem
CLAUDE.mdhem deAGENTS.mddosyasını commit'leyin; her biri takip edilen kaynakta tek bir paylaşılan kurallar dosyasına işaret etsin. - [ ] İş atamadan önce her aracın yapılandırmasını worktree kökünden yüklediğini doğrulayın.
- [ ] Her ajana kapsamı belirli bir Task atayın. Geniş bağlamlı işi birine, dar test odaklı işi diğerine.
- [ ] Gözden geçirme eşiğinizi baştan belirleyin: bir kişi diff'i ve test sonuçlarını okumadan hiçbir dal birleşmez.
- [ ] Eşzamanlı çalıştırma sayısı iki ya da üçü geçtiğinde, bash'i ölçeklemeyi bırakın ve atama, durum ve gözden geçirmeyi tek bir katmana taşıyın.
Tek bir ekosisteme bağlanmak yerine hem Claude Code'u hem de Codex'i kullanmaya devam etmek istiyorsanız, Sharkly tam da bu sorun etrafında tasarlandı. Sharkly'yi indirin, bir Computer bağlayın ve ilk Task'ınızı işe uyan ajana atayın.
SSS
Claude Code ve Codex aynı dosyaları güvenle düzenleyebilir mi? Aynı dizinde düzenleyemez. Her birine kendi git worktree'sini verin ki ayrı dallarda çalışsınlar, sonra gözden geçirme yoluyla birleştirin. Commit edilmemiş işin kaybolduğu yer, aynı dizinde eşzamanlı çalışmadır.
İki aboneliğe ihtiyacım var mı? Her aracın gerektirdiği şeye ihtiyacınız var. Model kullanımı, Claude Code ve Codex'te yapılandırılmış abonelikler veya API anahtarları üzerinden devam eder; bir koordinasyon katmanı bu erişimi değiştirmez ya da yeniden satmaz.
İki ajan için görev panosu abartı mı? Tek oturumda kontrol ettiğiniz iki ajan için düz worktree'ler ve iki terminal yeterlidir. Pano, bir ekip arkadaşının görünürlüğe ihtiyacı olduğunda ya da çalıştırma sayısı arttığında yerini hak eder. Paralel yapay zekâ kodlama ajanlarını yönetmek için en iyi araçlar yazısına bakın.



