Skip to content

설치와 지원 플랫폼 ​

이 페이지는 zeropty가 지원하는 플랫폼을 적고, 설치 방법을 비교하고, 받는 파일마다 무엇인지 설명해요. 모든 명령을 따라 하는 첫 설치는 시작하기를 보세요.

지원 플랫폼 ​

플랫폼지원
macOS 11 이상, Apple silicon지원해요. 릴리스 바이너리가 macOS 11 이상에서 로드돼요
macOS 11 이상, Intel릴리스 묶음으로 지원해요(zeropty와 shim.dylib에 x86_64 슬라이스가 있어요)
확인한 버전macOS 15, macOS 26
Linux지원하지 않아요
Windows지원하지 않아요

zeropty는 지금은 macOS만 지원해요. 엔진이 kqueue 위에 있고, 터미널이 필요한 프로그램을 속이는 shim이 macOS의 DYLD_INSERT_LIBRARIES를 써요. 다른 플랫폼은 이 두 부분을 각자의 방식(epoll, LD_PRELOAD)으로 옮겨야 해요.

소스에서 빌드하려면 최소 지원 Rust 버전(MSRV)인 Rust 1.88 이상이 필요해요. 자세한 내용은 버전 정책을 보세요.

설치 방법 ​

방법필요한 것받는 것빠지는 것
릴리스 묶음curl, shasumzeropty, shim.dylib, zeropty-tty, claude-zeroptyC·Node 임베딩 라이브러리, bash builtin
소스에서 ./build.shRust stable, Xcode Command Line Tools전부, dist/에없어요
cargo install --gitRustzeropty만, ~/.cargo/bin에shim, zeropty-tty, claude-zeropty, 임베딩 라이브러리, bash builtin
  • 릴리스 묶음. 0.1.3부터 릴리스마다 zeropty-VERSION-darwin-universal.tar.gz와 그 SHA256SUMS가 붙어 있어요. VERSION은 0.1.5 같은 릴리스 번호로 바꾸세요. 풀기 전에 shasum -a 256 -c SHA256SUMS로 묶음을 확인하세요. 스크립트에서 버전을 고정하려면 버전과, 그 릴리스 SHA256SUMS에 있는 묶음 해시를 고정해 두세요.
  • ./build.sh. 저장소를 clone하고 ./build.sh를 실행해요. 워크스페이스를 release 모드로 빌드하고 결과를 dist/에 복사해요. 계속 쓰려면 dist/를 PATH에 넣어 두세요.
  • cargo install. CLI와 서버만 필요하면 한 줄이에요.
sh
cargo install --git https://github.com/CreatiCoding/zeropty   # ~/.cargo/bin/zeropty

sh, python3, 빌드 명령처럼 터미널이 없어도 되는 프로그램을 돌리기에는 이걸로 충분해요. cargo install은 패키지의 실행 파일만 설치해서, ./build.sh가 따로 빌드하는 파일은 빠져요. 자세한 내용은 FAQ를 보세요.

Homebrew tap은 없고, crate는 crates.io에 올라가 있지 않아요. Rust 프로그램은 git 의존성으로 엔진을 쓸 수 있어요. 자세한 내용은 C와 Rust에 zeropty 내장하기를 보세요.

Gatekeeper

릴리스 파일은 ad-hoc 서명이고 공증은 받지 않았어요. 브라우저로 받으면 quarantine 표시가 붙고, macOS가 zeropty를 막아요. xattr -dr com.apple.quarantine FOLDER로 지우세요. FOLDER는 푼 폴더로 바꾸세요. curl은 표시를 붙이지 않아요.

파일마다의 용도 ​

파일묶음에dist/에용도
zeropty있어요 (arm64, x86_64)있어요서버와 CLI
shim.dylib있어요 (arm64, arm64e, x86_64)있어요 (arm64, arm64e)세션의 소켓을 프로그램에게 터미널처럼 보이게 해요
zeropty-tty있어요있어요shim을 넣어 프로그램을 띄워요(vim, less, claude)
claude-zeropty있어요있어요zeropty-tty claude를 실행해요
libzeropty_c.dylib, zeropty.h없어요있어요C ABI(애플리케이션 바이너리 인터페이스)로 엔진 넣기
zeropty.node없어요있어요Node.js에 엔진 넣기, client/embedded.mjs가 불러요
zeropty_bash.dylib없어요있어요bash builtin: enable -f dist/zeropty_bash.dylib zeropty
LICENSE-MIT, LICENSE-APACHE있어요없어요라이선스

이 파일들은 한곳에 두세요. zeropty-tty는 자기 옆의 shim.dylib를 찾고, claude-zeropty도 같은 방식으로 zeropty-tty를 찾아요. zeropty-tty나 claude-zeropty만 다른 곳에 심볼릭 링크하지 말고 폴더를 PATH에 넣거나, ZEROPTY_SHIM으로 shim을 가리켜 주세요.

zsh 함수 shell/zeropty.zsh는 dist/가 아니라 저장소에 있어요. source shell/zeropty.zsh로 불러요.

zeropty가 만드는 파일 ​

경로무엇
~/.zeropty/mux.sock서버 소켓(ZEROPTY_SOCK으로 바꿔요)
~/.zeropty/tty/zeropty-tty가 실행하는 프로그램(/usr/bin에 있는 것 등)의 서명을 바꾼 사본(상위 폴더는 ZEROPTY_CACHE로 바꿔요)

끄기와 지우기 ​

  1. 서버와 그 안의 모든 세션을 꺼요.

    sh
    zeropty kill-server

    서버는 모든 세션의 프로세스 그룹에 SIGHUP을 보내고 끝나요. 다른 소켓의 서버라면 ZEROPTY_SOCK도 함께 주세요.

  2. 풀었거나 clone한 폴더를 지우고, ~/.zshrc에 넣은 PATH 줄도 지워요.

  3. cargo install로 설치했다면 cargo uninstall zeropty를 실행해요.

  4. ~/.zeropty를 지워서 소켓 파일과 zeropty-tty가 만든 사본을 없애요.

다음 단계 ​

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