New realtime voice chats start projectless instead of attaching to the selected project folder
What version of the Codex App are you using (From “About Codex” dialog)?
26.721.81911 (build 5973)
What subscription do you have?
ChatGPT Pro
What platform is your computer?
Darwin 25.5.0 arm64 arm
Additional environment details: macOS 26.5.2 (build 25F84); MacBook Pro with Apple M4 Max and 128 GB memory.
What issue are you seeing?
Starting a new realtime voice chat while working from an active local project creates the task in a generated, projectless Codex workspace rather than attaching it to the active project folder.
In the observed case, the intended workspace was a local Home Assistant repository. The newly created voice chat instead ran from a generated Codex chat folder, with no association to that repository. As a result, it did not have the repository context, files, or project-specific configuration expected for the active project.
No error message was shown; the incorrect workspace association was apparent from the task context after the voice chat began.
What steps can reproduce the bug?
- Open a local project in Codex Desktop—in this case, a Home Assistant repository.
- Start a new realtime voice chat from that project context.
- Ask the voice assistant which workspace it is operating in, or inspect the voice task’s workspace context.
- Observe that the voice task is associated with a generated projectless Codex folder rather than the active local project directory.
This report concerns realtime voice chat. A normal project task may retain its correct workspace association; the failure occurs when creating a new voice chat.
What is the expected behavior?
A new realtime voice chat started from an active project should inherit that project’s local workspace folder, repository context, and project configuration.
Additional information
This seems distinct from general project-sidebar or project-selector issues: the project is available and active before voice starts, but the newly created realtime voice task itself loses the workspace association.
I searched existing public Codex issues before filing. I found broader reports about project selection and project/workspace association, but none that specifically covered new realtime voice chats being created as projectless tasks instead of attaching to the active local project.
8 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Confirmed on Windows as well.
I can reproduce the same behavior in the Windows desktop app: if I open an existing Project and start a new realtime Voice session from inside it, the newly created conversation is moved to Recents and is no longer associated with the Project.
To keep working with that Voice conversation in the intended Project, I have to manually move the conversation back into the Project and then start Voice again.
This suggests the issue is cross-platform rather than macOS-specific.
Duplicate report: #37469
Still reproducible on macOS with Codex Desktop 26.803.61601 (released Aug 8, 2026).
I’m seeing the same behavior: starting a new realtime Voice chat from inside an active local project creates the Voice task in a generated projectless workspace rather than inheriting the active project.
This is blocking my use of Voice as a project-level orchestration/control-room interface, because the Voice session loses the repository/project context it was launched from.
I reproduced this on macOS with Codex Desktop 26.803.61601 (released Aug 8, 2026) and did some investigation into the local persistence behavior. I also have a working local workaround that may help identify the underlying issue.
What I found
When a realtime voice chat is created from an active local project, its session record appears to persist the generated projectless workspace as its
cwd, e.g.:~/Documents/Codex/<date>/realtime-voice-chat-Nrather than the project root from which Voice was launched.
The relevant session record is under:
~/.codex/sessions/<date>/rollout-...-<thread-id>.jsonlProject assignment state also appears in:
~/.codex/.codex-global-state.jsonincluding:
thread-project-assignmentsprojectless-thread-idsEditing only the project assignment in
.codex-global-state.jsondid not persist. After Codex was relaunched, the thread reverted to projectless.Working workaround
With Codex completely closed, I tested the following:
cwdfields in its session JSONL to the actual project root.thread-project-assignments.projectless-thread-ids.The Voice thread then remains associated with the correct project. I verified that the assignment survives multiple full quit/relaunch cycles.
The workaround script refuses to operate while Codex is running and backs up every file before modification.
This suggests that the session's persisted
cwdmay be involved in Codex re-deriving the thread's project association at startup, rather than.codex-global-state.jsonbeing the authoritative source by itself.Possible fix direction
Based only on this external observation, it appears that when a realtime Voice thread is created from an active local project, initializing that thread's session
cwdto the originating project's workspace root — rather than creating it under the projectless~/Documents/Codex/...workspace — may prevent the project association from being lost in the first place.One limitation of the workaround: it only repairs the thread after the Voice session. During the live Voice session, the agent really is operating from the generated projectless workspace, so the workaround cannot retroactively restore the project context that was missing during that session.
No Codex binaries were modified; this was entirely done by inspecting and editing the local
~/.codexsession/state files.(This investigation and workaround were produced with Claude Fable 5. I’ll await OpenAI’s reimbursement for the token spend. ;))
I can reproduce the same failure with an organizational folder, not only a local project.
Steps:
Expected: the voice chat should remain under the folder where the original chat was created, so I can create and organize voice chats within “my_project”.
Actual: converting to voice chat discards the folder association.
Broader product expectation: this should work for every user and every project or folder, not only for the specific “my project” example.
A user should be able to start realtime voice chat from any project or folder. The voice chat should be created inside that selected project context and automatically inherit its files, instructions, memory/workflow setup, and continuity. It should not create a separate projectless “New voice chat” that requires the user to manually redirect it back to the project afterward.
“My project” is only one concrete reproduction example; the requested behavior is general project-linked voice chat for all users.
Happening with me also.
Title: Two-way Live Voice creates a projectless fork instead of inheriting the selected Codex project
Environment:
Feedback already submitted: Feedback ID: 01a01e55-baae-7b32-acd1-f66cbf1979c7
Still reproducible on macOS with ChatGPT Desktop
26.820.60940(build7119) on macOS26.6.2(arm64).New reproduction details
Documents/Codex/<date>/realtime-voice-chatworkspace and cannot identify the originating Project.Manual reassignment does not restore runtime context
After creation, manually moving the Voice task under the intended Project changes the sidebar grouping, but the active task still reports the same generated projectless working directory. The Voice task therefore remains unable to establish that it inherited the Project's files, instructions, or origin metadata.
This adds a distinction between:
At minimum, if Voice intentionally uses a separate workspace, it should retain and expose the originating Project identity so the assistant can accurately say where it was launched and the UI can disclose which context was or was not inherited.
The official Projects documentation says Projects give chats shared context and that new chats start in the primary folder; the Voice page does not document an exception for Voice-created tasks:
Feedback correlation reference:
01a03aaa-755e-7a41-98b1-b1cb1d02eaa5. The Voice/feedbackflow did not show a final success confirmation, so receipt of that feedback is NOT_PROVED. That distinct Voice feedback-confirmation defect is tracked in #40701.The full screenshots are intentionally omitted because they show private Project and task names.