TMUX · AGENT CHATS
NOTES — ED. 2026.08
A Window is a wall between chats,
not an isolation barrier against file conflicts.
Based on official documentation as of 2026-08-20: both Claude Code and Codex can run multiple conversations. Distinguish the reasons for using tmux Windows from shared-workspace conflicts that Windows alone cannot resolve.
FIG. 01MANY CHATS, MANY PROCESSES — ONE FILESYSTEM
CLAUDE CODE · CODEXBOTH SUPPORT MULTIPLE CHATS
The answer — both support multiple conversations
MULTIPLE CHATS · 2026Both Claude Code and Codex let you create multiple separate conversations, reopen saved ones and branch them. Running one CLI process in each tmux Window lets you run conversations side by side and switch by name. The central distinction is not that only one tool supports multiple chats.
There are three layers to distinguish. A tmux Window separates terminal displays and processes. Each tool’s session or chat separates conversation history and context. A Git branch or separate working directory separates file changes. Separating the first two layers does not automatically isolate the last.
SESSION · RESUMEBRANCH, DO NOT INTERLEAVE
Claude Code — name and branch Sessions
CLAUDE CODE SESSIONS · 2026A Claude Code conversation is a Session associated with a project directory. The official documentation describes choosing a saved Session with claude --resume or /resume, and creating a new Session by copying an existing history with /branch or --fork-session. It also provides Session naming for parallel tasks.
The official documentation warns that resuming the same Session in two terminals without forking can mix both sides’ messages into one transcript. When splitting into two Windows, create a separate Session or branch one instead of opening the same Session twice.
CHAT · NEW · RESUME · FORKAGENT THREADS ARE DIFFERENT
Codex — distinguish Chats from agent threads
CODEX CHATS · 2026Codex CLI starts a separate Chat with /new, continues a saved Chat with /resume, and creates a new Chat while preserving the original transcript with /fork. The official documentation recommends a separate Chat for each distinct outcome and keeping continued work on the same problem in the same Chat.
Codex subagents and the agent threads shown by /agent form an internal parallel structure: a main conversation delegates parts of the work and gathers the results. Their purpose differs from independently launching a CLI Chat in each tmux Window. Use a separate Chat for independent responsibility and long-term context, and an agent thread for a bounded investigation contributing to one outcome.
ONE WINDOW, ONE PURPOSEVISIBLE PROCESS BOUNDARY
Why tmux Windows? Make conversations and execution states visibly separate
VISIBLE BOUNDARIES · 2026A long-running interactive CLI keeps occupying a terminal. Separate Windows let you keep purpose-specific conversations such as notes, implementation and review open simultaneously and move between them with C-b w or a number. A Window name becomes a visible safeguard showing which conversation will receive your input.
Processes can remain after detach, allowing you to leave the outer terminal connection while waiting for a long response or validation. tmux does not, however, manage each tool’s usage limits, server status, conversation storage or approval requests for you.
SAME DIRECTORY, SAME FILESWINDOWS ARE NOT ISOLATION
The crucial boundary — different Windows still see the same files
NOT FILESYSTEM ISOLATION · 2026If two Windows open the same repository path, both AIs see the same files and Git index. While one edits a file, the other can overwrite it, switch branches or mistake the other’s unfinished changes for its own work. tmux does not prevent these conflicts.
If repository rules permit it, use an isolated directory and branch for each task. Otherwise, make responsibilities and order explicit so that the same files are not edited simultaneously. One purpose per Window, one outcome per Chat and one writing task per workspace matter more than shortcuts.
LayerSeparatedNot separated
tmux Window
Separated
Display, terminal and running processNot separated
Repository files and Git indexClaude/Codex conversation
Separated
Transcript and conversation contextNot separated
Changes to files at the same pathSeparate workspace and branch
Separated
History of file changes within the permitted scopeNot separated
External accounts and shared service state— FIN —