Claude Code'u 7/24 çalıştırmak: bilgisayarın kapalıyken agent'lar nasıl çalışır?
Claude Code'a "ödeme modülündeki testleri geçir, sonra pull request aç" dedin, laptop'un kapağını kapattın ve yattın. Sabah baktığında agent'ın ikinci dakikada durduğunu görüyorsun. Agent tembellik etmedi: bilgisayarın uyudu. Bu yazıda bunun neden olduğunu ve agent'ları bilgisayarın kapalıyken de çalışır tutmanın üç gerçekçi yolunu, artıları ve eksileriyle anlatıyoruz.
Agent aslında nerede çalışır?
Claude Code'da model Anthropic'in sunucularında çalışır, ama işi yapan döngü senin makinende döner. Dosyaları okuyan, komutları çalıştıran, testleri koşturan ve modele "şimdi ne yapayım?" diye soran şey, terminalinde açık duran claude sürecidir. Model yalnızca bir sonraki adımı söyler; adımı atan senin bilgisayarındır.
Laptop uyuduğunda bu süreç dondurulur, ağ bağlantısı kopar ve modelle konuşma yarıda kalır. Bilgisayar uyandığında süreç devam etse bile, uzun süren bir test ya da derleme çoktan zaman aşımına uğramış olabilir. Kısacası agent'ın 7/24 çalışması için Claude aboneliğinden çok, hiç kapanmayan bir makineye ihtiyacın var.
1. Yol: Kendi bilgisayarını uyanık tut
En hızlı çözüm, agent çalıştığı sürece bilgisayarın uyumasını engellemek. macOS'ta caffeinate bunun için var:
caffeinate -i claude
-i sistemin boşta kalınca uyumasını engeller; Claude Code kapanınca caffeinate da biter. Linux'ta aynı işi systemd-inhibit yapar:
systemd-inhibit --what=idle:sleep --why="gece görevi" claude
Artıları: kurulum yok, para yok, projen ve ortamın zaten orada. Eksileri ise can sıkıcı: kapağı kapatınca çoğu laptop yine uyur, Wi-Fi gece kopabilir, makine ısınır ve laptop'u yanına alamazsın. Bir de sabah kahveni içerken agent'ın ne yaptığını telefondan görmen zor. Ara sıra, birkaç saatlik işler için yeterli; her gece için değil.
2. Yol: Bir sunucu ve tmux
Klasik çözüm, agent'ı hiç kapanmayan bir Linux sunucusuna taşımak. Aylık birkaç dolarlık bir VPS yeter; yine de agent'ın yanında bir geliştirme sunucusu ve testler de çalışacaksa 2 GB bellekten azını seçme.
Sunucuya bağlan, Claude Code'u kur ve giriş yap:
ssh sen@sunucu
npm install -g @anthropic-ai/claude-code
claude auth login
Sunucuda tarayıcı yok; bu yüzden giriş komutu sana bir bağlantı verir. Bağlantıyı kendi bilgisayarında aç, Claude hesabınla giriş yap ve gösterilen kodu terminale yapıştır. Bir kez yaparsın, bağlı kalır.
Sonra işin püf noktası: agent'ı SSH oturumuna değil, bir tmux oturumuna bağla. SSH bağlantın koptuğunda (ki kopacak) agent çalışmaya devam eder:
tmux new -s gece
cd ~/projeler/uygulama
claude
# Ctrl-b, ardından d: oturumdan ayrıl, agent çalışmaya devam eder
# ertesi sabah:
tmux attach -t gece
Artıları: tam kontrol, düşük maliyet ve istediğin her aracı kurabilmen. Eksileri: o sunucunun sistem yöneticisi artık sensin. Güvenlik güncellemeleri, SSH anahtarları, güvenlik duvarı, Node sürümleri, disk dolması ve yedekler senin işin. Sunucu yeniden başlarsa tmux oturumları da gider. Telefondan takip için bir SSH uygulamasıyla tmux attach yapabilirsin ama küçük ekranda terminalde gezinmek uzun sürmez, yorar.
3. Yol: Etkileşimsiz mod ve zamanlanmış işler
Her işin sohbet gerektirmesi gerekmiyor. Claude Code'un -p (print) modu, görevi alır, çalışır, sonucu yazdırır ve çıkar. Bu, gece çalışan işler ve CI için idealdir:
claude -p "Başarısız testleri bul ve düzelt. Ne değiştirdiğini kısaca özetle." \
--allowedTools "Read" "Edit" "Bash(npm test:*)" "Bash(git diff:*)" \
--max-turns 30 \
--output-format json > sonuc.json
Burada önemli olan --allowedTools: etkileşimsiz modda izin isteyecek kimse yok, bu yüzden agent'ın kullanabileceği araçları açıkça sınırlarsın. Listede olmayan bir komutu çalıştıramaz. --max-turns da işin sonsuza kadar sürmesini engeller.
Aynı komutu cron'a koyarsan her gece kendiliğinden çalışır:
# crontab -e
0 3 * * * cd /home/sen/projeler/uygulama && /usr/local/bin/claude -p "Bağımlılık uyarılarını incele, güvenli güncellemeleri yap ve testleri çalıştır" --allowedTools "Read" "Edit" "Bash(npm:*)" >> ~/gece.log 2>&1
Cron'da claude'un tam yolunu yaz; cron senin kabuğunun PATH ayarlarını görmez. Tam yolu which claude ile bulursun.
İzinleri tamamen kapatan --dangerously-skip-permissions bayrağını burada kullanmak cazip gelebilir. Kullanacaksan yalnızca, içinde üretim anahtarları ve başka önemli veriler olmayan, yalıtılmış bir makinede kullan. Bunun nedenini agent güvenliği yazımızda ayrıntılı anlattık.
Uzun görevleri gerçekten bitirtmek
Makinen hiç kapanmasa da, görev iyi tanımlanmamışsa agent gece yarısı bir yerde takılır. Birkaç alışkanlık sabahki sonucu çok değiştirir:
- Bitti tanımını yaz. "Ödeme modülünü düzelt" yerine "
npm test -- paymentsgeçsin, yeni bağımlılık ekleme, işin bitince bir PR aç" de. Agent ne zaman duracağını bilmeli. - Bir
CLAUDE.mdtut. Projeyi nasıl kuracağını, testleri nasıl çalıştıracağını ve nelere dokunmaması gerektiğini proje kökündeki bu dosyaya yaz. Claude Code her oturumda okur; her seferinde aynı şeyi anlatmazsın. - Her görev için ayrı dal aç. Birden fazla agent'ı aynı depoda paralel çalıştıracaksan
git worktreekullan; her agent kendi klasöründe, kendi dalında çalışır ve birbirinin dosyalarını ezmez:git worktree add ../uygulama-odeme -b gece/odeme git worktree add ../uygulama-docs -b gece/docs - Küçük commit'ler iste. Agent her çalışan adımı commit ederse, yanlış giden bir adımı geri almak kolaylaşır.
- Kaldığın yerden devam et.
claude --continueo klasördeki son konuşmayı açar,claude --resumeeski konuşmalardan seçmeni sağlar.
Bir de kullanım limitleri var. Claude abonelikleri belirli aralıklarla sıfırlanan kullanım limitleriyle gelir. Bütün gece süren yoğun bir oturum bu limite takılabilir ve agent limit sıfırlanana kadar bekler. Gece için birkaç büyük görev yerine iyi tanımlanmış, sırayla ilerleyen birkaç orta boy görev seçmek bu yüzden daha verimli.
Hangi işler geceye uygun?
Her görev gece vardiyasına uygun değil. İyi adaylar, başarısı kolay ölçülen ve senin kararını gerektirmeyen işlerdir:
- Kırmızıya dönmüş testleri yeşile çevirmek ya da eksik testleri yazmak.
- Bağımlılıkları güncelleyip kırılan yerleri düzeltmek.
- Testlerle korunan bir modülü yeniden düzenlemek.
- API'ler için doküman, README ya da tip tanımları yazmak.
- Açık issue'ları okuyup sınıflandırmak, yeniden üretilebilenler için taslak düzeltmeler hazırlamak.
Kötü adaylar ise belirsiz ürün kararları ("ana sayfayı daha iyi yap"), üretim veritabanına ya da canlı ödeme anahtarlarına erişim gerektiren işler ve sonucu ancak bir insanın gözüyle değerlendirilebilen tasarım işleridir. Bunları gündüz, agent'la birlikte, adım adım yapmak daha iyi sonuç verir. Gece işlerinde kural basit: sabah bakacağın şey, okunabilir bir diff ve geçen testler olmalı.
Telefondan takip
Gece çalışan agent'ın asıl değeri sabah ortaya çıkar: ne yaptığını görmek, bir soruya cevap vermek, yeni bir görev başlatmak. Bunu yataktan, telefonundan yapabilmek istersin. SSH ve tmux ile mümkün ama rahat değil; terminal küçük ekran için tasarlanmamış.
Orkio'yu tam olarak bu boşluk için yaptık. Her müşteriye hiç kapanmayan, yalıtılmış bir Linux kutusu veriyoruz; agent'lar o kutuda, senin kendi Claude hesabınla çalışıyor. Uygulamayı telefonunda ya da tarayıcıda açıp görevi veriyorsun, uygulamayı kapatsan da agent devam ediyor. Sunucu yönetimi, tmux ya da cron ile uğraşmıyorsun. Bedeli de belli: Starter kutu aylık 19 dolar, yani en ucuz VPS'ten pahalı. Sunucu yönetmekten keyif alıyorsan 2. yol gayet iyi çalışır; o saatleri kendi işine ayırmak istiyorsan hazır bir kutu daha mantıklı.
Kısa kontrol listesi
- Agent'ın döngüsü senin makinende döner; makine uyursa agent da durur.
- Ara sıra yapılan işler için
caffeinateya dasystemd-inhibityeter. - Her gece çalışacaksan bir sunucu ve
tmuxkullan; yönetimi sana kalır. - Tekrarlanan işler için
claude -p,--allowedToolsve cron. - Bitti tanımı,
CLAUDE.md, görev başına dal ve küçük commit'ler sabahki sürprizleri azaltır. - İzinleri tamamen kapatacaksan bunu yalnızca yalıtılmış bir makinede yap.