Skip to content

Feature request: make default working directory for non-project conversations configurable #24734

Description

@wangwren

What variant of Codex are you using?

Desktop App

What feature would you like to see?

Problem

When starting a conversation that is not tied to any project, referred to internally as a "projectless thread", the Codex Desktop App uses ~/Documents/Codex as the default working directory.

On macOS, ~/Documents may be automatically synced to iCloud Drive when "Desktop & Documents Folders" sync is enabled. This means projectless conversation workspace files, generated files, and outputs can be uploaded to iCloud.

This causes several issues:

  1. Unnecessary bandwidth and storage consumption

    Codex can generate many temporary and intermediate files, such as images, build artifacts, exported documents, and other generated outputs. These files usually do not need cloud sync.

  2. Potential sync conflicts and slowdowns

    iCloud may lock, delay, or re-upload files while Codex is actively writing to them. This can slow down file operations and may cause confusing filesystem behavior.

  3. Privacy concerns

    Users may not want generated content, local working files, or projectless conversation outputs to be synced to a cloud provider by default.

Reproduction

  1. Move the default projectless workspace directory outside ~/Documents and create a symlink at the original path:

    mv ~/Documents/Codex ~/codex-project
    ln -s ~/codex-project ~/Documents/Codex
  2. Restart the Codex Desktop App.

  3. Create a new non-project conversation.

  4. The app fails with:

    Projectless thread directory must be a real directory
    

The app appears to reject symlinks for the projectless thread directory. Since the default projectless workspace path is not configurable, users currently have no reliable way to store this workspace outside the iCloud-synced ~/Documents directory.

Proposal

Add a configurable option in config.toml to override the default working directory for projectless conversations:

[desktop]
projectless-thread-directory = "/Users/username/codex-project"

When this option is not set, Codex should continue to fall back to the current default:

~/Documents/Codex

This keeps full backward compatibility while allowing users to opt into a different local workspace location.

Expected behavior

If projectless-thread-directory is configured:

  1. New non-project conversations should create their working directories under the configured path.
  2. The configured path should be validated as a writable directory.
  3. Existing behavior should remain unchanged when the option is not configured.
  4. Existing project-based conversations should not be affected.

####Alternatives considered

  1. Allow symlinks

    Resolve symlinks before validation instead of rejecting them. This would let users manage their own directory layout without adding a new config option.

  2. Use ~/Codex instead of ~/Documents/Codex

    This would avoid the iCloud-synced Documents directory by default, but it would be a behavior change for existing users.

  3. Expose the setting in the Desktop App UI

    A UI setting would be helpful, but a config.toml option would already solve the core issue and is consistent with existing Codex configuration patterns.

Environment

  • OS: macOS 26.3
  • Codex: Desktop App 26.519.81530
  • iCloud Drive: Enabled with Desktop & Documents Folders sync

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appconfigIssues involving config.toml, config keys, config merging, or config updatesenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions