Claude and Codex chats
Claude and Codex show every project in a single window. Their work context is a project instead of a link: switching to the workspace brings back that project’s latest chat. This works with the Code tab of the Claude app, and with Codex. T3 Code works the same way, with its latest thread.
Choose a project
Section titled “Choose a project”When the workspace has a project folder, Claude and Codex use it: their dialog starts on Project folder, and switching brings back that folder’s latest chat. Choose Its own folder to give one of them another project, or None to leave it out.
Otherwise, click the app’s row in Apps. It reads Choose a project until you pick one. Then choose a folder, drag it from the Finder, type its path, or click one of the app’s projects in the list below, most recent first. Claude lists the folders its chats ran in; Codex lists the projects of its sidebar, under the names they have there.
To find a project, type in Search Claude projects or Search Codex projects: the list keeps the projects whose name or folder contains every word you type. ↑ ↓ move through them, Return picks one, and Return again saves. Esc clears the search, then closes the dialog.
Under Opens when you switch here, the dialog shows the chat a switch will open: its title, when it was last used, and how many other chats the project has. The app’s row in Apps shows that title too, or No chat yet.
Projects are saved and duplicated with the workspace.
Which chat opens
Section titled “Which chat opens”Layout opens the project’s latest chat:
- Claude: the chat you last had on screen, rather than the last one an agent worked in. For older sessions, it’s the one with the latest activity.
- Codex: the first chat in Codex’s own list.
- T3 Code: the thread you last had on screen. Its delegated and sub-agent threads never open, and neither does history it imported until you open it there.
A chat belongs to the project when it runs in the project folder or one of its subfolders, worktrees included (.claude/worktrees/…). A neighbouring folder with a similar name, such as layout-2, doesn’t count.
Only the chats of the Claude account you used last count. Archived chats are ignored, and so are Codex automations and sub-agents. A link you saved for T3 Code before keeps opening until you save its dialog.
A project without a chat opens nothing, and the app keeps what it shows. The dialog then suggests starting a chat in the app from that folder: switching to the workspace brings it back from then on.
When the chat opens
Section titled “When the chat opens”- Launching the workspace opens the chat once the windows are placed.
- Switching back to the workspace reopens it only if the app was in view in another workspace in between: on screen when you switched there, or brought forward there. A workspace where it stayed covered doesn’t count, so a new chat you were starting is still there when you come back. Launching the app never reopens the chat, and during quick switches only the last one counts. This is the same rule as app links.
- When the app is covered, behind another app of its stack, the chat waits until you bring the app forward through Layout, such as from the Layout bar or with ⌘Tab when the replacement is on. Bring it forward another way, from the Dock or with the app’s own notification or shortcut, and the chat doesn’t open: the app keeps what you see.
- While you drag a file or anything else, no chat opens, even when the drag brings the app forward: the drop lands in what it shows.
- The app comes to the front when it opens the chat. For two seconds, Layout gives the focus back to the workspace’s window.
What Layout reads
Section titled “What Layout reads”Layout only reads these files and never changes them:
- Claude’s session files, in
~/Library/Application Support/Claude/claude-code-sessions. A file is read again only after it changes. - Codex’s state database,
~/.codex/state_*.sqlite, for its chats and its projects, opened read-only. - T3 Code’s database,
~/.t3/userdata/statev2.sqlite, opened read-only.
None of these apps documents its format. Anything Layout doesn’t recognize counts as no chat. If the Codex or T3 Code database can’t be read, the dialog says so, and so does the diagnostics report, without chat titles.
The chat opens through the app’s own link, sent only to that app and only with a well-formed identifier.