What's Wrong?
In Claude Desktop (macOS), there is no way to set the primary working directory of a new session to the folder I actually want to work in. When I try to open a session for one project folder, a different folder is forced as the primary cwd, and the folder I selected ends up only as an "additional working directory" — visible to tools, but not the real cwd.
In my case the symptom is: I want to open a session in ~/Documents/sites/peugeot, but every new session opens with ~/Documents/admin-module as the primary cwd and ~/Documents/sites/peugeot only attached as an additional working directory. The session's environment header confirms this:
Primary working directory: /Users/.../Documents/admin-module
Additional working directories:
- /Users/.../Documents/sites/peugeot
The user-facing problem is that the primary cwd cannot be changed from the UI. Tools that key off cwd (e.g. Claude Preview's preview_start, which reads .claude/launch.json from the primary cwd, and any model behavior that pivots on the primary directory) end up operating on the wrong project. From inside a session there is no way to fix it — --add-dir-style "additional directories" exist but there is no equivalent mechanism for changing the primary cwd, and the Desktop UI does not appear to expose one either.
I have two related project folders (a template and a per-site instance copied from it). Once Desktop has decided one is "the" project, opening the other from the picker keeps the first as primary.
What Should Happen?
When I pick a folder in Claude Desktop's project picker / "Open Folder" / new-session flow, that folder should become the primary working directory of the new session. Other folders should only be attached as additional working directories if I explicitly add them.
At minimum, the UI should let me see and change the primary cwd before/at session start, so I'm not stuck with the wrong one.
Steps to Reproduce
- Have two project folders on disk, e.g.
~/projA and ~/projB. (projB being a copy/derivative of projA may or may not matter — needs verification.)
- Open
projA in Claude Desktop and use it for a while (so it becomes the "remembered" project).
- From Claude Desktop, try to open a new session in
projB (via the project picker / open folder UI).
- In the new session, ask the assistant or check the env header for the primary working directory.
- Observed: primary cwd is
projA; projB is attached as an additional working directory.
- Expected: primary cwd is
projB.
I have not yet been able to find a UI control that changes the primary cwd, hence the report.
Environment
- Claude Desktop (macOS) —
Claude.app 1.6259.1
- Bundled claude-code:
2.1.128
- macOS: Darwin 25.4.0 (arm64)
- Entry point:
claude-desktop (per session metadata in ~/.claude/sessions/*.json)
Notes / Workarounds tried
- Cleaning up cross-project references in
.claude/launch.json files so neither project's launch config cds into the other folder. This avoids one source of cross-pollution but does not fix the underlying Desktop bug — the primary cwd is still forced to the wrong folder when opening a new session from the picker.
- The only reliable workaround is launching the bundled CLI directly from a terminal with
cd <correct folder> && claude, bypassing the Desktop project picker entirely. This is not discoverable for users who installed Claude via the Desktop app, since no claude binary is placed on PATH by default.
What's Wrong?
In Claude Desktop (macOS), there is no way to set the primary working directory of a new session to the folder I actually want to work in. When I try to open a session for one project folder, a different folder is forced as the primary cwd, and the folder I selected ends up only as an "additional working directory" — visible to tools, but not the real cwd.
In my case the symptom is: I want to open a session in
~/Documents/sites/peugeot, but every new session opens with~/Documents/admin-moduleas the primary cwd and~/Documents/sites/peugeotonly attached as an additional working directory. The session's environment header confirms this:The user-facing problem is that the primary cwd cannot be changed from the UI. Tools that key off cwd (e.g. Claude Preview's
preview_start, which reads.claude/launch.jsonfrom the primary cwd, and any model behavior that pivots on the primary directory) end up operating on the wrong project. From inside a session there is no way to fix it —--add-dir-style "additional directories" exist but there is no equivalent mechanism for changing the primary cwd, and the Desktop UI does not appear to expose one either.I have two related project folders (a template and a per-site instance copied from it). Once Desktop has decided one is "the" project, opening the other from the picker keeps the first as primary.
What Should Happen?
When I pick a folder in Claude Desktop's project picker / "Open Folder" / new-session flow, that folder should become the primary working directory of the new session. Other folders should only be attached as additional working directories if I explicitly add them.
At minimum, the UI should let me see and change the primary cwd before/at session start, so I'm not stuck with the wrong one.
Steps to Reproduce
~/projAand~/projB. (projBbeing a copy/derivative ofprojAmay or may not matter — needs verification.)projAin Claude Desktop and use it for a while (so it becomes the "remembered" project).projB(via the project picker / open folder UI).projA;projBis attached as an additional working directory.projB.I have not yet been able to find a UI control that changes the primary cwd, hence the report.
Environment
Claude.app1.6259.12.1.128claude-desktop(per session metadata in~/.claude/sessions/*.json)Notes / Workarounds tried
.claude/launch.jsonfiles so neither project's launch configcds into the other folder. This avoids one source of cross-pollution but does not fix the underlying Desktop bug — the primary cwd is still forced to the wrong folder when opening a new session from the picker.cd <correct folder> && claude, bypassing the Desktop project picker entirely. This is not discoverable for users who installed Claude via the Desktop app, since noclaudebinary is placed onPATHby default.