Cohesive multi-surface assistant: shared memory + task handoff across Claude Code & Desktop (+ launchd FDA regression on macOS CloudStorage)
Summary
As a multi-machine user (an always-on Mac running an agent + a Windows work PC + phone), I can't get one cohesive Claude assistant across my devices without brittle, self-maintained workarounds. Three concrete gaps make this hard today. Filing them together because they share one goal: cohesion across surfaces.
1. Shared memory / context across surfaces (feature request)
Claude Code (CLI) and Claude Desktop keep fully isolated memory. An assistant I've built up in Claude Code (CLAUDE.md + auto-memory) is invisible to Claude Desktop, and vice versa. There's no supported way to give both surfaces the same persistent context for a single account.
Ask: a shared/syncable memory + context store across Claude Code, Claude Desktop, and web for one account (opt-in).
2. Native task handoff between surfaces (feature request)
There's no native way to hand a task from Claude Desktop to Claude Code (or back) — e.g., draft/converse in Desktop, then have Claude Code execute it on my machine and return results. The only bridge today is MCP servers pointed at shared external state, which is not task handoff.
Ask: a supported mechanism to invoke/relay a Claude Code run from Desktop (and return its output to Desktop), or otherwise pass a task between surfaces.
3. Bug: launchd loses Full Disk Access to ~/Library/CloudStorage after a Python upgrade (macOS)
On macOS (Tahoe), a launchd-spawned process (e.g. a Homebrew python3.13 LaunchAgent) reading files under ~/Library/CloudStorage/... (OneDrive) gets PermissionError: [Errno 1] Operation not permitted. It worked previously; the grant broke after a Homebrew python3.13 upgrade changed the binary, silently invalidating its Full Disk Access TCC grant. Re-granting FDA is GUI-only (System Settings → Privacy & Security → Full Disk Access) and cannot be scripted or done over SSH — which is exactly the access an always-on headless agent box needs.
Repro:
- Grant FDA to a Homebrew python; have a LaunchAgent read a
~/Library/CloudStorage/<provider>/...folder. Works. brew upgrade python@3.13(binary path/identity changes).- Same LaunchAgent now fails on
os.scandir/iterdirof that folder withOperation not permitted. No log/alert; automations silently die.
Ask: document this failure mode and/or provide a supported path for headless/agent FDA that persists across interpreter upgrades (or a CLI to (re)grant), so file-watch automations on cloud-storage folders don't silently break.
Impact
Without these, building a single assistant that follows me across a Mac, a Windows PC, and a phone requires hand-rolled relays (shared files, email gateways) that break on OS updates and put maintenance back on the user. Native cross-surface cohesion would remove that entirely.
_Filed from a real production setup (multi-clinic small business; always-on Mac Studio agent + Windows office PC)._