Skip to content

tmux 호환 ​

tmux 와 비교해 zeropty 가 하는 것과 하지 않는 것이에요.

tmux와 기능 비교 ​

zeropty는 프로그램을 띄워 두고 화면을 읽고 키를 보내는 일에 집중해요. 사람이 터미널을 나눠 쓰는 기능은 대부분 없어요.

기능tmuxzeropty
세션 만들기·끝내기·목록, 키 보내기, 화면 읽기✅✅ 같은 인자
capture-pane 옵션많음-p -e -J -N -S -E -b -q (나머지는 오류)
버퍼load/paste/set/show/save-buffer 등load-buffer, paste-buffer, capture-pane -b
pipe-pane, rename-session, resize-window, set-environment -g✅✅ (pipe-pane -I는 없음)
포맷 변수 #{...}수백 개세션·창·패널·커서·히스토리·프로세스 변수 25개 (조건식, 수식어 없음)
사람이 붙어서 보기 (attach)✅✅ 읽기 전용(-r), Ctrl-b d, 터미널 크기 맞춤
창(window)·창 분할(pane)✅❌ 세션 하나에 프로그램 하나
상태 표시줄, 복사 모드, 단축키 설정, 설정 파일, 훅✅❌
여러 클라이언트가 한 세션에 붙기✅✅ (크기는 마지막에 붙은 터미널을 따라요)
PTY세션마다 1개 (macOS 한도 511~999개)안 씀, 세션 1000개 이상
전체화면 프로그램 (vim 등)✅zeropty-tty <프로그램>으로 띄우면 돼요. vim(편집·저장), less(페이지 넘기기·종료), python REPL(줄 편집·히스토리), claude를 확인했어요. top·ps처럼 권한(setuid, entitlement)이 필요한 시스템 프로그램은 안 돼요
프로그램용 접속제어 모드(-C)JSON 소켓 프로토콜, Node 클라이언트
모든 세션 화면에서 글자 찾기❌ 세션마다 capture-pane✅ grep-panes (1000개 16~32ms)
키 입력의 라인 디시플린 (Enter, C-c 시그널, 줄 편집, 에코, C-d)✅ PTY✅ 엔진이 흉내 내요(같은 키를 tmux와 대조). C-d의 EOF는 입력을 닫아요
화면에 글자가 뜨거나 출력이 멈출 때까지 기다리기❌ capture-pane을 반복해서 확인✅ wait-pane (서버가 출력이 올 때만 확인, 감지 2ms)
라이브러리로 내장❌✅ C ABI, Node 모듈, Rust crate
실행 중인 세션을 다른 프로세스로 옮기기❌✅ pull-sessions, push-sessions
서버 재시작·업그레이드 후에도 세션 유지❌✅ restart-server
플랫폼대부분의 UnixmacOS와 Linux (kqueue 또는 epoll, DYLD 또는 LD_PRELOAD shim)

MIT 또는 Apache-2.0 라이선스로 배포해요.