# zeropty - [Introduction](https://zeropty.pubdoc.dev/guide/introduction): zeropty is a session engine for AI agents that takes tmux commands and runs sessions without a PTY. - [소개](https://zeropty.pubdoc.dev/ko/guide/introduction): zeropty는 tmux 명령을 받아 PTY 없이 세션을 돌리는 AI 에이전트용 세션 엔진이에요. - [Get started](https://zeropty.pubdoc.dev/guide/getting-started): Install zeropty, start a session, send keys, wait for output with wait-pane and read the screen. - [시작하기](https://zeropty.pubdoc.dev/ko/guide/getting-started): zeropty를 설치하고, 세션을 띄우고, 키를 보내고, wait-pane으로 출력을 기다린 뒤 화면을 읽어요. - [Install and platform support](https://zeropty.pubdoc.dev/guide/install): Which Macs zeropty runs on, the three ways to install it, and what each installed file is for. - [설치와 지원 플랫폼](https://zeropty.pubdoc.dev/ko/guide/install): zeropty가 돌아가는 맥, 설치하는 세 가지 방법, 설치되는 파일마다의 용도를 정리했어요. - [Four ways to drive zeropty](https://zeropty.pubdoc.dev/guide/concepts/interfaces): The four ways to send commands to zeropty (CLI, socket, embedded engine, plugins), with measured latency and when to choose each. - [Screens, keys and waiting](https://zeropty.pubdoc.dev/guide/concepts/screens): How zeropty turns output into screens, reads them with capture-pane, sends keys, and waits for output without polling. - [Sessions and the server](https://zeropty.pubdoc.dev/guide/concepts/sessions): What a zeropty session is, how the server and its socket own sessions, and how targets name them. - [How a session gets a terminal](https://zeropty.pubdoc.dev/guide/concepts/terminal): Why zeropty sessions have no PTY, how the shim and zeropty-tty make a socket look like a terminal, and how the engine handles keys. - [zeropty를 다루는 네 가지 방법](https://zeropty.pubdoc.dev/ko/guide/concepts/interfaces): zeropty에 명령을 보내는 네 가지 방법(CLI, 소켓, 임베디드 엔진, 플러그인)을 잰 응답 속도와 함께 비교하고, 언제 무엇을 고를지 정리했어요. - [화면, 키, 기다리기](https://zeropty.pubdoc.dev/ko/guide/concepts/screens): zeropty가 출력을 화면으로 바꾸고, capture-pane으로 읽고, 키를 보내고, 폴링 없이 출력을 기다리는 방법을 설명해요. - [세션과 서버](https://zeropty.pubdoc.dev/ko/guide/concepts/sessions): zeropty 세션이 무엇인지, 서버와 소켓이 세션을 어떻게 가지는지, 타깃이 세션을 어떻게 가리키는지 설명해요. - [세션이 터미널을 얻는 방법](https://zeropty.pubdoc.dev/ko/guide/concepts/terminal): zeropty 세션에 PTY가 없는 이유, shim과 zeropty-tty가 소켓을 터미널처럼 보이게 하는 방법, 엔진이 키를 다루는 방법을 설명해요. - [Benchmarks](https://zeropty.pubdoc.dev/guide/benchmarks): "Every measurement is here. Items that fall short of 10x (⛔), the reasons why, and things we tried and did not ship are all recorded as they are. The README lists only the items whose whole range is…" - [Changelog](https://zeropty.pubdoc.dev/guide/changelog): "Every user-visible change, release by release. The format follows Keep a Changelog and versions follow Semantic Versioning; what counts as a breaking change is in Versioning. Release files are on…" - [Contributing](https://zeropty.pubdoc.dev/guide/contributing): "Thank you for your interest in zeropty. Bug reports, documentation fixes, shared measurements and code contributions are all welcome." - [Design: how we got to 10x](https://zeropty.pubdoc.dev/guide/design): "In one line: we exploit the fact that most of 1000 sessions are quiet. Quiet screens are folded away so they use almost no memory, and busy screens batch their work so there is less of it. The…" - [Embed zeropty in C or Rust](https://zeropty.pubdoc.dev/guide/embed): Put the zeropty engine inside a C or Rust program, with its own engine thread or driven from your event loop, and optionally open a socket for the CLI. - [Frequently asked questions](https://zeropty.pubdoc.dev/guide/faq): "What it is - Does it replace tmux? - Can I use it without claude? - Does it run on Linux or Windows? - Why does the README list only results of 10x or more?" - [Coming from tmux](https://zeropty.pubdoc.dev/guide/from-tmux): Switch a tmux script to zeropty, learn which commands map one to one, what does not exist, and the differences that break scripts. - [Move sessions and upgrade the server](https://zeropty.pubdoc.dev/guide/moving): Upgrade the zeropty server without stopping your agents, and move running sessions between servers and embedded engines. - [Use zeropty from Node.js](https://zeropty.pubdoc.dev/guide/node): Drive zeropty sessions from Node.js over the server socket, or with the engine embedded in your Node process. - [Plugin internals](https://zeropty.pubdoc.dev/guide/plugins-internals): "This page is for people who change zeropty itself or write their own host loop. How to write plugins and the rules they follow are in Plugin API." - [Write a plugin](https://zeropty.pubdoc.dev/guide/plugins): Build a zeropty plugin library in C, attach it to the server, start it with every server, and call its command from the CLI or an embedding host. - [Releasing](https://zeropty.pubdoc.dev/guide/releasing): "How a change goes from a commit, through the CHANGELOG, to a release. What counts as a breaking change is in Versioning, and the commit format is in Contributing." - [Drive agents from the shell](https://zeropty.pubdoc.dev/guide/shell): Start agents from a shell script, send them keys, wait for them with wait-pane, read their screens and search many sessions at once. - [Run claude and other terminal programs](https://zeropty.pubdoc.dev/guide/terminal-programs): Run claude, vim, the python REPL and interactive shells in zeropty sessions with zeropty-tty and claude-zeropty. - [Versioning](https://zeropty.pubdoc.dev/guide/versioning): "zeropty follows Semantic Versioning 2.0.0. This document defines what the public interface is, and which changes break compatibility. The change history is in Changelog, and the release procedure…" - [벤치마크](https://zeropty.pubdoc.dev/ko/guide/benchmarks): "모든 측정값이에요. 10배에 못 미친 항목(⛔)과 그 이유, 시도했다가 넣지 않은 것까지 그대로 적어요. README에는 이 중 한 가지 규칙으로 범위 전체가 10배 이상인 항목만 올려요." - [Changelog](https://zeropty.pubdoc.dev/ko/guide/changelog): "사용자에게 보이는 변경을 판마다 적어요. 형식은 Keep a Changelog, 판 번호는 유의적 버전을 따르고, 무엇이 깨는 변경인지는 버전 정책에 있어요. 릴리스 파일은 GitHub Releases에 있어요." - [기여 안내](https://zeropty.pubdoc.dev/ko/guide/contributing): "zeropty에 관심 가져 주셔서 고마워요. 버그 제보, 문서 고치기, 측정 결과 공유, 코드 기여 모두 환영해요." - [설계: 어떻게 10배를 만들었나](https://zeropty.pubdoc.dev/ko/guide/design): "한 줄 요약: 1000개 중 대부분은 조용하다는 점을 이용했어요. 조용한 화면은 거의 메모리를 안 쓰게 접어 두고, 바쁜 화면은 일을 묶어서 적게 해요. 아래 수치는 각 기법을 넣고 뺄 때 잰 값이고, 코드 주석에도 같은 근거를 남겨 두었어요." - [C와 Rust에 zeropty 내장하기](https://zeropty.pubdoc.dev/ko/guide/embed): C나 Rust 프로그램에 zeropty 엔진을 넣어요. 엔진 스레드를 두거나 내 이벤트 루프로 돌리고, 필요하면 CLI용 소켓도 열어요. - [자주 묻는 질문](https://zeropty.pubdoc.dev/ko/guide/faq): "무엇인가요 - tmux를 대신하나요? - claude가 없어도 쓸 수 있나요? - Linux나 Windows에서도 되나요? - 왜 README에는 10배 이상인 항목만 있나요?" - [tmux에서 넘어오기](https://zeropty.pubdoc.dev/ko/guide/from-tmux): tmux 스크립트를 zeropty로 바꿔요. 일대일로 대응하는 명령, 없는 기능, 스크립트를 깨뜨리는 차이를 알아봐요. - [세션 옮기기와 서버 업그레이드](https://zeropty.pubdoc.dev/ko/guide/moving): 에이전트를 멈추지 않고 zeropty 서버를 업그레이드하고, 실행 중인 세션을 서버와 임베디드 엔진 사이에서 옮겨요. - [Node.js에서 zeropty 쓰기](https://zeropty.pubdoc.dev/ko/guide/node): 서버 소켓으로, 또는 Node 프로세스에 엔진을 내장해서 Node.js에서 zeropty 세션을 다뤄요. - [플러그인 내부](https://zeropty.pubdoc.dev/ko/guide/plugins-internals): "zeropty를 고치거나 호스트 루프를 직접 짜는 사람을 위한 내용이에요. 플러그인을 쓰는 방법과 규칙은 플러그인 API에 있어요." - [플러그인 작성하기](https://zeropty.pubdoc.dev/ko/guide/plugins): C로 zeropty 플러그인 라이브러리를 만들어 서버에 붙이고, 서버를 띄울 때마다 같이 시작하게 하고, CLI나 임베딩 호스트에서 그 명령을 불러요. - [릴리스](https://zeropty.pubdoc.dev/ko/guide/releasing): "변경이 커밋에서 CHANGELOG를 거쳐 릴리스가 되기까지의 과정이에요. 무엇이 깨는 변경인지는 버전 정책, 커밋 형식은 기여 안내에 있어요." - [셸에서 에이전트 다루기](https://zeropty.pubdoc.dev/ko/guide/shell): 셸 스크립트로 에이전트를 시작하고, 키를 보내고, wait-pane으로 기다리고, 화면을 읽고, 여러 세션을 한꺼번에 찾아요. - [claude와 다른 터미널 프로그램 실행하기](https://zeropty.pubdoc.dev/ko/guide/terminal-programs): zeropty-tty와 claude-zeropty로 claude, vim, python REPL, 대화형 셸을 zeropty 세션에서 실행해요. - [버전 정책](https://zeropty.pubdoc.dev/ko/guide/versioning): "zeropty는 Semantic Versioning 2.0.0을 따라요. 이 문서는 무엇이 공개 인터페이스이고, 어떤 변경이 호환을 깨는지를 정해요. 변경 내역은 Changelog, 릴리스 절차는 릴리스에 있어요." - [C ABI](https://zeropty.pubdoc.dev/ko/reference/c-abi): zeropty C ABI(libzeropty_c.dylib와 zeropty.h)의 모든 함수, 타입, 매크로를 인자, 반환값, 누가 무엇을 해제하는지와 함께 정리해요. - [명령](https://zeropty.pubdoc.dev/ko/reference/commands): "zeropty CLI 의 모든 명령과 옵션이에요. 같은 명령이 소켓과 임베딩 API 에서도 그대로 돼요." - [환경변수](https://zeropty.pubdoc.dev/ko/reference/environment): "zeropty 가 읽는 모든 환경변수예요." - [레퍼런스](https://zeropty.pubdoc.dev/ko/reference/): zeropty 레퍼런스를 영역별로 모았어요. 명령, 키와 포맷, 환경변수, tmux 호환, 소켓 프로토콜, C ABI, Node.js API, 플러그인 API. - [키, 포맷, 종료 코드](https://zeropty.pubdoc.dev/ko/reference/keys-and-formats): "send-keys 의 키 이름, -F 의 포맷 변수, 모든 명령의 종료 코드예요." - [Node.js API](https://zeropty.pubdoc.dev/ko/reference/node-api): zeropty Node.js 모듈(client/zeropty.mjs, client/embedded.mjs, 네이티브 zeropty.node)이 내보내는 모든 것을 인자와 결과와 함께 정리해요. - [플러그인 API](https://zeropty.pubdoc.dev/ko/reference/plugin-api): "권한, 플러그인용 소켓 프로토콜, 이벤트, 명령, zeropty::plugin 의 Rust API 예요." - [Rust API](https://zeropty.pubdoc.dev/ko/reference/rust-api): "Rust 크레이트예요. 내 프로세스 안의 엔진, 서버 플러그인으로 쓰는 법, Rust 로 쓴 플러그인이 있어요. 생성된 rustdoc 은 아래처럼 cargo doc 으로 봐요." - [소켓 프로토콜](https://zeropty.pubdoc.dev/ko/reference/socket-protocol): "서버 소켓의 JSON 프로토콜이에요. 서버 사이에 세션을 옮기는 부분도 있어요." - [tmux 호환](https://zeropty.pubdoc.dev/ko/reference/tmux-compatibility): "tmux 와 비교해 zeropty 가 하는 것과 하지 않는 것이에요." - [C ABI](https://zeropty.pubdoc.dev/reference/c-abi): Every function, type and macro of zeropty's C ABI (libzeropty_c.dylib and zeropty.h), with arguments, return values and who frees what. - [Commands](https://zeropty.pubdoc.dev/reference/commands): "Every command and option of the zeropty CLI. The same commands work over the socket and through the embedding APIs." - [Environment variables](https://zeropty.pubdoc.dev/reference/environment): "Every environment variable zeropty reads." - [Reference](https://zeropty.pubdoc.dev/reference/): "The zeropty reference, by area: commands, keys and formats, environment variables, tmux compatibility, the socket protocol, the C ABI, the Node.js API and the plugin API." - [Keys, formats and exit codes](https://zeropty.pubdoc.dev/reference/keys-and-formats): "Key names for send-keys, format variables for -F, and the exit codes of every command." - [Node.js API](https://zeropty.pubdoc.dev/reference/node-api): Every export of zeropty's Node.js modules (client/zeropty.mjs, client/embedded.mjs and the native zeropty.node), with arguments and results. - [Plugin API](https://zeropty.pubdoc.dev/reference/plugin-api): "Access rules, the socket protocol for plugins, events, commands and the Rust API of zeropty::plugin." - [Rust API](https://zeropty.pubdoc.dev/reference/rust-api): "The Rust crate: the engine inside your process, the server-plugin variant, and plugins written in Rust. For the generated rustdoc, run cargo doc as below." - [Socket protocol](https://zeropty.pubdoc.dev/reference/socket-protocol): "The JSON protocol on the server socket, including moving sessions between servers." - [tmux compatibility](https://zeropty.pubdoc.dev/reference/tmux-compatibility): "What zeropty does and does not do compared with tmux."