Feature Request: --sync-dir option for Tasks to enable git-based cross-machine collaboration

Resolved 💬 4 comments Opened Jan 24, 2026 by justinclayton Closed Feb 2, 2026

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/pull would 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_ID mechanism 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-dir stores 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_ID for multi-session coordination
  • Collaborating via git/GitHub with another developer also using Claude Code

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