Python · Textual · 단일 서버 / 다중 클라이언트

외우지 않아도 되는 터미널 멀티플렉서

tmux 처럼 하나의 터미널을 여러 패널·탭으로 나눠 쓰되, 마우스·메뉴를 1급으로 지원합니다. 앱을 닫아도 셸은 살아 있고, Claude Code 토큰 사용량을 한눈에 보여주고 리밋에 걸리면 자동으로 재개합니다. macOS · Linux · Windows 네이티브.

pytmux — 하나의 터미널을 좌우 패널로 분할한 화면. 활성 패널은 파란 테두리.
Why pytmux

tmux 의 힘, 더 낮은 진입장벽

명령어를 다 외우지 못해도, 마우스를 더 쓰고 싶어도 괜찮습니다. 세 가지 방식 모두로 제어합니다.

🖱️

마우스 1급 지원

경계선 드래그로 패널 크기 조절, 클릭으로 포커스, 우클릭으로 메뉴, 휠로 스크롤백. Shift+드래그로 두 패널을 맞바꿉니다.

🧭

메뉴 · 명령 프롬프트

단축키를 외우지 않아도 메뉴(prefix Enter)와 명령 프롬프트(prefix :)로 거의 모든 동작을 합니다.

♻️

셸 영속

셸 PTY 를 백그라운드 데몬이 보유합니다. 앱을 닫거나 터미널 창을 닫아도 셸은 계속 돌고, 다시 실행하면 그대로 이어 붙습니다.

🪟

윈도우 네이티브

tmux 와 달리 WSL·Cygwin 없이 윈도우에서 그대로 동작합니다. ConPTY 기반 pty-host 로 PowerShell·cmd 를 띄우고, macOS·Linux 와 같은 경험을 줍니다.

Core features

패널 · 탭 · 스크롤백, 익숙하게

탭 → 윈도우 → 패널 계층. 최상위는 탭이고, 각 탭을 패널 집합으로 분할합니다.

패널 분할과 활성 테두리

한 화면을 좌우·상하로 자유롭게 분할하고 중첩합니다. 패널이 둘 이상이면 각 패널을 테두리로 감싸고, 활성 패널은 파란색으로 강조합니다.

  • prefix % 좌우 분할 · prefix " 상하 분할
  • prefix z 로 패널 줌(전체화면) 토글
  • 경계선을 마우스로 끌어 크기 조절, Shift+드래그로 swap
중첩 분할된 여러 패널
03 · 중첩 분할 레이아웃

상단 탭바와 여러 윈도우

탭이 하나여도 상단에 탭 인터페이스가 나타나고, 마지막 탭 오른쪽의 [+] 로 새 탭을 엽니다. 탭은 1번부터 번호가 매겨지고 드래그로 재정렬합니다.

  • 활성 탭은 아래 콘텐츠와 연결된 노트북 탭 모양
  • 탭 고정(pin), 이름 변경, 닫기 확인
  • 하단 상태표시줄에 탭 목록 · 줌 상태 · 시계
여러 탭이 열린 상단 탭바
08 · 다중 탭 + 상단 탭바

메뉴와 명령 프롬프트

우클릭 또는 prefix Enter 로 패널·레이아웃·탭 그룹으로 정리된 메뉴를 엽니다. prefix : 명령 프롬프트는 공백 검색·자동완성·인자 이력을 지원합니다.

  • 서브메뉴로 정리된 계층형 메뉴
  • 명령 팝업에서 전체 명령 목록 탐색
  • bind-key 로 런타임 키 재바인딩
서브메뉴가 펼쳐진 컨텍스트 메뉴
36 · 서브메뉴 · 06 명령 프롬프트

패널별 스크롤백

copy-mode 로 따로 들어가지 않아도, 패널 위에서 휠을 올리면 바로 지난 출력을 봅니다. 패널마다 독립적입니다.

  • 마우스 휠로 즉시 스크롤백 진입
  • 스크롤백 텍스트 검색 · 점프
  • 붙여넣기는 bracketed paste 로 한 번에(줄마다 실행 안 됨)
패널 스크롤백 화면
15 · 패널별 스크롤백
Claude Code 통합

토큰을 보고, 자동으로 잇습니다

패널에서 돌리는 Claude Code 의 상태·토큰·한도를 상태줄과 팝업으로 한눈에.

상태 표시 + 토큰 리밋 자동 재개

실행 중인 탭에 상태 아이콘(대기 ○ / 처리중 ◐ / 리밋 멈춤 ⊘)을 표시하고, 비활성 탭 작업이 끝나면 탭 배경색으로 알립니다. 사용량 리밋에 걸려 멈추면 해제 시각을 읽어 그때 자동으로 재개합니다.

  • prefix R 자동 재개 토글(상태줄 AR)
  • 권한모드 footer 클릭 → auto / default / plan 선택
  • claude-rules 로 시작 규칙 자동 주입
