repos / zmx

session persistence for terminal processes
git clone https://github.com/neurosnap/zmx.git

commit
595690f
parent
fd0874e
author
Eric Bower
date
2026-02-19 20:07:05 -0500 EST
docs: readme
1 files changed,  +15, -0
M README.md
+15, -0
 1@@ -82,6 +82,9 @@ zmx attach mux dvtm         # run a multiplexer inside zmx
 2 zmx run dev cat README.md   # run the command without attaching to the session
 3 zmx r dev cat CHANGELOG.md  # alias
 4 echo "ls -lah" | zmx r dev  # use stdin to run the command
 5+
 6+zmx r tests go test ./...   # run your tests in the background
 7+zmx wait tests              # waits for tests to complete
 8 ```
 9 
10 ## shell prompt
11@@ -182,6 +185,18 @@ if type -q zmx
12 end
13 ```
14 
15+## session prefix
16+
17+We allow users to set an environment variable `ZMX_SESSION_PREFIX` which will prefix the name of the session for all commands. This means if that variable is set, every command that accepts a session will be prefixed with it.
18+
19+```bash
20+export ZMX_SESSION_PREFIX="d."
21+zmx a runner # ZMX_SESSION=d.runner
22+zmx a tests  # ZMX_SESSION=d.tests
23+zmx k tests  # kills d.tests
24+zmx wait     # suspends until all tasks prefixed with "d." are complete
25+```
26+
27 ## philosophy
28 
29 The entire argument for `zmx` instead of something like `tmux` that has windows, panes, splits, etc. is that job should be handled by your os window manager. By using something like `tmux` you now have redundant functionality in your dev stack: a window manager for your os and a window manager for your terminal. Further, in order to use modern terminal features, your terminal emulator **and** `tmux` need to have support for them. This holds back the terminal enthusiast community and feature development.