Group the IDE extension's thread list by project (cwd is recorded but not indexed)

Resolved 💬 2 comments Opened Aug 17, 2026 by tianlrz Closed Aug 17, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What variant of Codex are you using?

IDE extension (openai.chatgpt 26.810.52044), running in a VS Code-based IDE on macOS / Apple Silicon.

What feature would you like to see?

Group the extension's conversation/thread list by project, the way ChatGPT Projects group conversations.

Today the extension's thread list is flat and chronological, with no indication of which
working directory a thread belongs to. Across several repositories the list turns into an
undifferentiated stream and there is no way to ask "what did I work on in this project".

There is a concrete data gap behind this, which is why I am filing rather than just
upvoting. Sessions are stored by date, not by project:

~/.codex/sessions/YYYY/MM/rollout-<timestamp>-<uuid>.jsonl

and ~/.codex/session_index.jsonl carries only three fields per entry:

{"id": "...", "thread_name": "...", "updated_at": "..."}

No cwd. So nothing in the index can support project grouping.

But the data is already being recorded — the first line of every rollout file contains
it:

payload.cwd = /Users/<me>/embryo

On this machine, reading that field across 37 rollout files recovers 23 distinct project
directories cleanly. So the feature reduces to propagating an existing field into the
index and grouping the list by it.

Suggested shape:

  1. Add cwd (and ideally git repo/branch) to session_index.jsonl entries.
  2. Group the thread list by project, collapsible, current workspace expanded and pinned.
  3. Default to the current workspace with a "show all projects" toggle.
  4. Optionally let users override the derived project label, for worktrees or monorepos

where one directory is not the right unit.

Item 1 would also improve codex resume's picker, which currently offers a flat list with
no project context.

Additional information

I looked at solving this locally with a third-party extension and it does not work: an
extension cannot inject UI into another extension's webview, and the extension exposes no
command to open a specific session by id (only chatgpt.openSidebar,
chatgpt.openCommandMenu, chatgpt.addToThread, chatgpt.addFileToThread). The only
programmatic entry point is codex resume <SESSION_ID> in a terminal, which abandons the
extension UI. So this genuinely needs to be solved upstream.

Related existing issues — all scoped to Codex Desktop rather than the IDE extension,
which is why this is filed separately; happy to see it merged if you consider it the same
request:

  • #30986 — Codex Desktop: add project-level topics / grouped threads in the sidebar (open)
  • #32124 — Session/Thread Folders (closed as duplicate of #30986)
  • #2541 — Project-based session management (closed as duplicate)

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 11 days ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #38498

Powered by Codex Action

tianlrz · 11 days ago

Closing as a duplicate of #25319, which covers exactly this scope (the VS Code
extension's thread list, scoped/grouped by workspace) and is already the active
tracking issue.

I filed this after searching and missing #25319 — my queries did not match its
title. Apologies for the noise.

For anyone arriving here later: the discussion in #25319 has already gone
further than the data-layer observation in this issue. thread/list.cwd in the
app-server already supports filtering by cwd, so the fix is for the extension to
pass the current workspace folder into its thread/list requests, rather than
anything needing a new persisted field.