Codex Desktop: add independent user labels for threads and projects

Open 💬 2 comments Opened Jun 25, 2026 by chenk0527
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Feature request

Codex Desktop can become hard to manage when the sidebar contains many projects and many old or paused conversations. I would like a first-class way to mark both:

  • individual threads/sessions
  • projects/workspaces

The important part is that these should be independent labels or colored markers, not just renaming a thread or project. Renaming loses the original title/context and does not work well for triage states such as "deferred", "blocked", "follow up later", or "active".

Desired behavior

  • Let users assign a small text label and optional color to a thread.
  • Let users assign a small text label and optional color to a project/workspace.
  • Keep labels separate from thread names, project names, and git metadata.
  • Preserve labels across thread read/list/resume/fork/rollback flows.
  • Allow clearing labels explicitly.
  • Give clients enough protocol support to render sidebar badges/chips and filter or group later.

Prototype branch

I pushed a prototype branch from my fork:

https://github.com/openai/codex/compare/main...chenk0527:thread-user-labels

I could not open a PR directly because this repository currently limits PR creation to collaborators, but the branch is available for review.

What the branch currently does:

  • adds a UserLabel { text, color } protocol shape
  • exposes userLabel on thread responses
  • extends thread/metadata/update to set or clear a thread label independently from the thread name
  • adds project/metadata/update and project/metadata/list
  • persists thread labels and project labels in SQLite state
  • preserves thread labels during rollout reconciliation
  • regenerates app-server JSON and TypeScript schemas
  • adds coverage for set/read/list/clear behavior

Validation run on the branch

  • just write-app-server-schema
  • just test -p codex-app-server-protocol
  • just test -p codex-thread-store
  • just test -p codex-state
  • cargo build -p codex-cli --bin codex
  • cargo build -p codex-rmcp-client --bin test_stdio_server
  • just test -p codex-app-server project_metadata thread_metadata_update
  • just test -p codex-app-server (917 passed, 1 skipped)
  • just fmt

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 2 months ago

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

  • #28213

Powered by Codex Action

674019130 · 1 month ago

This would be especially useful in the GUI once the sidebar contains many sessions. I would like to tag sessions with states or topics such as in progress, blocked, follow up, and done, without changing their generated titles.

Ideally, the app would support assigning one or more colored labels from the session context menu, displaying them in the sidebar, and filtering sessions by label. Persisting the labels across restarts and resume/fork flows would make this a practical long-term organization feature.