Commit 94738e5

Eric Bower  ·  2026-06-12 19:49:51 -0400 EDT
parent ce66992
docs: readme
1 files changed,  +4, -7
+4, -7
 1@@ -4,7 +4,7 @@
 2   <br>zmx
 3 </h1>
 4 <p align="center">
 5-  Session persistence for terminal processes.
 6+  Session attach/detach for the terminal.
 7   <br />
 8   <a href="https://zmx.sh">Docs</a>
 9   ยท
10@@ -16,7 +16,7 @@
11 ## features
12 
13 - Persist terminal shell sessions
14-- Ability to attach and detach from a shell session without killing it
15+- Ability to attach and detach from a shell session it being killed
16 - Native terminal scrollback
17 - Multiple clients can connect to the same session
18 - Re-attaching to a session restores previous terminal state and output
19@@ -461,10 +461,6 @@ This is particularly useful when running `zmx` as a system service with a shared
20 
21 We store global logs for cli commands in `{socket_dir}/logs/zmx.log`. We store session-specific logs in `{socket_dir}/logs/{session_name}.log`. Right now they are enabled by default and cannot be disabled. The idea here is to help with initial development until we reach a stable state.
22 
23-## a note on configuration
24-
25-We are evaluating what should be configurable and what should not. Every configuration option is a burden for us maintainers. For example, being able to change the default detach shortcut is difficult in a terminal environment.
26-
27 ## a smol contract
28 
29 - Write programs that solve a well defined problem.
30@@ -478,13 +474,14 @@ We are evaluating what should be configurable and what should not. Every configu
31 - When upgrading versions of `zmx` where we make changes to the underlying IPC communication, it will kill all your sessions because it cannot communicate through the daemon socket properly
32 - Terminal state restoration with nested `zmx` sessions through SSH: host A `zmx` -> SSH -> host B `zmx`
33   - Specifically cursor position gets corrupted
34+  - Essentially this is unspecified and unsupported behavior
35 - When re-attaching and kitty keyboard mode was previously enable, we try to re-send that CSI query to re-enable it
36   - Some programs don't know how to handle that CSI query (e.g. `psql`) so when you type it echos kitty escape sequences erroneously
37 
38 ## impl
39 
40 - The `daemon` and client processes communicate via a unix socket
41-- Both `daemon` and `client` loops leverage `poll()`
42+- Both `daemon` and `client` loops leverage `poll(2)`
43 - Each session creates its own unix socket file
44 - We restore terminal state and output using `libghostty-vt`
45