Install
openclaw skills install @talonpoint/cloud-file-hydration-nudgeCloud folder hydration nudge for visible but unreadable File Provider, iCloud, OneDrive, Dropbox, Drive, Box, or placeholder files.
openclaw skills install @talonpoint/cloud-file-hydration-nudgeUse this skill when files in a cloud-synced folder, shared folder, or macOS File Provider location are visible but cannot yet be read reliably by scripts, document tools, OCR, upload processors, or downstream automation.
Common symptoms:
cat, dd, checksum, parser, OCR, PDF tools, ZIP tools, or import scripts fail.Resource deadlock avoided, permission/materialization failures, zero-byte reads, invalid file signatures, incomplete archives, or short reads.Do not treat metadata visibility, provider badges, or local-availability settings as proof of local readability. The proof is a successful bounded content read.
Keep examples generic. Do not include real client names, private filenames, private paths, hostnames, URLs, account names, secrets, tokens, or document contents.
Use placeholders such as:
/path/to/source-cloud-folder
/path/to/source-cloud-folder/example.pdf
/path/to/state/logs
/dev/null.Use a bounded read rather than opening or copying the entire file first.
Example shape:
dd if="/path/to/source-cloud-folder/example.pdf" of=/dev/null bs=64k count=1
For content-specific workflows, follow with a lightweight content-aware check:
file, pdfinfo, or first-page extraction.unzip -t or central-directory check.On macOS File Provider-backed folders, separate three questions:
fileproviderctl evaluate <path> can inspect provider state and actions. Treat this as diagnostic information, not final proof of readability.
Finder metadata, Spotlight metadata, file size, provider downloaded state, and provider pinning state may still disagree with actual POSIX reads.
Provider features such as Always Keep on This Device, Download Now, Make Available Offline, or folder pinning are useful preferences, but they are not reliable proof that every new child file is locally readable.
On some macOS/File Provider/provider-version combinations, a folder may appear downloaded/current while new files still arrive as cloud placeholders or dataless files. Some beta OS or provider builds may make this worse.
Use offline pinning as the first provider-level fix, but verify it causally:
For iCloud Drive files, the cleanest programmatic nudge is the native iCloud download request plus a bounded read wait.
Generic implementation shape:
startDownloadingUbiquitousItem.In causal testing, an evicted iCloud file appeared as a normal-size dataless file and failed reads with Resource deadlock avoided. A Finder folder update alone did not hydrate it. The native iCloud download request plus bounded read polling did.
For OneDrive File Provider folders on macOS, folder-level Finder update/open and Always Keep on This Device may not be sufficient.
A proven pattern is file-level Quick Look:
dataless, isDownloaded = 0, or isMostRecentVersionDownloaded = 0.qlmanage -p <file>, only as an explicit fallback.Because Quick Look may show UI and invokes file parsers, avoid running it blindly on a schedule. Trigger it only after a real read/materialization failure, preferably with explicit operator intent or a narrow allowlist, and keep the preview duration and post-nudge read wait bounded. Prefer provider-native folder/file download requests when available.
For Dropbox, Google Drive for Desktop, Box, Synology Drive, and similar providers, use the provider's normal local-availability mechanism:
Always Keep on This DeviceDownload NowMake Available OfflinePrefer provider-supported download/materialization actions over brittle UI scripting. If no CLI/API is available, a user-context Finder/Automator/Shortcuts wrapper may still be useful.
Do not assume an iCloud-specific API works for other providers.
When automation repeatedly fails because files are visible but unreadable, add a hydration wrapper before the downstream script or inside the first failure branch.
The wrapper should:
The downstream workflow should still validate the full file before doing irreversible work.
Keep logs useful but privacy-preserving. Distinguish these states without exposing private material:
pre-nudge read failed: metadata is visible, bytes are not readable.hydrating: a provider-specific nudge is being attempted.post-nudge read succeeded: the same bounded read now works.post-nudge read timed out: leave the file in place for retry/manual provider handling.downstream complete: the consuming workflow independently verified its result.Do not log real client names, private paths, private filenames, document contents, secrets, tokens, account names, URLs, or hostnames in reusable examples or shared reports. Use placeholders or local-only debug logs when exact filenames are necessary for immediate troubleshooting.
Do not claim the nudge works just because a freshly local file succeeds.
A stronger test is:
Do not delete, move, or overwrite user documents while testing hydration.
Use disposable test files when possible. If cleanup is needed for generated test records or local artifacts, make sure they are yours or get explicit approval.
Avoid broad Full Disk Access changes for shell runtimes unless the user explicitly accepts the wider security surface. Prefer user-facing automation layers or provider-specific APIs with narrower scope.
Treat preview/Quick Look hydration as higher risk than provider-native download APIs because it invokes file parsers. Prefer provider-native folder/file download requests when available.