상세 가이드 · 2 / 15

설치

파이썬만 있으면 됩니다. 설치는 한 줄, 실행도 한 줄입니다.

의존성 설치

Python 3.11 이상을 권장합니다. 저장소의 requirements.txt 로 한 번에 설치합니다 (직접 설치는 pip install textual wcwidth, Windows 는 pip install pywinpty 도 추가). 여러 머신 토큰 동기화켤 때만 pip install cryptography 가 하나 더 필요합니다(안 켜면 없어도 그대로 동작합니다).

pip install -r requirements.txt
필요한 구성요소가 빠진 채 실행하면, pytmux 는 알 수 없는 오류 대신 빠진 구성요소 이름과 지금 쓰는 파이썬에 맞춘 설치 명령을 알려 주고 종료합니다.

실행

서버가 없으면 자동으로 기동한 뒤 attach 합니다. 이미 서버가 떠 있으면 바로 붙습니다.

python3 pytmux.py
pytmux 첫 실행 화면 — 평소 쓰던 셸이 전체 화면으로 표시됨
첫 실행 — 평소 쓰던 셸이 그대로 전체 화면으로 뜹니다.

pytmux 명령으로 등록 (선택)

래퍼를 ~/.local/bin 에 설치하면 어디서든 pytmux 로 호출할 수 있습니다. 인자로 다른 디렉터리를, BIN=pt 로 다른 이름(pt)을 지정할 수 있습니다.

macOS · Linux — 설치 / 제거

./install.sh ./install.sh /usr/local/bin BIN=pt ./install.sh ./uninstall.sh

Windows (PowerShell) — 설치 / 제거

.\install.ps1 .\uninstall.ps1

등록 후에는 외부 셸에서 서버를 조작할 수도 있습니다.

pytmux pytmux ls pytmux cmd new-tab

pytmux 는 attach(없으면 기동), pytmux ls 는 탭/패널 요약, pytmux cmd <명령> 은 외부에서 서버에 명령을 보냅니다. 전체 하위 명령은 다음과 같습니다.

하위 명령하는 일
attach실행 중인 서버에 붙습니다(없으면 기동). 인자 없이 pytmux 만 쳐도 같습니다.
ls2 tabs, 3 panes 처럼 현재 상태를 한 줄로 요약합니다. 서버가 없으면 그렇다고 알려 줍니다.
cmd <명령>붙지 않은 채 서버에 명령만 보냅니다 — 스크립트·단축키에서 pytmux cmd new-tab 처럼 씁니다.
start-server서버 데몬만 띄우고 화면은 열지 않습니다. ssh <호스트> pytmux start-server원격 서버를 미리 올려 두고, 실패하면 그 자리에서 이유를 볼 때 씁니다(이미 떠 있으면 아무것도 하지 않습니다). 부팅 스크립트에서도 유용합니다.
kill-server서버와 모든 탭·셸을 종료합니다. 되돌릴 수 없어 확인을 받으며, 파이프·스크립트처럼 물어볼 수 없는 자리에서는 --yes 를 요구합니다.
record / replay명령을 유사 터미널에서 실행하며 원시 출력을 그대로 녹화하고, 녹화 파일을 다시 재생해 화면을 텍스트로 덤프합니다. 화면 깨짐을 재현·신고할 때 쓰는 진단 도구입니다(패널 출력 녹화는 rec 플러그인).
stdio-proxy · server내부용입니다 — 앞은 원격 페더레이션이 ssh 너머로 서버 소켓을 잇는 통로이고, 뒤는 데몬 본체를 전경에서 실행합니다. 직접 칠 일은 없습니다.

어느 서버를 대상으로 할지는 --socket <경로> 로 지정합니다(생략하면 기본 서버). --native 는 pytmux 와 따로 배포되는 러스트 TUI 클라이언트가 설치돼 있을 때 그것을 대신 띄웁니다(이 패키지에는 들어 있지 않습니다 — 기본은 여기 파이썬 클라이언트입니다).

SSH · mosh 접속 시 자동 attach (선택)

원격 로그인하면 곧바로 pytmux 세션으로 들어가도록 ~/.zshrc 등 로그인 셸 설정에 추가합니다. 인터랙티브 SSH/mosh 로그인일 때만 attach 하도록 중첩 방지 가드를 둡니다.

if command -v pytmux >/dev/null && [[ -o interactive ]] && [[ -t 1 ]] \ && [[ -z "$PYTMUX" ]] && [[ -z "$LC_PYTMUX" ]] \ && [[ -n "$SSH_CONNECTION$SSH_TTY" ]]; then pytmux fi
주의: exec pytmux 는 권하지 않습니다. pytmux 가 즉시 종료하면 로그인 셸이 함께 죽고, autossh 등과 만나면 재접속 루프가 됩니다.