1 คะแนน โดย kimtaeyeong1229 4 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ผมได้สร้างเว็บเทอร์มินัลที่ให้รัน หลาย 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 ความคิดเห็น

 
thnet88 3 시간 전

เป็นฟีเจอร์ที่ต้องการพอดีเลย คิดว่าดีมากครับ! 555