Skip to content

Mobile Capture via Cloud Folder (Google Drive / iCloud)

Drop a text file into a synced folder on your phone → Lattice picks it up within seconds. Works on cellular. No VPN. No app to install.

Privacy: Google Drive is readable by Google. iCloud is readable by Apple unless you enable Advanced Data Protection (iOS 16.2+). Both are the same trust level as your existing files and photos on those services. For a fully private path, see PWA + Web Share Target.


Android — Google Drive

What you need: Google Drive app installed on your Android phone. Google Drive for Desktop installed on your Mac.

Step 1 — Install Google Drive for Desktop on Mac

Download from drive.google.com and sign in with your Google account. Enable "Sync My Drive to this Mac."

Verify the local path exists:

ls ~/Library/CloudStorage/GoogleDrive-you@gmail.com/My\ Drive/

Step 2 — Create the inbox folder

In the Google Drive app on your Mac (or on drive.google.com), create a folder called LatticeInbox inside My Drive.

Or from terminal:

mkdir ~/Library/CloudStorage/GoogleDrive-you@gmail.com/My\ Drive/LatticeInbox

Step 3 — Tell Lattice to watch it

Add LATTICE_CLOUD_INBOX to your daemon plist (~/Library/LaunchAgents/dev.lattice.daemon.plist):

<key>LATTICE_CLOUD_INBOX</key>
<string>/Users/you/Library/CloudStorage/GoogleDrive-you@gmail.com/My Drive/LatticeInbox</string>

Reload the daemon:

launchctl unload ~/Library/LaunchAgents/dev.lattice.daemon.plist
launchctl load  ~/Library/LaunchAgents/dev.lattice.daemon.plist
uv run lattice-daemon status   # confirm running

Verify the watcher started:

grep "cloud-inbox watcher" ~/.lattice/state/daemon.stderr.log | tail -2
# cloud-inbox watcher started at /Users/you/.../LatticeInbox

Step 4 — Capture from your Android phone

Option A — Share Sheet (fastest):

  1. In any Android app, select text → tap Share
  2. Tap Drive → navigate to LatticeInbox → tap Save
  3. Wait ~10 seconds for Drive to sync → Lattice ingests it automatically

Option B — Save a text file directly:

  1. Open the Google Drive app → tap +New document
  2. Type your note → it auto-saves to Drive
  3. Move it into LatticeInbox from within the app

Verify capture:

ls ~/Library/CloudStorage/.../LatticeInbox/processed/   # your file appears here
uv run lc "what did I just save?"

iPhone — iCloud Drive

What you need: iCloud Drive enabled on your iPhone and Mac (System Settings → Apple ID → iCloud → iCloud Drive).

Step 1 — Create the inbox folder on Mac

mkdir ~/Library/Mobile\ Documents/com~apple~CloudDocs/LatticeInbox

Or open Finder → iCloud Drive and create a folder called LatticeInbox.

Step 2 — Tell Lattice to watch it

Add to your daemon plist:

<key>LATTICE_CLOUD_INBOX</key>
<string>/Users/you/Library/Mobile Documents/com~apple~CloudDocs/LatticeInbox</string>

Reload the daemon (same commands as above).

Step 3 — Capture from your iPhone

Option A — Files app Share Sheet:

  1. In any iPhone app, select text → tap Share → tap Save to Files
  2. Navigate to iCloud Drive → LatticeInbox → tap Save
  3. iCloud syncs to Mac within seconds → Lattice ingests it

Option B — Notes app:

  1. Write a note in the Notes app
  2. Tap Share → Save to Files → iCloud Drive → LatticeInbox

Option C — iOS Shortcuts (one tap):

Create a shortcut that takes Share Sheet input and saves it as a .txt file to LatticeInbox in iCloud Drive. This makes capture a single tap from any app.


Check status

uv run lc status
# Cloud inbox: /path/to/LatticeInbox (3 files processed today)

Troubleshooting

File sits in LatticeInbox but never moves to processed/:

  • Check daemon is running: uv run lattice-daemon status
  • Check LATTICE_CLOUD_INBOX is set in the plist and the path matches exactly
  • Check daemon log: tail -20 ~/.lattice/state/daemon.stderr.log

Drive sync is slow:

Google Drive and iCloud typically sync within 5–30 seconds on a good connection. The daemon picks up the file the moment it appears locally — there is no additional delay on the Lattice side.

"No such file or directory" error in daemon log:

The path in LATTICE_CLOUD_INBOX doesn't exist. Create the folder first, then reload the daemon.