1 điểm bởi kimtaeyeong1229 3 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp

Tôi đã tạo một terminal web cho phép chạy nhiều phiên Claude CLI cùng lúc trong các tab trình duyệt.

Các phiên chạy bằng PTY trên máy chủ, còn trình duyệt chỉ hiển thị màn hình đó, nên dù đóng trình duyệt hay gập laptop thì công việc vẫn tiếp tục. Ngay cả khi tắt rồi bật lại PC, phiên cũng được khôi phục bằng --resume tự động.

Tính năng chính

  • Đa phiên — chuyển đổi và quản lý N Claude CLI trên một màn hình bằng UI tab/sidebar
  • Lưu phiên bền vững — tự động lưu vào ~/.claude-web-terminal/sessions.json, tự động khôi phục khi khởi động lại server/PC
  • Container Docker — không chỉ host mà còn có thể chọn thư mục bên trong container đang chạy và chạy Claude trong đó (docker exec -it -w <path> <container> claude)
  • Phát hiện tiến trình Claude bên ngoài — kết nối vào claude đang chạy sẵn trong terminal khác (Linux /proc)
  • Khôi phục scrollback khi kết nối lại — bộ đệm 200KB
  • Frontend một tệp — Vanilla HTML/CSS/JS, XTerm.js + khoảng 2.400 dòng
  • Backend một tệp — Python aiohttp + PTY + WebSocket, khoảng 500 dòng

Stack

  • Backend: Python 3.10+ / aiohttp / PTY / WebSocket
  • Frontend: Vanilla HTML·CSS·JS, XTerm.js 5.5, FitAddon, WebLinksAddon
  • Xác thực: không có — khuyến nghị bind vào 127.0.0.1 (nếu mở ra LAN thì dùng reverse proxy + basic auth)

Tự động chạy

  • macOS: LaunchAgent plist (README có kèm template)
  • Linux: systemd user service + loginctl enable-linger

Cài đặt một dòng

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  

Trong trình duyệt, mở http://127.0.0.1:8080.

Động lực tạo ra

  • Tôi rất thích Claude CLI và dùng thường xuyên, nhưng việc mở N cửa sổ terminal khá bất tiện
  • Tôi không thích việc gập laptop là chết, hoặc mất kết nối ssh là mất phiên → tách ra bằng PTY phía server
  • Mỗi lần muốn vào môi trường Docker để chạy claude thì lại phải làm quy trình docker exec -it, khá phiền → tích hợp vào UI

Giới hạn

  • Không có xác thực — giả định chạy trong môi trường local/mạng tin cậy
  • Phát hiện tiến trình bên ngoài chỉ hỗ trợ Linux (macOS không có /proc)
  • Không có đa người dùng/tách biệt tài khoản — công cụ cho người dùng đơn

Hoan nghênh mọi phản hồi/vấn đề.

1 bình luận

 

Đúng là tính năng mình đang cần, thấy rất ổn! haha