Dizüstü kapağı kapalıyken bile durmayan Claude CLI çoklu oturum web terminali
(github.com/kimtaeyeong1229)Tarayıcı sekmeleriyle birden fazla Claude CLI oturumunu aynı anda çalıştıran bir web terminali oluşturdum.
Oturumlar sunucuda PTY olarak çalışıyor ve tarayıcı yalnızca ekranı gösteriyor; bu yüzden tarayıcıyı kapatsanız da dizüstü kapağını kapatsanız da işler çalışmaya devam ediyor. PC’yi kapatıp yeniden açsanız bile otomatik --resume ile oturumlar geri yükleniyor.
Başlıca özellikler
- Çoklu oturum — Sekme/kenar çubuğu arayüzüyle tek ekranda N adet Claude CLI arasında geçiş yapma ve yönetme
- Oturum kalıcılığı —
~/.claude-web-terminal/sessions.jsoniçine otomatik kaydetme, sunucu/PC yeniden başladığında otomatik geri yükleme - Docker konteynerleri — Yalnızca host üzerinde değil, çalışan konteyner içindeki bir klasörü seçip Claude’u orada çalıştırma (
docker exec -it -w <path> <container> claude) - Harici Claude süreci algılama — Başka bir terminalde zaten çalışan
claudesürecine bağlanma (Linux/proc) - Yeniden bağlanınca scrollback geri yükleme — 200KB tampon
- Tek dosya frontend — Vanilla HTML/CSS/JS, XTerm.js + yaklaşık 2.400 satır
- Tek dosya backend — Python aiohttp + PTY + WebSocket, yaklaşık 500 satır
Yığın
- Backend: Python 3.10+ / aiohttp / PTY / WebSocket
- Frontend: Vanilla HTML·CSS·JS, XTerm.js 5.5, FitAddon, WebLinksAddon
- Kimlik doğrulama: yok — 127.0.0.1’e bind edilmesi önerilir (LAN’e açılacaksa reverse proxy + basic auth)
Otomatik çalıştırma
- macOS: LaunchAgent plist (README içinde şablon var)
- Linux: systemd user service +
loginctl enable-linger
Tek satır kurulum
git clone https://github.com/kimtaeyeong1229/claude-web-terminal
cd claude-web-terminal && pip install -r requirements.txt
python3 server.py --host 127.0.0.1 --port 8080
Tarayıcıda http://127.0.0.1:8080.
Yapılma nedeni
- Claude CLI’yi sevdiğim ve sık kullandığım için N tane terminal penceresi açmak zahmetliydi
- Dizüstü kapağı kapanınca sürecin ölmesi ya da ssh kopunca oturumun kesilmesi hoşuma gitmiyordu → sunucu tarafı PTY ile ayırdım
- Docker ortamına girip
claudeçalıştırmak için her seferindedocker exec -ityapmak uğraştırıcıydı → arayüze entegre ettim
Sınırlar
- Kimlik doğrulama yok — yerel/güvenilen ağ varsayımı
- Harici süreç algılama yalnızca Linux’ta var (macOS’ta
/procyok) - Çok kullanıcılı/hesap ayrımı yok — tek kullanıcılı araç
Geri bildirimleriniz ve issue’larınız memnuniyetle karşılanır.
1 yorum
Tam ihtiyacım olan özellikti, bence çok iyi olmuş! haha