Skip to content

v0.1.5 · macOS · Rust · tmux 호환 명령 · C ABI · Node

에이전트 1000개를
PTY 없이.

zeropty는 AI 에이전트를 위한 세션 엔진이에요. 화면을 읽고, 키를 보내고, 끝날 때까지 기다려요. tmux 명령 그대로, CPU와 메모리는 훨씬 적게 써요.

구조

에이전트

claude
codex
sh / zsh / bash
어떤 프로그램이든
실행
zeropty서버 하나 · 세션마다 socketpair · PTY 없음
조작

호스트

CLItmux 명령
소켓어떤 언어든
임베디드C ABI · Node

세션이 터미널을 얻는 방법 →

실제 화면

세션을 띄우고, 답을 기다리고, 화면을 읽어요

터미널 데모: zeropty 로 세션을 띄워 키를 보내고, wait-pane 이 1.01초 뒤 done: 42 를 잡고, capture-pane 으로 화면을 읽어요
wait-pane 은 폴링 없이 done: 42 가 뜨는 순간 돌아와요
14.1~15.6배tmux보다 적은 CPU, claude 작업 400개
12.0~12.2배tmux보다 적은 메모리, claude 작업 400개
128~159배Node에서 더 빠른 send-keys, 임베디드
1000세션 검증, PTY 한도 없음

같은 Apple M1에서 tmux 3.7c와 번갈아 잰 값이에요. 모든 수치와 측정 방법 →

규모

세션 수천 개

PTY를 안 쓰니 PTY 한도가 없어요. tmux는 511개(최대 999개)에서 멈추지만, zeropty는 실제 claude 작업을 재생하는 세션 1000개를 4.65MB로 돌려요.

속도

명령 하나가 함수 호출 하나

send-keys가 임베디드에서 0.06~0.07ms, 소켓으로 0.24~0.26ms예요. 명령마다 tmux를 실행하면 9.03~9.56ms가 걸려요.

기다리기

wait-pane

글자가 화면에 뜨는 순간 돌아와요. p50 1ms, 폴링 없음. capture-pane을 반복하며 86~96ms 늦게 알아챌 일이 없어요.

찾기

grep-panes

세션 1000개 중 입력을 기다리는 세션을 16~32ms에 찾아요. 화면을 하나하나 캡처하지 않아요.

업그레이드

restart-server

돌고 있는 세션을 그대로 넘겨받으며 서버를 바꿔요. tmux는 서버를 다시 띄우면 세션이 끝나요.

임베딩

내 프로그램 안에서

C ABI를 링크하거나 Node 모듈을 불러서, 서버 프로세스도 소켓도 없이 세션을 다뤄요.

지원 환경

macOS 11 이상Apple silicon · IntelCLI · 소켓C ABI · Rust · Node.jsLinux · Windows미지원
설치와 지원 환경 →

1분 시작

$ git clone https://github.com/CreatiCoding/zeropty && cd zeropty && ./build.sh
$ export PATH="$PWD/dist:$PATH"
$ zeropty new-session -d -s demo -x 80 -y 6 sh
$ {
  "zeropty send-keys -t demo -l 'echo \"done": "$((6 * 7))\"'"
}
$ zeropty send-keys -t demo Enter
$ {
  "zeropty wait-pane -t demo -m 'done": "42' -T 10000"
}
$ zeropty capture-pane -p -t demo
가이드 읽기

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