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