Skip to content
Opensource internals
  • Posts

Tmux

tmux Parses Escape Sequences Fast: Four Boring Optimisations That Matter

Oct 11, 2026 11 min read Jay Hubbert

tmux’s parser has no clever trick in it. It’s a state machine with a transition cache, a bsearch(), a trie, and a width cache — four small optimisations, each of which swaps an…

TmuxPerformanceInternalsInput

Read more →

tmux Splits the Terminal into Panes: A Tree, Not a Geometry Problem

Oct 6, 2026 9 min read Jay Hubbert

The hard part of tmux’s pane splitting isn’t the geometry — it’s serialisability.

TmuxArchitectureInternalsLayout

Read more →

tmux Sanitises Window Names Against Injection

Oct 2, 2026 8 min read Jay Hubbert

clean_name() is tmux’s one defence against name-based injection, and it works by encoding rather than filtering: it stores names in a form where the dangerous characters…

TmuxSecurityInternalsSanitisation

Read more →

Why tmux Needs Its Own Terminal Emulator

Sep 28, 2026 8 min read Jay Hubbert

ncurses assumes one application owns one terminal. A multiplexer owns N screens and has to render them into one terminal without the terminal knowing.

TmuxArchitectureInternalsTerminal

Read more →

tmux Control Mode Is an Unauthenticated Command Channel

Sep 19, 2026 8 min read Jay Hubbert

tmux -C gives you a scriptable protocol with zero authentication — anything that can open the socket can run run-shell.

TmuxSecurityControl modeInternals

Read more →

← Newer Page 1 of 3 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·