Due to limitations in the way Apple allows us to mount host directories inside of the VM, we cannot guarantee that the host and guest will always have the same file contents.

Host ⇄ Guest shared folder sync limitations

OperationDirectionSupportedNotes
Create new file/folderHost → Guest✅ YesNew paths appear in the guest
Create new file/folderGuest → Host✅ YesNew paths appear on the host
Read existing contentsHost → Guest✅ YesContents present at mount time are visible
Modify file in placeGuest → Host✅ YesGuest edits are written through to the host
Modify file in placeHost → Guest❌ NoGuest keeps stale contents for already-accessed files (macOS virtiofs caching)
Delete file/folderGuest → Host✅ YesRemoval is reflected on the host
Delete file/folderHost → Guest❌ NoGuest still sees the path after the host deletes it (cached)
Replace via temp + rename() (atomic)Host → Guest✅ YesNew inode/dentry; recommended way to update files from the host

Why the host → guest gaps exist

  • The in-guest mount at /Volumes/My Shared Files is performed by macOS’s own automounter.
  • Apple’s Virtualization.framework exposes no API to tune virtiofs caching (attr_timeout, cache=, DAX), so the guest caches dentries/attributes and does not re-validate when the host changes an already-seen path.
  • This is a platform limitation, not specific to Anka — any tool built on Virtualization.framework behaves the same way.

Recommendation for users

  • Best practice: make changes inside the guest when you need them reflected on the host (fully bidirectional).
  • When changing files on the host, prefer creating new files or atomic replace (write to a temp file, then mv/rename() over the target) instead of editing in place, so the guest picks up the change.