<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tmux on Njumaen</title>
    <link>https://njumaen.de/tags/tmux/</link>
    <description>Recent content in Tmux on Njumaen</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Tue, 29 Sep 2026 00:00:00 +0200</lastBuildDate><atom:link href="https://njumaen.de/tags/tmux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CuteTmux: tmux, without learning tmux</title>
      <link>https://njumaen.de/posts/projects/cutetmux/</link>
      <pubDate>Tue, 29 Sep 2026 00:00:00 +0200</pubDate>
      
      <guid>https://njumaen.de/posts/projects/cutetmux/</guid>
      <description>&lt;p&gt;Most terminal apps make you choose: either you get a nice-looking, native experience for your local
shell, or you get tmux — powerful, persistent, but bolted onto a terminal that was never designed for
it, complete with its own prefix key, its own status bar, and its own copy mode you have to relearn.&lt;/p&gt;
&lt;p&gt;CuteTmux is a native Mac app that gets rid of that trade-off. It talks to tmux on your servers in
&lt;em&gt;control mode&lt;/em&gt; — a mode where tmux stops drawing anything itself and instead just reports what&amp;rsquo;s
happening (a new pane, a resized window, a line of output) over a plain text protocol. CuteTmux takes
that feed and renders it as ordinary tabs and splits, using the same shortcuts, the same mouse
selection, and the same scrollback you already know from any other terminal. You never see tmux&amp;rsquo;s
prefix key. You never type a tmux command. You just get a session that keeps running on the server
after you close the window, lose the network, or put the laptop to sleep — and picks up exactly where
you left off next time.&lt;/p&gt;
&lt;h2 id=&#34;download&#34;&gt;Download&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://njumaen.de/CuteTmux-mac.zip&#34;&gt;CuteTmux for Apple silicon (M1 and later)&lt;/a&gt;&lt;/strong&gt; — 3,0 MB, 2026-10-23
&lt;small&gt;MD5: &lt;code&gt;17e565e93b0b11fb67a759648a80392b&lt;/code&gt;&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://njumaen.de/CuteTmux-mac-intel.zip&#34;&gt;CuteTmux for Intel Macs&lt;/a&gt;&lt;/strong&gt; — 3,2 MB, 2026-10-23
&lt;small&gt;MD5: &lt;code&gt;ac4e13bd38402d0fad9c8d86fb6d8d0a&lt;/code&gt;&lt;/small&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both builds are signed with a Developer ID Application certificate and notarized by Apple.&lt;/p&gt;
&lt;img src=&#34;https://njumaen.de/cutetmux.png&#34; alt=&#34;CuteTmux window&#34; width=&#34;75%&#34;&gt;
&lt;h2 id=&#34;what-it-actually-does&#34;&gt;What it actually does&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Local shell, SSH, and tmux in one app.&lt;/strong&gt; Open a plain local terminal, ssh into a server, or connect
to a server&amp;rsquo;s tmux session — they all look and behave the same way.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tmux windows become tabs, tmux panes become splits.&lt;/strong&gt; Create a new tmux window with the same
shortcut you&amp;rsquo;d use for a new local tab. Split a pane the same way you&amp;rsquo;d split a local one. Behind the
scenes, CuteTmux is sending real tmux control-mode commands; on screen, it&amp;rsquo;s just a tab bar and a
drag-to-resize divider.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sessions never die with the window.&lt;/strong&gt; Because the actual session lives on the server, closing a
CuteTmux window just disconnects the client — the session, its windows, and everything running inside
them keep going. Reconnect later and it&amp;rsquo;s all still there.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A real terminal engine.&lt;/strong&gt; Full-screen programs — &lt;code&gt;vim&lt;/code&gt;, &lt;code&gt;btop&lt;/code&gt;, &lt;code&gt;less&lt;/code&gt;, anything that repaints the
screen — work correctly, with 256-color and truecolor support, because CuteTmux ships its own VT
engine rather than a stripped-down text preview.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A server list, not a list of connection strings.&lt;/strong&gt; Press ⌘S to see your servers, each with its own
accent color so you always know which one you&amp;rsquo;re looking at. Servers from your &lt;code&gt;~/.ssh/config&lt;/code&gt; show up
automatically, read-only; CuteTmux never modifies your ssh configuration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It also notices when you start tmux yourself.&lt;/strong&gt; Type &lt;code&gt;tmux&lt;/code&gt; by hand in a plain local shell tab, and
CuteTmux offers to upgrade that window to the same tabs/panes/sessions integration a server gets — no
need to have connected &amp;ldquo;the CuteTmux way&amp;rdquo; from the start. A pinned entry in the server list does the
same on demand: attach to whatever local tmux session is already running, or start one if none is.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Finder integration.&lt;/strong&gt; Right-click a folder → Services → &lt;em&gt;New CuteTmux at Folder&lt;/em&gt; opens a window
there directly, the same way Terminal.app&amp;rsquo;s own folder service works — and &lt;em&gt;New CuteTmux Tab at
Folder&lt;/em&gt; adds a tab to the window you already have open instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;the-look&#34;&gt;The look&lt;/h2&gt;
&lt;p&gt;CuteTmux is a borderless glass window with a soft neon rim in one of eight accent colors — pick a
different color per window so a glance tells you which server (or which local project) you&amp;rsquo;re looking
at, even across a dozen open windows. The rim color, the window&amp;rsquo;s background tint, and its transparency
are all yours to set per window, right-click on the color pill.&lt;/p&gt;
&lt;h2 id=&#34;why-control-mode-specifically&#34;&gt;Why control mode, specifically&lt;/h2&gt;
&lt;p&gt;Plenty of terminal apps let you run &lt;code&gt;tmux&lt;/code&gt; inside them — that&amp;rsquo;s not new. What&amp;rsquo;s different here is that
CuteTmux never shows you tmux&amp;rsquo;s own interface at all. Control mode (&lt;code&gt;tmux -CC&lt;/code&gt;, the same mechanism
iTerm2 uses) turns tmux into a small server and CuteTmux into its client: tmux reports state changes as
they happen, CuteTmux answers with normal window/pane commands. The result is one interface, one set of
muscle memory, and a tmux session doing what tmux is actually good at — surviving disconnects — without
asking you to learn tmux to get there.&lt;/p&gt;
&lt;h2 id=&#34;one-build-for-apple-silicon-one-for-intel&#34;&gt;One build for Apple silicon, one for Intel&lt;/h2&gt;
&lt;p&gt;CuteTmux comes in two native builds: one for &lt;strong&gt;Apple silicon&lt;/strong&gt; Macs (M1 and later) and one for
&lt;strong&gt;Intel&lt;/strong&gt; Macs. Each is compiled for exactly one processor architecture rather than shipped as a
combined &amp;ldquo;universal&amp;rdquo; app, so both run natively — no Rosetta translation layer involved, which matters
because Apple is removing Rosetta in macOS 28. Pick the download that matches your Mac; both builds
are identical in features and version, and both are signed and notarized in the same way.&lt;/p&gt;
&lt;h2 id=&#34;written-in-swift-nothing-borrowed&#34;&gt;Written in Swift, nothing borrowed&lt;/h2&gt;
&lt;p&gt;CuteTmux is written entirely in Swift and AppKit — no Electron, no cross-platform UI framework standing
in for what macOS already provides.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
