[FEATURE] Allow configuring the Cowork workspace base path (Documents/Claude)
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
The ~/Documents/Claude/ folder is currently hardcoded as the Cowork working directory for Artifacts and Scheduled tasks. During initial setup I was prompted to choose a folder location, but the app ignored my selection and created ~/Documents/Claude/ anyway (confirmed bug #54138).
Proposed Solution
Please add a setting — either in Claude Desktop Preferences or claude_desktop_config.json — to configure this base path. My preferred location is ~/Documents/Systems/. This would allow users to consolidate all Claude working files inside an existing project structure rather than having a standalone sibling folder in Documents.
Alternative Solutions
I've tried using a macOS symlink: ln -s ~/Documents/Systems ~/Documents/Claude. This redirects all app writes to my preferred location and works functionally, but the folder still appears in Finder and iCloud Drive, creating visual clutter. The chflags hidden workaround doesn't persist through iCloud sync.
Priority
High - Significant impact on productivity
Feature Category
Configuration and settings
Use Case Example
I maintain a structured project folder at ~/Documents/Systems/ that contains all my Claude automation files, scheduled tasks, skill files, and artifacts. When Cowork creates ~/Documents/Claude/ as a sibling folder, it splits my Claude working files across two locations with no way to consolidate them. I need to reference artifacts and scheduled task outputs from within my Systems project, but they land in a separate directory I didn't choose and can't redirect through the app.
Additional Context
Related issue: #54138 (artifacts folder hardcoded, ignores selected project folder).
The scheduled-tasks.json file at ~/Library/Application Support/Claude/[session-id]/scheduled-tasks.json stores absolute filePaths per task and CAN be edited manually to point to a different directory — this works for scheduled tasks. The Artifacts path appears to be hardcoded in the app bundle (confirmed in ion-dist i18n files). A single configurable base path setting would fix both.
Showing cached comments. Read the full discussion on GitHub ↗
7 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
These are related but not duplicates. Each addresses a specific symptom:
#54859 covers the Scheduled path only
#54138 and #52496 cover the Artifacts path only
This issue (#57177) requests a single configurable base path setting that would resolve all three in one fix, rather than patching each hardcoded path individually. Closing this as a duplicate would lose the consolidated feature request. Please keep open.
The same hardcoded paths create problems on Windows platform too (discussed in https://github.com/anthropics/claude-code/issues/54138).
This issue should provide a fix for both platforms.
Proposal: configurable Cowork workspace paths (consolidates #57177, #54859, #54138, #52496)
Root cause (shared across all four issues)
Claude Desktop / Cowork resolves three storage roots from a single hardcoded base,
~/Documents/Claude/:~/Documents/Claude/— Cowork workspace base~/Documents/Claude/Artifacts/— Live Artifacts mount source~/Documents/Claude/Scheduled/— scheduled task definitionsThere is no user-facing setting and no
claude_desktop_config.jsonfield to override any of these. The result is a class of failures on otherwise-supported setups: macOS TCC denial on~/Documents, OneDrive-synced Documents on macOS/Windows, Windows Documents redirected toD:\, MDM-restricted corporate Macs, and user folders kept outside~/Documentsby preference.Proposed fix
1. New default location (no config required)
Move the canonical storage out of the TCC-gated, user-redirectable Documents folder:
~/Library/Application Support/Claude/Cowork/%APPDATA%\Claude\Cowork\$XDG_DATA_HOME/Claude/Cowork/(fallback~/.local/share/Claude/Cowork/)This is consistent with where Claude Desktop already stores
vm_bundles/, MCP configs, and other app state. It eliminates the TCC, OneDrive, and cross-drive failure modes without any user configuration.2. Single configurable base path in
claude_desktop_config.jsonResolution rules:
cowork.workspaceRootis set and the sub-roots are not, deriveartifactsRootandscheduledTasksRootas<workspaceRoot>/Artifactsand<workspaceRoot>/Scheduled.~and environment variables ($HOME,%USERPROFILE%,%APPDATA%) are expanded.3. Equivalent UI setting
Settings → Cowork → "Workspace location" with a folder picker, writing to the same config field. UI and config must be a single source of truth.
4. Per-session override (fixes #54138, #52496)
When the user selects a project folder via "Use an existing folder", Artifacts and any per-session storage MUST mount relative to that folder (e.g.
<sessionFolder>/.claude-artifacts/), not the globalartifactsRoot. The global root is only used for sessions without a selected folder.5. Migration
On first launch after the change:
~/Documents/Claude/exists and the new default location does not, move contents and leave a symlink at the old path for backward compatibility.cowork.workspaceRoot, migrate to that location instead.scheduled-tasks.jsonentries with absolutefilePathvalues are rewritten to point at the new location.Why one PR instead of four fixes
The four issues are symptoms of one architectural choice (hardcoded base under a TCC/cloud-sync-prone folder with no override). Fixing each surface independently leaves the other three reachable through different code paths. A single resolution layer that reads
claude_desktop_config.json, falls back to the platform-appropriate app-data location, and honours per-session folder selection closes all four.Acceptance criteria
D:\→ same.cowork.workspaceRootto an arbitrary path → all three storage areas land under it.~/Documents/Claude/see no data loss after upgrade.This is fixed in the latest version, thank you!
+1 — and a variant worth flagging: because the Cowork working dir (~/Documents/Claude) is hardcoded AND contains protected children (Documents\Claude\Scheduled and Documents\Claude\Artifacts), the mounter hard-refuses to mount the parent Documents\Claude at all:
"Directory C:\Users\AlexLee\Documents\Claude overlaps a protected host location (…\Claude\Scheduled) and cannot be mounted."
I run an automation engine inside that folder (its scripts, top-level engine_integrity.json manifest, Outputs/, Artifacts/). With the parent unmountable, no interactive session can reach the engine root or its top-level manifest, so engine maintenance can't run.
Notes:
Repro: put any project in ~/Documents/Claude (or any folder containing a protected child) → try to mount the parent → hard refusal; mounting a child yields mnt/<child>, not mnt/Claude.
Ask (either fixes it): (1) make the workspace base path configurable, or (2) allow mounting a parent with protected children auto-excluded.
Hitting this after the July 2026 Chat/Cowork merge. My setup keeps shared skill assets (a config JSON with API tokens, a service-account key, an SSH key) at the Cowork projects root, ~/Documents/Claude. Skills across several projects read those files via the connected-folder mount.
Post-merge the app now refuses to add ~/Documents/Claude as a connected folder to a project, rejecting it as a protected/overlapping location because it's the projects root itself. Only its subfolders can be mounted. Projects that had the root grandfathered in still work; any project created or re-configured after the merge can't reach the shared files, so those skills fail.
The symlink workaround doesn't help: the folder picker resolves the symlink back to the real path and re-blocks it (same as #24964).
Requesting either a configurable Cowork base path, or the ability to explicitly add the projects root (or an arbitrary chosen shared folder) as a connected folder to any project. Right now there's no supported way to share one folder of credentials across projects.
macOS, desktop app.