Feature Request: --sync-dir option for Tasks to enable git-based cross-machine collaboration
Summary
Tasks are a fantastic new primitive for coordinating work across sessions and subagents. However, they currently live in ~/.claude/tasks/ (user-local), which means they can't be shared between collaborators working on the same project via git.
A --sync-dir option (or similar configuration) that stores task JSON files in a project-local directory would bridge this gap, enabling the same dependency-aware task coordination across machines that currently works across sessions on a single machine.
Proposed Behavior
# Store tasks in the project directory instead of ~/.claude/tasks/
claude --sync-dir .claude/tasks
# Or as a project-level setting in .claude/settings.json:
{
"taskSyncDir": ".claude/tasks"
}
When configured:
- Task JSON files would be written to the specified project-relative directory
git add/commit/push/pullwould naturally sync tasks between collaborators- Each collaborator's Claude Code sessions would read from and write to the same directory
- The existing
CLAUDE_CODE_TASK_LIST_IDmechanism could still work for identifying which task list to use
Use Case
Two developers working on the same repo, each using their own Claude Code instance:
# Developer A:
claude # creates tasks with dependencies, stored in .claude/tasks/
git add .claude/tasks && git commit -m "add sprint tasks" && git push
# Developer B:
git pull # gets the shared task list
claude # sees the same tasks, can claim work, update status
Why This Matters
The Tasks announcement explicitly mentioned inspiration from projects like Beads, which solve cross-machine collaboration by storing issues in the git repo. Tasks already have the right data model (JSON files with blocks/blockedBy dependencies), but the storage location (~/.claude/) prevents the natural git-based sharing that would make them a complete project coordination tool.
The current workaround is to use a separate system (like Beads or GitHub Issues) for the shared backlog and Tasks only for local execution — but unifying these into one tool with a simple storage option would be much cleaner.
Considerations
- Merge conflicts: Task files are small, independent JSON — conflicts would be rare and easy to resolve
- Broadcasting: Could local file-watching (fswatch/inotify) replicate the same-machine broadcasting behavior for shared directories?
- Privacy: Some tasks might be personal/local — perhaps a
--sync-dirstores shared tasks while~/.claude/tasks/retains private ones .gitignore: Users could choose whether to commit tasks or not
Environment
- Claude Code (latest)
- Using Tasks with
CLAUDE_CODE_TASK_LIST_IDfor multi-session coordination - Collaborating via git/GitHub with another developer also using Claude Code
4 Comments
Found 1 possible duplicate issue:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
I'd like to use this feature to store project-level tasks that can be checked into version control and shared with my team. Currently, tasks are stored globally in ~/.claude/tasks/, which prevents team collaboration on task management. The --sync-dir option would solve this by allowing tasks to be stored in .claude/tasks/ and committed to the repository. This would complement the existing plansDirectory setting for a more complete project-level configuration approach.
closing as duplicate, would be satisfied by #20425
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.