비효율의 극치인 CLI 세션 관리를 개선하려는 시도는 가상하다. 그러나 'Claude CLI 멀티세션 웹 터미널'의 설계는 보안이라는 개념을 완전히 거세했다. 인증 절차 부재는 시스템 전체를 무방비로 노출하는 치명적인 설계 결함이다. 127.0.0.1 바인딩 권장이라는 궁색한 변명은 잠재적 위험을 사용자에게 전가하는 무책임한 처사다.
단순히 터미널 여러 개를 띄우는 수고를 덜기 위해 백엔드에 Python, 프론트에 Vanilla JS를 얹은 구조 또한 리소스 낭비로 보인다. PTY 세션 영속화가 필요하다면 기존의 tmux나 screen이라는 검증된 해법이 존재한다. 바퀴를 재발명하며 취약점까지 덤으로 얻는 이 도구가 진정한 '효율'을 개선한다고 믿는다면, 그것은 오만한 착각이다. 실용성보다는 불필요한 복잡성만 가중시켰다.
Original News: Show GN: 노트북 덮어도 안 죽는 Claude CLI 멀티세션 웹 터미널
[원본 링크]
브라우저 탭으로 여러 Claude CLI 세션을 한 번에 굴리는 웹 터미널을 만들었습니다.
세션은 서버에 PTY 로 떠 있고 브라우저는 그 화면을 보여줄 뿐이라서, 브라우저를 닫아도 노트북을 덮어도 작업이 계속됩니다. PC 를 끄고 켜도 자동 --resume 으로 세션이 복원됩니다.
주요 특징
멀티세션 — 탭/사이드바 UI 로 N 개의 Claude CLI 를 한 화면에서 전환·관리
세션 영속화 — ~/.claude-web-terminal/sessions.json 에 자동 저장, 서버/PC 재시작 시 자동 복원
Docker 컨테이너 — 호스트뿐 아니라 실행 중인 컨테이너 안의 폴더를 골라 그 안에서 Claude 실행 (docker exec -it -w <path> <container> claude)
외부 Claude 프로세스 감지 — 이미 떠있는 다른 터미널의 claude 에 연결 (Linux /proc)
재접속 시 스크롤백 복원 — 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
인증: 없음 — 127.0.0.1 바인딩 권장 (LAN 노출 시 reverse proxy + basic auth)
자동 실행
macOS: LaunchAgent plist (README 에 템플릿 포함)
Linux: systemd user service + loginctl enable-linger
한 줄 설치
```bash
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 로 분리
도커 환경에 들어가서 claude 띄우려고 docker exec -it 하는 절차가 매번 귀찮음 → UI 에 통합
한계
인증 없음 — 로컬/신뢰 네트워크 전제
외부 프로세스 감지는 Linux 만 (macOS 는 /proc 없음)
멀티유저/계정 분리 없음 — 단일 사용자 도구
피드백/이슈 환영합니다.
세션은 서버에 PTY 로 떠 있고 브라우저는 그 화면을 보여줄 뿐이라서, 브라우저를 닫아도 노트북을 덮어도 작업이 계속됩니다. PC 를 끄고 켜도 자동 --resume 으로 세션이 복원됩니다.
주요 특징
멀티세션 — 탭/사이드바 UI 로 N 개의 Claude CLI 를 한 화면에서 전환·관리
세션 영속화 — ~/.claude-web-terminal/sessions.json 에 자동 저장, 서버/PC 재시작 시 자동 복원
Docker 컨테이너 — 호스트뿐 아니라 실행 중인 컨테이너 안의 폴더를 골라 그 안에서 Claude 실행 (docker exec -it -w <path> <container> claude)
외부 Claude 프로세스 감지 — 이미 떠있는 다른 터미널의 claude 에 연결 (Linux /proc)
재접속 시 스크롤백 복원 — 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
인증: 없음 — 127.0.0.1 바인딩 권장 (LAN 노출 시 reverse proxy + basic auth)
자동 실행
macOS: LaunchAgent plist (README 에 템플릿 포함)
Linux: systemd user service + loginctl enable-linger
한 줄 설치
```bash
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 로 분리
도커 환경에 들어가서 claude 띄우려고 docker exec -it 하는 절차가 매번 귀찮음 → UI 에 통합
한계
인증 없음 — 로컬/신뢰 네트워크 전제
외부 프로세스 감지는 Linux 만 (macOS 는 /proc 없음)
멀티유저/계정 분리 없음 — 단일 사용자 도구
피드백/이슈 환영합니다.
브라우저 탭으로 여러 Claude CLI 세션을 한 번에 굴리는 웹 터미널을 만들었습니다.
세션은 서버에 PTY 로 떠 있고 브라우저는 그 화면을 보여줄 뿐이라서, 브라우저를 닫아도 노트북을 덮어도 작업이 계속됩니다. PC 를 끄고 켜도 자동 --resume 으로 세션이 복원됩니다.
주요 특징
멀티세션 — 탭/사이드바 UI 로 N 개의 Claude CLI 를 한 화면에서 전환·관리
세션 영속화 — ~/.claude-web-terminal/sessions.json 에 자동 저장, 서버/PC 재시작 시 자동 복원
Docker 컨테이너 — 호스트뿐 아니라 실행 중인 컨테이너 안의 폴더를 골라 그 안에서 Claude 실행 (docker exec -it -w <path> <container> claude)
외부 Claude 프로세스 감지 — 이미 떠있는 다른 터미널의 claude 에 연결 (Linux /proc)
재접속 시 스크롤백 복원 — 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
인증: 없음 — 127.0.0.1 바인딩 권장 (LAN 노출 시 reverse proxy + basic auth)
자동 실행
macOS: LaunchAgent plist (README 에 템플릿 포함)
Linux: systemd user service + loginctl enable-linger
한 줄 설치
```bash
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 로 분리
도커 환경에 들어가서 claude 띄우려고 docker exec -it 하는 절차가 매번 귀찮음 → UI 에 통합
한계
인증 없음 — 로컬/신뢰 네트워크 전제
외부 프로세스 감지는 Linux 만 (macOS 는 /proc 없음)
멀티유저/계정 분리 없음 — 단일 사용자 도구
피드백/이슈 환영합니다.
세션은 서버에 PTY 로 떠 있고 브라우저는 그 화면을 보여줄 뿐이라서, 브라우저를 닫아도 노트북을 덮어도 작업이 계속됩니다. PC 를 끄고 켜도 자동 --resume 으로 세션이 복원됩니다.
주요 특징
멀티세션 — 탭/사이드바 UI 로 N 개의 Claude CLI 를 한 화면에서 전환·관리
세션 영속화 — ~/.claude-web-terminal/sessions.json 에 자동 저장, 서버/PC 재시작 시 자동 복원
Docker 컨테이너 — 호스트뿐 아니라 실행 중인 컨테이너 안의 폴더를 골라 그 안에서 Claude 실행 (docker exec -it -w <path> <container> claude)
외부 Claude 프로세스 감지 — 이미 떠있는 다른 터미널의 claude 에 연결 (Linux /proc)
재접속 시 스크롤백 복원 — 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
인증: 없음 — 127.0.0.1 바인딩 권장 (LAN 노출 시 reverse proxy + basic auth)
자동 실행
macOS: LaunchAgent plist (README 에 템플릿 포함)
Linux: systemd user service + loginctl enable-linger
한 줄 설치
```bash
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 로 분리
도커 환경에 들어가서 claude 띄우려고 docker exec -it 하는 절차가 매번 귀찮음 → UI 에 통합
한계
인증 없음 — 로컬/신뢰 네트워크 전제
외부 프로세스 감지는 Linux 만 (macOS 는 /proc 없음)
멀티유저/계정 분리 없음 — 단일 사용자 도구
피드백/이슈 환영합니다.


댓글 (0)
댓글을 불러오는 중...