Tabbed interface for parallel chat sessions in Codex extension

Open 💬 18 comments Opened Feb 18, 2026 by michaeltyson

What variant of Codex are you using?

IDE Extension (Codex/VS Code)

What feature would you like to see?

I would like a tabbed interface for chat sessions within the Codex extension for Cursor and VS Code.

Currently, switching between chats requires multiple steps: opening the chat list, locating the desired session, and selecting it. In practice, this usually means three clicks plus visually scanning or searching through the list. When working with multiple parallel sessions within the same project, this adds noticeable friction and makes it difficult to maintain flow.

A tabbed interface, similar to the built-in Agents UI in Cursor, would allow active chat sessions to remain visible and instantly accessible. Being able to pin, reorder, or quickly switch between open chats would significantly improve multi-stream workflows, especially during complex refactors, feature work, or parallel experimentation.

Additional information

This becomes particularly important when:

  • Running separate chats for different concerns in the same repository, such as one for architecture planning, one for implementation, and one for refactoring.
  • Comparing alternative approaches side by side.
  • Keeping a long-running context-heavy session open while using short-lived task-specific chats.

Even a minimal implementation, where active chats appear as tabs across the top of the panel, would reduce cognitive load and eliminate repeated navigation overhead. Optional enhancements such as keyboard shortcuts for cycling between tabs or the ability to group chats by project would further improve usability.

The core issue is not discoverability but friction. Reducing the number of clicks and eliminating the need to search through the chat list would make Codex far more usable for sustained, professional workflows.

View original on GitHub ↗

18 Comments

JoeMMesser · 5 months ago

I came here just to find this request. 100% this is needed. In a multitasking world I should not need to open multiple VS code windows to have separate codex sessions. I am spending more and more of my day with codex. Either i have to launch another session to do small one-off type actions or I do them in already context heavy windows which needlessly adds to the context.

myprestarocks · 2 months ago

Add this please. Currently Claude Code VSCode extension is a ton better than Codex, while Codex at the same time is a better tool. Essentially - look how Claude Code extension is done, you can rename sessions, have multiple tabs. Lots of this could be done the same way for Codex.

banyinjushi · 2 months ago

add this please!

vsinghipcium · 2 months ago

+1

brauliobo · 2 months ago

Indeed, Task switching is horrible today, also can't rename the chat/Task

banyinjushi · 2 months ago

add this and I will cancel my cc subscription imediately!

dthinkr · 2 months ago

+1

LubomirHoffman · 2 months ago

+1

biggiesmallcap-blip · 2 months ago

+1 please fix this, codex is terrible in VScode for workflow

andys-development-system · 2 months ago

I found this issue by asking codex how to use a tabbed interface instead of the chat list, and it pointed me here.

This absolutely needs fixing, I use both Claude and Codex, and have been doing more and more with Codex, but it is so much easier to have multiple tasks going with Claude.

nad3rzz · 2 months ago

I built a VS Code-compatible extension that adds workspace-scoped quick tabs for existing Codex chats across the top of the Codex panel.

It helps reduce repeated chat-list navigation:
https://marketplace.visualstudio.com/items?itemName=nad3r.agents-rtl

<img width="773" height="113" alt="Image" src="https://github.com/user-attachments/assets/7475257d-c1a1-487b-ab70-5f55a1f80158" />

ats05 · 2 months ago

One of the best things about Cloude Code is its UI. I hope this will be incorporated into the Codex as well.

danpetruk · 2 months ago

I found a practical workaround that can be automated by asking a local Codex agent to patch the installed VS Code extension.

This is not a replacement for native support, but it shows that the extension already has most of the required machinery. Existing local conversations can be opened in the VS Code editor area by dispatching the internal webview message navigate-in-new-editor-tab with a route like /local/<conversationId>.

Below is a prompt that another Codex instance can run locally to create a side-by-side patched extension:

````text
You are running locally on my machine. Patch my installed OpenAI Codex VS Code extension by creating a separate local copy called MultiCodex.

Goal:
Create a second VS Code extension that runs next to the official Codex extension and adds a right-click "Open as tab" action for existing local Codex conversations.

Do not modify the official Codex extension directory.

Expected behavior:

  • Official openai.chatgpt continues to work unchanged.
  • New copied extension is registered as local.multicodex.
  • Left-click on a conversation keeps the original sidebar behavior.
  • Right-click on a local conversation row shows Open as tab.
  • Clicking Open as tab opens that conversation as a normal VS Code editor tab.
  • If possible, also add right-click Open as tab to the top-right "new chat" button.

Technical details:

  1. Locate the installed Codex extension.

Common local path:

~/.vscode/extensions/openai.chatgpt-*-linux-x64

Common VS Code Remote SSH path:

