repos / zmx

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

commit
096ab1d
parent
911f789
author
Eric Bower
date
2026-04-14 09:23:17 -0400 EDT
refactor: doc site
5 files changed,  +37, -80
M README.md
+1, -1
1@@ -1,6 +1,6 @@
2 <h1>
3 <p align="center">
4-  <img src="./docs/logo.png" alt="Logo" width="128">
5+  <img src="./logo.png" alt="Logo" width="128">
6   <br>zmx
7 </h1>
8 <p align="center">
M build.zig
+6, -1
 1@@ -159,9 +159,14 @@ pub fn build(b: *std.Build) void {
 2     // Upload artifacts to pgs
 3     {
 4         const upload_step = b.step("upload", "Upload docs and dist to pgs.sh:/zmx");
 5-        const rsync_docs = b.addSystemCommand(&.{ "rsync", "-rv", "docs/", "pgs.sh:/zmx" });
 6+        const gen_doc = b.addSystemCommand(&.{
 7+            "sh", "-c",
 8+            "cat README.md | pdocs -tmpl index.tmpl -toc | ssh pgs.sh /zmx/index.html"
 9+        });
10+        const rsync_docs = b.addSystemCommand(&.{ "rsync", "-v", "logo.png", "pgs.sh:/zmx/logo.png" });
11         const rsync_dist = b.addSystemCommand(&.{ "rsync", "-rv", "zig-out/dist/", "pgs.sh:/zmx/a" });
12 
13+        upload_step.dependOn(&gen_doc.step);
14         upload_step.dependOn(&rsync_docs.step);
15         upload_step.dependOn(&rsync_dist.step);
16     }
D docs/index.html
+0, -78
 1@@ -1,78 +0,0 @@
 2-<!DOCTYPE html>
 3-<html>
 4-  <head>
 5-    <title>zmx - session persistence for terminal processes</title>
 6-    <meta charset="utf-8">
 7-    <meta name="viewport" content="width=device-width, initial-scale=1">
 8-    <meta name="keywords" content="pico, pico.sh, hacker, labs, services">
 9-    <meta name="description" content="session persistence for terminal processes">
10-    <link rel="stylesheet" href="https://pico.sh/smol.css">
11-  </head>
12-  <body class="container" style="max-width: 35rem;">
13-    <nav style="padding: 1.3rem;">
14-      <div class="flex flex-wrap items-center justify-center gap-2" style="margin-right: 20px;">
15-        <a href="/" class="link-alt">
16-          zmx
17-        </a>
18-        <a href="https://github.com/neurosnap/zmx" class="link-alt">
19-          src
20-        </a>
21-        <a href="https://bower.sh/?tag=zmx" class="link-alt">
22-          blog
23-        </a>
24-        <a href="https://web.libera.chat/gamja?autojoin=#pico.sh" class="link-alt">
25-          irc
26-        </a>
27-      </div>
28-    </nav>
29-
30-    <div class="text-center my-4">
31-      <img src="/logo.png" alt="zmx logo" style="height: 100px" class="mb-2" />
32-      <h1 class="text-2xl">zmx</h1>
33-      <div>session persistence for terminal processes</div>
34-    </div>
35-
36-    <h2 class="text-lg">features</h2>
37-    <ul>
38-      <li>Persist terminal shell sessions</li>
39-      <li>Ability to attach and detach from a shell session without killing it</li>
40-      <li>Native terminal scrollback</li>
41-      <li>Multiple clients can connect to the same session</li>
42-      <li>Re-attaching to a session restores previous terminal state and output</li>
43-      <li>Send commands to a session without attaching to it</li>
44-      <li>Print scrollback history of a terminal session in plain text</li>
45-      <li>Works on mac and linux</li>
46-      <li>This project does <strong>NOT</strong> provide windows, tabs, or splits</li>
47-    </ul>
48-
49-    <h2 class="text-lg">install</h2>
50-
51-    <h3 class="text-md">binaries</h3>
52-    <ul>
53-      <li><a href="/a/zmx-0.4.2-linux-aarch64.tar.gz" download>zmx-0.4.2-linux-aarch64.tar.gz</a></li>
54-      <li><a href="/a/zmx-0.4.2-linux-x86_64.tar.gz" download>zmx-0.4.2-linux-x86_64.tar.gz</a></li>
55-      <li><a href="/a/zmx-0.4.2-macos-aarch64.tar.gz" download>zmx-0.4.2-macos-aarch64.tar.gz</a></li>
56-      <li><a href="/a/zmx-0.4.2-macos-x86_64.tar.gz" download>zmx-0.4.2-macos-x86_64.tar.gz</a></li>
57-    </ul>
58-
59-    <h3 class="text-md">homebrew</h3>
60-    <pre>brew tap neurosnap/tap
61-brew install zmx</pre>
62-
63-    <h3 class="text-md">packages (unofficial)</h3>
64-    <ul>
65-      <li><a href="https://pkgs.alpinelinux.org/package/edge/testing/x86_64/zmx">Alpine Linux</a></li>
66-      <li><a href="https://aur.archlinux.org/packages/zmx">Arch AUR tracking releases</a></li>
67-      <li><a href="https://aur.archlinux.org/packages/zmx-git">Arch AUR tracking git</a></li>
68-      <li><a href="https://software.opensuse.org/package/zmx">openSUSE Tumbleweed</a></li>
69-      <li><a href="https://codeberg.org/samuelhautamaki/samuelhautamaki-gentoo">Gentoo (overlay)</a></li>
70-      <li><a href="https://github.com/engie/zmx-rpm/">zmx-rpm packaging</a></li>
71-    </ul>
72-
73-    <h2 class="text-lg">posts</h2>
74-    <ul>
75-      <li><a href="https://bower.sh/zmx-session-persistence">zmx - session persistence for terminal processes</a></li>
76-      <li><a href="https://bower.sh/you-might-not-need-tmux">You might not need tmux</a></li>
77-    </ul>
78-  </body>
79-</html>
D docs/logo.png
+0, -0
A index.tmpl
+30, -0
 1@@ -0,0 +1,30 @@
 2+{{define "base"}}
 3+<!doctype html>
 4+<html lang="en">
 5+  <head>
 6+    <title>zmx - session persistence for terminal sessions</title>
 7+    <meta charset='utf-8'>
 8+    <meta name="viewport" content="width=device-width, initial-scale=1">
 9+    <meta name="keywords" content="zmx, session persistence, terminal, tool, linux">
10+
11+    <link rel="stylesheet" href="https://pico.sh/syntax.css">
12+    <link rel="stylesheet" href="https://pico.sh/smol.css">
13+    <link rel="stylesheet" href="https://pico.sh/main.css">
14+  </head>
15+
16+  <body>
17+    <div class="debug-grid"></div>
18+    <div class="post-group" style="flex-direction: row;">
19+      <article class="md toc" style="height: 98vh; padding-top: 40px;">
20+        {{.Data.TocHtml}}
21+      </article>
22+
23+      <main class="post" style="height: 98vh;">
24+        <article class="md">
25+          {{.Data.Html}}
26+        </article>
27+      </main>
28+    </div>
29+  </body>
30+</html>
31+{{end}}