Skip to content

Schedule automatic ingest

Read this if you want OMem to keep itself up to date — ingesting new mail, files, and events on a schedule instead of you running omem ingest by hand. OMem uses macOS’s own launchd timer; there’s no background daemon to manage.

You already chose an interval during setup, so just run:

Terminal window
omem install

This reads the interval from your config and writes a launchd job that runs omem ingest on that schedule. Because re-runs are cheap (OMem only touches what changed), a frequent interval is fine.

To use a different interval than what’s in your config — or if you skipped that step — pass --schedule (it overrides the config value just for this install):

Terminal window
omem install --schedule 15m # 3m, 15m, 1h, … — overrides config
Terminal window
omem install status
$

This command has its own status codes (0 = healthy, 1 = not installed, 2 = not loaded, 3 = installed but the last run failed or nothing ran in 24h) — see exit codes. It’s a one-line health probe you can poll from a monitoring script.

Terminal window
omem install --uninstall

Removes the launchd job. Your wiki and data are untouched — only the schedule stops.

It uses the globally-installed omem. The scheduled job must point at the same omem binary you grant Full Disk Access to — the one on your PATH (from brew or the curl install), not a development copy. This keeps the macOS permission identity consistent so scheduled mail ingest doesn’t silently fail.

File-change triggering is opt-in. By default the job runs purely on the timer. You can add --watch-roots to also trigger when files in your roots change, but it’s off by default: ingest is a multi-minute batch, not a real-time sync, so the timer is the recommended pattern.

Terminal window
omem install --watch-roots # also trigger on file changes