Claude 자동 재개 상태줄
12 · 토큰 리밋 자동 재개

토큰 사용량 팝업

상태줄의 토큰 배지를 클릭하면 기간 / 세션 / 한도 / 경고 / /usage / 시나리오 노트북 탭으로 보는 사용량 팝업이 열립니다. 화면 스크랩이 아닌 ~/.claude/*.jsonl 트랜스크립트 회계로 cache_read 까지 정확히 집계합니다.

  • 기간 뷰 — 월 → 주 → 일 → 시각 계층 트리로 시간 흐름을
  • 세션 뷰 — Claude 세션별 합(탭:패널·타임스탬프)
  • 한도 뷰/usage 실측 막대 + 리셋 카운트다운 시계 + 모델/컨텍스트 변경
토큰 사용량 — 기간 뷰 토큰 사용량 — 세션 뷰 토큰 사용량 — 한도 뷰
기간 · 세션 · 한도 탭

실제 Claude 패널에서

진짜 claude CLI 를 패널에서 돌리며 모델 배지, 프롬프트 이력 미리보기·점프, 컨텍스트 하드스톱 자동 복구까지 그대로 동작합니다.

  • 멀티라인 프롬프트 붙여넣기 · 이미지 붙여넣기 패스스루
  • 프롬프트 히스토리 플러그인으로 보낸 프롬프트 점프
  • 피드백 문구 자동 숨김 옵션
  • CJK 모호폭 자동 감지(:set ambiguous-width auto)와 화면 깨짐 자동 완화(claude-auto-redraw)로 글자 겹침 방지
실제 Claude Code 가 실행 중인 패널
22 · 실 Claude 패널
Operations

죽이지 않고 고치고, 멀리까지 잇습니다

실행 중인 셸을 살린 채 코드를 교체하고, ssh 너머의 다른 pytmux 서버에 붙습니다.

작업 보존 서버 재시작

restart-server · restart-all · restart-check(드라이런)로, 열린 패널의 셸 · 실행 중 프로그램 · 스크롤백을 살린 채 코드만 새 이미지로 교체합니다(제자리 re-exec). Windows 는 아웃오브프로세스 pty-host 로 세션을 유지합니다.

재시작 드라이런 화면
21 · restart-check 드라이런

원격 페더레이션 (ssh)

remote-attach 로 ssh 너머 다른 머신의 pytmux 서버에 붙습니다. 원격 탭은 탭바·외곽선을 분홍색으로 구분하고, 원격 서버가 없으면 분리 서버를 자동 기동합니다.

원격 attach 화면
34 · 원격 attach

네트워크 응답성 표시 + 회복

클라↔서버 IPC 지연이 커지면 패널 외곽선을 빨간색으로 표시하고, 고착되면 reconnect(또는 워치독 자동)으로 실행 중 셸 / Claude 를 죽이지 않고 IPC 만 다시 세워 반응성을 회복합니다.

응답성 저하 표시
16 · 응답성 저하 표시
Plugins · delete-to-disable

디렉토리를 지우면 기능이 사라집니다

시계·달력·디렉토리 트리·IME 배지·Claude 통합·토큰 화면이 모두 한 디렉토리로 응집된 플러그인입니다.

3
macOS · Linux · Windows
950+
헤드리스 테스트 통과
1
파이썬 스크립트로 실행
셸 영속 (detach 후 재접속)
Download · GitHub

내려받기

소스는 GitHub 에 공개되어 있습니다. 클론하거나 zip 으로 받아 바로 실행하세요.

git 으로 클론해서 바로 실행 — 아래 명령만 복사하면 됩니다.

git clone https://github.com/neoocean/pytmux.git cd pytmux pip install -r requirements.txt python3 pytmux.py
Get started

설치는 한 줄, 실행도 한 줄

파이썬만 있으면 됩니다. Python 3.11 이상 권장.

① 의존성 설치 (Textual · pyte · wcwidth). Windows 는 pip install pywinpty 도 추가합니다.

pip install -r requirements.txt

② 실행 — 서버가 없으면 자동 기동 후 attach 합니다.

python3 pytmux.py

pytmux 명령으로 등록(선택). 등록하면 어디서든 호출할 수 있습니다. OS 에 맞는 설치 스크립트를 실행하세요.

macOS · Linux

./install.sh

Windows (PowerShell)

.\install.ps1
pytmux pytmux ls pytmux cmd new-tab

pytmux 는 attach(없으면 기동), pytmux ls 는 탭/패널 요약, pytmux cmd new-tab 은 외부에서 서버를 제어합니다.

Contact

만든 사람에게

버그 제보·제안·문의는 GitHub 이슈 또는 메일로 보내 주세요.

이슈/기능 요청은 GitHub Issues 가 가장 빠릅니다.