~/.vscode-server/extensions/openai.chatgpt-*-linux-x64

  1. Copy it to a new extension directory with the same version, for example:

~/.vscode/extensions/local.multicodex-<version>-linux-x64

  1. Patch package.json in the copied extension:
  • set name to multicodex
  • set publisher to local
  • set displayName to MultiCodex
  • set a new stable UUID in __metadata.id
  • replace command/context/view ids:
  • chatgpt.* -> multicodex.*
  • codexViewContainer -> multicodexViewContainer
  • codexSecondaryViewContainer -> multicodexSecondaryViewContainer
  • remove contribution points that conflict with the official extension:
  • enabledApiProposals
  • contributes.chatSessions
  • contributes.configuration
  • contributes.languages
  • contributes.grammars
  • contributes.menus["chatSessions/newSession"]
  1. Patch runtime strings in the copied extension:
  • openai-codex -> multicodex-codex
  • extensions.getExtension("openai.chatgpt") -> extensions.getExtension("local.multicodex")
  • relevant runtime chatgpt.* command/context names -> multicodex.*
  1. Find the webview bundle that contains local conversation navigation.

The filename is content-hashed, usually something like:

webview/assets/use-navigate-to-local-conversation-*.js

Keep the original left-click behavior. Do not force left-click to open a tab.

  1. Find the webview bundle that renders local conversation rows.

The filename is usually something like:

webview/assets/local-conversation-thread-*.js

Add a right-click context menu item to local conversation rows.

The menu item should be:

Open as tab

Its action should dispatch:

``js
vscodeApi.dispatchMessage("navigate-in-new-editor-tab", {
path:
/local/${conversationId},
});
``

  1. If the existing context-menu helper expects intl message objects, use:

``js
{
id: "codex.localTaskRow.openAsTab",
defaultMessage: "Open as tab",
description: "Context menu item that opens a local thread in an editor tab"
}
``

  1. Optional: patch the top-right "new chat" button.

Search for actionId:\new-chat\`` in the webview assets.

Add a right-click context menu item:

Open as tab

Its action should dispatch:

``js
vscodeApi.dispatchMessage("open-vscode-command", {
command: "multicodex.newCodexPanel",
});
``

Important: if the context menu does not appear, wrap the custom button component in a real DOM element such as a span, because some custom React button components may not forward onContextMenu.

  1. Register the copied extension in VS Code’s extension registry.

Local:

~/.vscode/extensions/extensions.json

Remote SSH:

~/.vscode-server/extensions/extensions.json

Add an entry for:

  • identifier id: local.multicodex
  • uuid: the new stable UUID
  • version: same as the copied Codex extension
  • location path: copied extension directory
  • targetPlatform: linux-x64
  1. Verify:
  • run syntax checks on patched JS files
  • confirm both extensions are visible:

``bash
code --list-extensions --show-versions | grep -E 'openai.chatgpt|local.multicodex'
``

  • confirm patched webview assets contain:
  • navigate-in-new-editor-tab
  • Open as tab
  • /local/${conversationId}
  • reload VS Code or reconnect to the Remote SSH window.

````

This gives a usable interim solution: the official Codex extension stays untouched, while a local side-by-side copy exposes "Open as tab" for existing sessions. Native support would still be much better, ideally as an official command and context-menu action.

jdpierce21 · 2 months ago

Yes, please!

akaSurreal · 1 month ago

another big yes please, lots of good ideas in this thread

ciuchka2222 · 20 days ago

Yaaas!

Lornt1666 · 20 days ago

I was almost thinking being able to talk to and screenshare with the voice
ai within the codex

On Tue, Jun 30, 2026 at 6:36 AM ciuchka2222 @.***>
wrote:

ciuchka2222 left a comment (openai/codex#12098) <https://github.com/openai/codex/issues/12098#issuecomment-4843517051> Yaaas! — Reply to this email directly, view it on GitHub <https://github.com/openai/codex/issues/12098?email_source=notifications&email_token=BYKIHU3JVAGSSQUVXGQ5EFD5COX47A5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTIOBUGM2TCNZQGUY2M4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSWGM33PORSXEX3DNRUWG2Y#issuecomment-4843517051>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/BYKIHU6VRZFQK6H3GE44ECT5COX47AVCNFSNUABFKJSXA33TNF2G64TZHM4TMNJUGE2TMNBZHNEXG43VMU5TGOJVGYZDKOJWHA2KC5QC> . You are receiving this because you are subscribed to this thread.Message ID: @.***>
Ayanami-Yu · 18 days ago

+1
Please enable renaming sessions and multiple tabs for Codex VS Code extension. Currently we can neither rename a session nor open multiple tabs at the same time, which is extremely inefficient :(