Connectors bring a whole source in at once and keep it in sync, rather than ingesting item by item.

Granola meetings

Reads Granola’s cache from this Mac and imports meetings into the active twin. Backfilling vs. scheduling. Use a large --days for an intentional backfill after onboarding. For a scheduled agent, use --incremental --quiet so repeat runs only pick up what’s new.
Newer Granola installs only populate the encrypted cache (cache-v6.json.enc), leaving the plaintext one empty. The CLI handles this — it decrypts the cached WorkOS token via Electron safeStorage and talks to the Granola API directly. If it still can’t get in, mint a personal API key in Granola → Settings → Connectors → API keys and pass it once with --api-key grn_...; it’s saved for future runs.

Obsidian vaults

Syncs markdown notes into the active twin’s knowledge base. Re-runs are incremental. Unchanged notes are skipped locally, and re-synced notes upsert rather than duplicating — so running this on a schedule is safe.

Media — audio, video, images

Audio is transcribed and diarized server-side; video also gets scene-detected keyframes. Always run --dry-run first — it probes the file and prints the plan with a cost estimate before you spend anything.
--speakers labels the positional SPEAKER_A / SPEAKER_B tags diarization produces. Names are never guessed — if you don’t pass them, the speakers stay positional.
Use --full-video for screen recordings and demos where the motion carries the meaning. For a talking-head recording, the audio track is enough.

Re-sync pending imports

Re-sends anything a previous connector run left pending locally.