Reference

Available sources

Every source Omnesis can index, what each one adds to your index, and how to manage the sources you have connected. It is for anyone deciding what to connect, or looking after a running setup.

A source is one account's data from one platform, such as a Gmail mailbox or your Apple Notes. A provider is one sign-in that serves several source types: signing in to Google once covers Gmail, Calendar, Drive, and Contacts. Most sources run on a collector — some on any machine, some only on macOS because they read local Apple databases. A few run inside the phone apps and push straight to the gateway. A handful live on the gateway itself: Web Pages (type web), fed by the browser extension, and the Omnesis-native sources listed under Omnesis itself.

Every source follows the same deletion rule. An item goes when the platform reports it deleted, or when complete, successful reads stop listing it — and in that second case Omnesis waits for several reads over time to agree before removing it. A failed or partial read never deletes anything. Managing sources covers adding, pausing, re-syncing and removing them, and Sources on several devices covers what happens when two machines or phones host the same source.

In the tables below, the tags under each source's name say where it runs and how it connects — any collector OAuth, for example. Two sources carry an experimental tag: Plaid and Local Files need more testing, and a collector offers them only when it runs with OMNESIS_EXPERIMENTAL=1. Experimental sources covers turning them on.

Email & messaging

Google sources share one sign-in too, through an OAuth client you register in your own Google Cloud project; the first Google source you add walks you through it (see Google's OAuth client). Microsoft sources share one sign-in, so consenting once covers Outlook Email, Outlook Calendar, and OneDrive. Omnesis supplies a public Azure app, so no Azure setup is needed; omnesis creds set outlook switches to an app registration you control. Microsoft sign-in supports personal Outlook.com, Hotmail, and Live accounts. Work and school accounts are not supported.

Source What it adds
Gmail
any collector OAuth
Every email as a document, with attachment text extracted (scans and images are OCR'd when an OCR model is assigned); senders and recipients feed the people graph.
Outlook Email
any collector OAuth
Emails and their attachments as documents; correspondents feed the people graph.
IMAP Email
any collector IMAP password
Email from any account that offers IMAP over TLS on port 993 — the whole mailbox, or only mail newer than the source's maxAge when one is set. Use an app-specific password when the provider offers one. The hostname is the provider's IMAP server, such as imap.fastmail.com for Fastmail or imap.mail.me.com for iCloud Mail. The source skips Drafts, Junk, and Trash and indexes up to 512 KiB of each message body. Attachment text is extracted (scans and images are OCR'd when an OCR model is assigned). Senders and recipients feed the people graph, mailboxes become tags, and reply headers link messages into threads. Use omnesis sources reauth imap:<email> to replace the password.
WhatsApp Messages
any collector QR pairing
Messages as conversational documents, live as they arrive, plus an optional one-time full-history import from an iPhone backup. Media text is extracted, and voice notes are transcribed when a transcriber model is assigned. Message sync continues when media processing is disabled or unavailable. Pending media stays in the local archive for later retries, within the source's date range. The add flow shows a QR code; scan it under WhatsApp Settings → Linked Devices → Link a Device, and the collector starts syncing without a restart. WhatsApp may unlink a device after roughly two weeks without activity; run omnesis sources reauth whatsapp:<account> and scan a new QR code to reconnect it.
Apple iMessage
macOS collector Full Disk Access
Messages as conversational documents, with attachment text inline, and voice-clip transcripts when a transcriber model is assigned; participants feed the people graph.

Notes, tasks & meetings

Source What it adds
Apple Notes
macOS collector Full Disk Access
Every note as a document.
Apple Reminders
macOS collector Full Disk Access
Reminders and tasks as documents.
Notion Pages
any collector OAuth
Notion pages as documents.
Notion Databases
any collector OAuth
Each shared Notion database as its own typed analytics table, queryable with SQL.
Obsidian Notes
any collector Vault path
Markdown notes as documents, with frontmatter, tags, and wikilinks. Vaults with the same folder name on one collector remain separate sources.
Things 3
macOS collector Full Disk Access
Tasks as documents. Things must be running on the collector's host — the app is what pulls from Things Cloud, and the local database it maintains is the only thing Omnesis can read. A collector that finds Things quit opens it again, hidden and in the background; if it keeps quitting, the collector retries on a slowing schedule, never more than a few times a day, and the source says so. Several Macs can host it as one shared source, each reading its own local Things database.
Granola Meetings
any collector API key
Meeting notes as documents — summaries and transcripts — plus a meetings analytics table; attendees feed the people graph. Several accounts can be connected, one API key each. Each sync reads new and edited notes, and a full pass once a day picks up deleted ones.

Coding agents

These sources read session files written by coding agents on the collector host. Each session becomes one conversation document per local calendar day. Documents contain human prompts and completed assistant replies. Tool calls, tool results, hidden reasoning, system context, Claude Code sidechains, and Codex subagent sessions are excluded. Project, working-directory, branch, and model metadata remain available when the source records them.

The collector accepts at most 10,000 transcript files per source. It rejects a file above 1 GiB before or after decompression. It also rejects a daily document above 16 MiB. One session can contain at most 4,000 daily documents, and one source can track at most 100,000 daily documents. A rejected file does not delete its last indexed documents.

Source What it adds
Pi Sessions
any collector Local files
Active session-tree branches from ~/.pi/agent/sessions; linear session files are read too. A custom directory can be selected when adding the source.
Claude Code Sessions
any collector Local files
Main conversation branches from ~/.claude/projects. Claude Code removes old local transcripts according to its own retention setting; Omnesis mirrors the files that remain. On several collectors it is a per-device source: each machine contributes its own transcript directory, which + Add source can set separately for each collector.
Codex Sessions
any collector Local files
Root sessions from ~/.codex/sessions and ~/.codex/archived_sessions. Recorded rollbacks are applied before the conversation document is built. On several collectors it is a per-device source: each machine contributes its own Codex home, which + Add source can set separately for each collector.

Code hosting

These sources index the repositories the token can list: the private ones it was granted, plus the public repositories you own or belong to. A token's Only select repositories choice governs its private access only — it does not narrow the public side, because a fine-grained token can read every public repository on GitHub.

What Omnesis indexes is therefore decided here, not on GitHub. The repos setting is an allow-list of owner/name entries — name them and exactly those are indexed; excludeRepos drops individual repositories whether that list is set or empty. Entries must be repositories you own, collaborate on, or whose organization you belong to: a public repository you have no connection to cannot be added this way. Both settings take effect on the next sync when changed, without re-issuing the token — set them with omnesis config set or by editing the config file.

A read-only token with Metadata, Contents, Issues, Pull requests, and Discussions is enough, and code itself is never indexed — no diffs, no file contents.

A fine-grained token belongs to exactly one resource owner, so an organization's private repositories need a token of their own. Connect it as a second account and give it a connection name — the organization's, say — because both tokens authenticate as the same person and would otherwise resolve to one account, the second replacing the first's credential. Give each account its own repos list too: both tokens can see the same public repositories, and without a list each account would index its own copy.

A thread and its replies are one document, rewritten whenever anything in it changes, so a new comment, an edited comment, or a closed issue updates the document in place rather than adding another one. References between threads become links in the graph: a #-number mention or a "Closes" line resolves to that issue, pull request, or discussion, and a merged pull request links to the commit it landed as.

Source What it adds
GitHub
any collector Access token
Issues, pull requests, and discussions as documents — each with its comments, review verdicts, and inline review remarks, plus labels, state, and assignees. Authors and participants feed the people graph.
GitHub Commits
any collector Access token
Commits on each repository's default branch — message, author, changed-file paths, and line counts. Commit authorship ties a GitHub account to the email address the same person uses elsewhere in the corpus.

Calendar & contacts

Source What it adds
Google Calendar
any collector OAuth
Events as documents, plus a typed events table for SQL queries.
Apple Calendar
macOS collector Full Disk Access
Events as documents, plus a typed events table.
Outlook Calendar
any collector OAuth
Events from every calendar on the account — your own, shared, and subscribed — as documents, plus a typed events table. Recurring series arrive as individual occurrences, and each event records how it marks your availability, so a block held as free is distinguishable from a meeting.
Google Contacts
any collector OAuth
Contacts as documents; each contact seeds an identity in the people graph.
Apple Contacts
macOS collector Full Disk Access
Contacts as documents; each contact seeds an identity in the people graph.

Files

Source What it adds
Google Drive
any collector OAuth
Files as documents, with text extracted from binary formats (PDF, modern and older Office formats, ODF, RTF) and images OCR'd when an OCR model is assigned.
OneDrive
any collector OAuth
Files from your own drive as documents, with text extracted from PDFs and Office formats and images OCR'd when an OCR model is assigned. Files other people have shared with you are not included, nor are SharePoint or Teams libraries.
Local Files experimental
macOS or Linux collector Folder paths
Documents in the folders you choose on the collector's own machine — text, markdown, PDF, Office and OpenDocument files, among others — with text extracted. Per device: each machine indexes its own folders. See Local Files.

Web

Source What it adds
Chrome Bookmarks
any collector Local files
Bookmarks as documents, linked to the captured web page when one exists. A bookmark remains a pointer and does not stand in for the page or a structured source document that has the same URL.
Browser History
any collector Local files
Visit, daily-rollup, and search-term analytics tables, plus a daily browsing summary document. Reads Chrome, Brave, Edge, and Vivaldi on any collector, plus Safari and Arc on a macOS collector. Omnesis reads private copies of the browser databases and never modifies the originals.
Web Pages
gateway Paired extension
The full text of pages you visit, captured by the paired browser extension as one document per page, plus a page-visits analytics table. Each visit records the paired browser and the Chrome profile name you entered during pairing, so visits from different profiles stay apart; a page document names the profile that last changed it. Omnesis never fetches URLs it finds in other sources — only pages you open in the browser are captured. When another source indexes the same item (a GitHub issue, say), links prefer that source's document and keep the captured page attached to it.

Phone & device activity

Source What it adds
Apple Health
iPhone In-app toggle
Typed analytics tables for activity, sleep, vitals, body, nutrition, mindfulness, and mood, plus summary documents for workouts, mindful sessions, mood logs, and each night of sleep. Shared across your Apple devices: they all read the same HealthKit library.
Health Connect
Android In-app toggle
Typed analytics tables for activity, exercise, sleep, vitals, body, nutrition, cycles, and mindfulness. Per device: each Android phone adds its own data.
Photos & Screenshots
iPhone Android In-app toggle
Text found in your photos and screenshots, recognized by on-device OCR, plus place names and scene labels derived on-device. Only that derived text is indexed — the image itself never leaves the phone. Per device: each phone indexes its own library, so a photo synced to several phones through a cloud service appears once per phone.
Activity Segments
iPhone Android In-app toggle
Movement segments as analytics rows, plus one movement-summary document per day. Per device: each phone or tablet adds its own data.
Location Visits
iPhone In-app toggle
Places you spend time — each stay's arrival, departure, coordinates, accuracy, and resolved place details as an analytics row, plus one document per visit. Per device: each iPhone or iPad adds its own data.
App Usage
Android In-app toggle
Per-app usage sessions and daily totals as analytics tables, plus a daily attention-timeline document. Per device: each Android phone adds its own data.
Apple Call Log
macOS collector Full Disk Access
Calls as analytics rows plus per-day call-log documents; callers feed the people graph. It reads the iCloud-synced call history, so iPhone calls land too, and several Macs on one iCloud account host it as one shared source. Calls stay in the analytics table after they age out of the device's history.
Call Log
Android In-app toggle
The same call rows and per-day documents from an Android phone. Per device: each phone adds its own calls. Only the Android app you build yourself includes it; the Google Play app leaves out both the source and its permission.
Apple Voicemail
macOS 26+ collector Full Disk Access
Apple's locally synced voicemail transcripts as searchable documents; callers feed the people graph. The Phone app must stay running on the collector host to pull new voicemails from iCloud, so set it to open at login.
Screen Time
macOS collector Full Disk Access
App-session and daily screen-time analytics tables, plus a per-day digest document. Omnesis reads a private copy of the macOS activity database and never modifies the original. Per device: each Mac adds its own activity.

Finance & fitness

Source What it adds
Strava Activities
any collector OAuth
Activities, splits, best efforts, laps, segment efforts, zones, streams, comments, kudos, gear, and athlete profile, zones, and stats as analytics tables, plus a summary document per activity. Each installation needs its own Strava API app, because Strava caps a shared app at one connected athlete; the first add flow walks you through registering it.
Coinbase
any collector API key
Balances, holdings, orders, fills, and transactions as analytics tables, plus transaction documents. Several portfolios can be connected, one API key each.
Bank account (Enable Banking)
any collector PSD2 consent
Accounts, balances, and transactions from European banks as analytics tables, plus transaction documents; one instance per connected bank.
Bank accounts (Lunch Flow)
any collector API key
Bank accounts, balances, and transactions as analytics tables, plus transaction documents. Several keys can be connected, as long as they cover different bank accounts — the same account reached twice would have the two connections overwrite each other.
Bank account (Plaid) experimental
any collector Plaid sign-in
Transactions from the banks Plaid covers — strongest in the United States and Canada — as documents, plus daily balance and holdings tables; one instance per connected bank. It needs a Plaid developer app of your own. See Plaid.

Omnesis itself

Source What it adds
Omnesis Notes
gateway Paired device
Quick notes captured with omnesis note, the portal's Tell Omnesis page, the mobile apps, Siri or Android voice assistants, and Apple Watch, indexed as one searchable document per day. No agent model is needed. The Sources lists show it as a read-only row; to amend or delete a note, use Tell Omnesis, and the day's document rebuilds from what remains. There is nothing to sync, pause, or remove.
Omnesis Chat
gateway Built-in
Your conversations with the agent, indexed back into the corpus as searchable documents with citation links.
Agent conversations
gateway Paired device
Conversations from an external agent harness connected with omnesis connect — see OpenClaw and Hermes. The installed plugin pushes its transcript to the gateway, which renders a document per conversation per day.

Experimental sources

Plaid and Local Files are experimental. They need more testing, and their behaviour, settings and stored data may change between releases.

A collector offers experimental sources only when it runs with OMNESIS_EXPERIMENTAL=1. The collector reads the flag from its own environment, so set it on each collector that should offer them; a flag on the gateway alone does not add them to + Add source. With the flag off, the picker leaves them out and a collector skips any it already hosts, saying why in its log.

For a collector installed as a service, add the variable to its unit. Re-running service install rewrites the unit from the flags you pass, so repeat the ones it was installed with, such as its keyring flags, then restart it:

❯ omnesis service install collector --env OMNESIS_EXPERIMENTAL=1

❯ omnesis service restart collector

Plaid (experimental)

Plaid connects banks in the countries you choose; its coverage is strongest in the United States and Canada. Plaid has no shared application for third-party tools, so you create your own Plaid developer app and configure it once: its client ID, the secret for the environment you use, that environment (sandbox or production), and the countries whose banks you want offered. Sandbox is free and uses Plaid's test banks. Real banks need Production access, which Plaid grants per team and bills per connected bank. The first add walks you through the app credential, or set it directly:

❯ omnesis creds set plaid

Adding a bank opens a sign-in page that Plaid hosts. Omnesis shows you a link, you complete the sign-in there — including any redirect to the bank's own website — and the source appears once Plaid reports the connection. The gateway hosts no callback, so the link works from any browser on any device.

Local Files (experimental)

Local Files indexes documents on the collector's own machine — the folders you name, nothing else. There is no account and nothing to revoke. It runs on macOS and Linux collectors and reads plain text, markdown, CSV, JSON, HTML, PDF, Word, Excel, PowerPoint, OpenDocument, RTF, email (.eml), calendar (.ics) and wallet pass files.

The same file in two places is found once: a PDF or office document on disk is matched against mail attachments and cloud files by its extracted text, so a result can show where the file came from. It is a per-device source, so a result names the computer that holds the file.

Managing sources

Every source-management task is available both in the portal's Sources page and under omnesis sources. Phone-hosted sources are the exception: they are turned on and off in the mobile apps, not from the portal or the CLI.

Adding a source

In the portal, open Sources and choose + Add source. In the CLI, omnesis sources add opens the same picker, or you can name the source type directly. The add flow walks you through the sign-in, API key, QR code or operating-system permission the source needs, then starts the first sync.

# interactive picker

❯ omnesis sources add

# or name the source type directly

❯ omnesis sources add gmail

With more than one collector paired, the flow asks which one hosts the new source; --device <collector> answers that up front. A source that reads a folder, such as an Obsidian vault, also takes the path: omnesis sources add obsidian-notes ~/Vaults/Work --device <collector>. The path is checked on that collector, so ~ and relative paths refer to its machine, not the one running the CLI.

Most sources take several accounts. Run the add flow again and sign in with a different account: two mailboxes, two Notion workspaces, or two phone numbers each become their own source, identified as <type>:<account> (for example gmail:maya@example.com) and synced, paused, and removed independently. Your browser may need to be signed out of the platform, or signed in to the account you want, for its account chooser to offer it. Sources that read one local store — the Apple sources, Things, Screen Time, Local Files, and the coding-agent sources — take one account per machine, and show as already configured once set up on that collector.

Google's OAuth client

Omnesis ships no Google OAuth client. Google requires a security assessment before one shared client may read Gmail, so each installation registers its own client, in a Google Cloud project you own, and signs in through it. The first time you add a Google source, the add flow walks you through the registration, which takes about five minutes: create a project, enable the Gmail, Google Calendar, Google Drive and People APIs, configure the consent screen for External users, publish it, then create an OAuth client of type Desktop app and paste its client ID and secret. In the portal the same wizard opens when you choose + Add source for a Google source and no client is configured. Additional Google accounts reuse the client you registered.

# which providers have credentials configured

❯ omnesis creds list

# run the Google wizard again, to replace the client

❯ omnesis creds set google

Publish the consent screen rather than leaving it in testing. A client in testing signs in only the accounts listed as its test users, and Google expires its sign-ins after seven days, so every Google source would ask you to sign in again each week. Publishing needs no Google verification for your own use: the first sign-in shows a “Google hasn't verified this app” warning, which you pass with Advanced → Continue.

Day-to-day tasks

Each task names the portal action on the Sources page first, then the CLI command.

Task How, and what happens
Sync now Sync, or omnesis sources sync <id>.
Runs an incremental sync without waiting for the next scheduled one. --wait blocks until it finishes.
Pause Pause sync (keep data), or omnesis sources pause <id>.
Stops syncing on every device that hosts the source. Indexed data and sync progress stay. Resume sync or omnesis sources resume <id> picks up where it stopped.
Sign in again The Sign in again banner, or omnesis sources reauth <provider>:<account>.
Renews the sign-in for every source under that account (for example google:maya@example.com covers Gmail, Calendar, Drive, and Contacts). It must resolve to the same account; add a different account as a new source instead. Sources that read local files have nothing to renew.
Inspect Debug, or omnesis sources debug <id>.
Shows the source's sync status, cursor, and storage statistics.
Rebuild Resync, or omnesis sources resync <id>.
Deletes everything the source has indexed and syncs it again from scratch. Use it only when the indexed data must be rebuilt. The CLI asks first; pass --yes in scripts. Pages captured by the browser extension cannot be resynced, because the gateway has nowhere to fetch them again from. A phone source is resynced from the CLI only; the phone sends its data again.
Move + Add source on the other machine, which offers Move, or
omnesis sources move <id> --device <collector>.
Hands a source to another collector. Indexed data stays; the old collector stops syncing it, and the new one signs in with its own credentials if the source needs them.

Sources hosted by more than one device have extra tasks — joining a device, detaching one, and re-syncing one device only. They are covered in Sources on several devices. When a source reports an error instead, start from Troubleshooting.

Removing a source

Remove in the portal, or omnesis sources remove <id>, removes the whole source for every device that hosts it, including devices that are offline; they learn about it when they reconnect. Syncing stops immediately, and a source pushed from a phone or the browser extension stops being accepted. To keep the data instead, pause the source.

Everything the source ingested — documents, analytics rows, search-index entries, and anything derived from them — is then deleted in the background, queued behind indexing so it does not interrupt work in flight. On a large mailbox that takes several minutes. Until it finishes, the source stays in the list marked removing, and its document count falls as the purge drains. If the gateway stops partway through, it resumes the purge on the next start. You cannot add the same account again until the removing row has gone; the re-added source then syncs from scratch.

People survive the removal on the strength of what remains. An email address or phone number is kept while any other connected source still names it, so removing a mailbox does not erase a contact your address book also holds. An identifier no remaining source names goes with the purge, and a person left with none goes with it.

Removal deletes data from the gateway only. It does not delete the originals on the provider or the phone, retained backups, or exported copies, and it does not promise physical secure erasure. To delete one document rather than a whole source, see deleting a document.

Sources on several devices

A source normally lives on one device: the collector or phone that syncs it. Some source types can also be hosted by several devices at once — Apple Notes on two Macs signed in to the same iCloud account, or Health Connect on two Android phones. Each device that hosts a source is a member of it, and the source type fixes how its members share the work. There are three ways:

One machine at a time

  1. One devicesyncs the source
  2. Gatewaykeeps that device's data

Move it to hand it to another machine.

Shared

  1. Every memberreads the same upstream data
  2. Gatewaykeeps one copy of each item

Detaching a member keeps the data.

Per device

  1. Each membersends its own, different data
  2. Gatewaykeeps each member's data apart; search shows it all

Detaching a member deletes its data.

The three ways a source can be hosted: by one machine at a time, shared by members that read the same data, or per device, where each member adds its own.

The portal and omnesis sources name the mode with its code word, shown here under each plain name.

Mode How it works
One machine at a time
exclusive
One device hosts the source. Adding the same account elsewhere is refused and names the current host; move the source instead. There is no member to detach.
Sources: every collector source not listed below, including Apple Contacts and Apple Calendar, whose local databases have no item identifiers that are stable across Macs.
Shared
replicated
Every member reads the same upstream data with its own sync progress; the gateway keeps one copy of each item. Detaching a member stops it contributing; the data stays.
Sources: Apple Notes, Reminders, iMessage, Call Log, and Voicemail on Macs signed in to the same iCloud account; Things; Apple Health on iPhones.
Per device
partitioned
Each member sends data only it has. The gateway keeps each member's data apart, and search and SQL show all of it together. Detaching a member deletes its data from the gateway; other members' data stays.
Sources: Screen Time; Claude Code, Codex, and Pi sessions; Local Files; on phones, Photos, Activity Segments, Location Visits, Health Connect, Android Call Log, and App Usage.

Adding a device to a source

Start + Add source for the source type and pick the new machine as the destination. The flow first discovers which account that machine has. If the account is already configured on another device and the type allows several members, it offers to join; a different account becomes a separate source. On a second Mac, for example, the same iCloud account joins Apple Notes, while a different iCloud account becomes a second Apple Notes source. For a type that allows one machine at a time, the flow names the current host and offers to move the source.

From the CLI, omnesis sources join <id> --device <device> adds a member, and the portal's Join a device… action does the same. Each member syncs with its own credentials, so if the source needs a sign-in, run omnesis sources reauth <provider>:<account> --device <device> for it. A join is refused when the device cannot host the type or holds a different account. Update a collector before joining it to a shared or per-device source; an out-of-date collector is not offered as a destination.

A source that reads a folder on each machine — Claude Code, Codex, and Pi sessions, or a custom Things database — asks for that path once the destination is chosen, and the path belongs to that member only. Where + Add source offers Configure <device>, use it to change one member's path without touching the others. The shorter omnesis sources join uses the source's default path.

Phones are different: each phone and tablet is paired separately, and phone sources are turned on in the app, before the operating-system permission prompt, rather than joined from the portal or the CLI. When another iPhone already sends Apple Health, the app offers Keep using the other iPhone, Use both iPhones, or Use only this iPhone. Turning on a per-device source on a second phone adds that phone's data and keeps the first phone's history. See Mobile apps.

Members, detaching, and re-syncing

omnesis sources members <id> lists a source's mode and each member with its own sync status; the portal's Sources page shows the same under the source.

omnesis sources detach <id> --device <device>, or Detach a device… in the portal, stops one member hosting the source without removing it. What happens to the data depends on the mode, as in the table above, so the CLI and the portal both say it before you confirm; pass --yes in scripts. The last member cannot be detached — pause the source to keep its data, or remove it. On a phone, turning a source off in the app asks the gateway to detach that phone, with the same outcome.

omnesis sources resync <id> --device <device> re-syncs one member of a shared or per-device source and leaves the others alone. On a per-device source, that member's data is deleted and synced again; on a shared source, only that member's sync progress starts over, because the data is shared.

If shared members disagree about whether an item was deleted — one reports it gone while another still has it — Omnesis keeps the item until every member that holds it agrees. omnesis sources counts them as deletions in dispute, the member holding them shows Keeping N items that <device> no longer has in the portal and the apps, and omnesis doctor warns. The disagreement clears once the item is deleted on the device that still holds it, or once you delete the document for good.

What a source contributes

Searchable documents. Most sources emit documents — emails, notes, messages, pages, per-day summaries — into the document store, where they are indexed for keyword and vector search and available to the agent.

Typed analytics rows. Structured sources emit typed rows into analytics tables instead of, or alongside, documents: heart-rate samples, bank transactions, browser visits, screen-time sessions. These are queryable with plain SQL — see Search. Many sources contribute both, binding a readable summary document to the underlying rows.

People-graph identities. Contacts, email correspondents, message participants, callers, and meeting attendees become identities in the people graph, so one person's activity is connected across every source they appear in.