เว็บเทอร์มินัลหลายเซสชันสำหรับ Claude CLI ที่ยังทำงานต่อได้แม้ปิดฝาโน้ตบุ๊ก
(github.com/kimtaeyeong1229)ผมได้สร้างเว็บเทอร์มินัลที่ให้รัน หลาย Claude CLI sessions พร้อมกัน ผ่านแท็บในเบราว์เซอร์
เซสชันจะทำงานเป็น PTY อยู่บนเซิร์ฟเวอร์ และเบราว์เซอร์มีหน้าที่แค่แสดงผลหน้าจอเท่านั้น ดังนั้นถึงจะปิดเบราว์เซอร์หรือปิดฝาโน้ตบุ๊ก งานก็ยังทำงานต่อไปได้ และแม้จะปิด-เปิดเครื่อง PC ใหม่ เซสชันก็จะถูกกู้คืนอัตโนมัติด้วย --resume
คุณสมบัติหลัก
- หลายเซสชัน — สลับและจัดการ Claude CLI จำนวน N ตัวได้ในหน้าจอเดียวผ่าน UI แบบแท็บ/ไซด์บาร์
- การคงอยู่ของเซสชัน — บันทึกอัตโนมัติไว้ที่
~/.claude-web-terminal/sessions.jsonและกู้คืนอัตโนมัติเมื่อรีสตาร์ตเซิร์ฟเวอร์/PC - Docker container — เลือกโฟลเดอร์ภายใน container ที่กำลังรันอยู่ได้ ไม่ใช่แค่บนโฮสต์ แล้วสั่งรัน Claude จากในนั้น (
docker exec -it -w <path> <container> claude) - ตรวจจับ Claude process ภายนอก — เชื่อมต่อกับ
claudeที่รันอยู่แล้วจากเทอร์มินัลอื่น (Linux/proc) - กู้คืน scrollback เมื่อเชื่อมต่อใหม่ — บัฟเฟอร์ 200KB
- ฟรอนต์เอนด์ไฟล์เดียว — Vanilla HTML/CSS/JS, XTerm.js + ประมาณ 2,400 บรรทัด
- แบ็กเอนด์ไฟล์เดียว — Python aiohttp + PTY + WebSocket, ประมาณ 500 บรรทัด
สแตก
- แบ็กเอนด์: Python 3.10+ / aiohttp / PTY / WebSocket
- ฟรอนต์เอนด์: Vanilla HTML·CSS·JS, XTerm.js 5.5, FitAddon, WebLinksAddon
- การยืนยันตัวตน: ไม่มี — แนะนำให้ bind กับ 127.0.0.1 (หากเปิดให้ LAN เข้าถึง ให้ใช้ reverse proxy + basic auth)
การรันอัตโนมัติ
- macOS: LaunchAgent plist (มีเทมเพลตใน README)
- Linux: systemd user service +
loginctl enable-linger
ติดตั้งแบบบรรทัดเดียว
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
ในเบราว์เซอร์ให้เปิด http://127.0.0.1:8080.
ที่มาของการสร้าง
- ชอบ Claude CLI และใช้บ่อย แต่การเปิดหน้าต่างเทอร์มินัล N หน้าต่างค่อนข้างยุ่งยาก
- ไม่ชอบที่พอปิดฝาโน้ตบุ๊กแล้วโปรเซสตาย หรือพอ
sshหลุดแล้วเซสชันก็หลุดตามไปด้วย → เลยแยกออกด้วย PTY ฝั่งเซิร์ฟเวอร์ - ทุกครั้งที่ต้องเข้าไปในสภาพแวดล้อม Docker เพื่อรัน
claudeต้องทำdocker exec -itซ้ำ ๆ มันน่ารำคาญ → เลยรวมไว้ใน UI
ข้อจำกัด
- ไม่มีการยืนยันตัวตน — ออกแบบมาสำหรับการใช้งานบนเครื่องตัวเอง/เครือข่ายที่เชื่อถือได้
- การตรวจจับ process ภายนอกรองรับเฉพาะ Linux เท่านั้น (macOS ไม่มี
/proc) - ไม่มีการแยกหลายผู้ใช้/หลายบัญชี — เป็นเครื่องมือสำหรับผู้ใช้คนเดียว
ยินดีรับฟีดแบ็ก/issue ครับ
1 ความคิดเห็น
เป็นฟีเจอร์ที่ต้องการพอดีเลย คิดว่าดีมากครับ! 555