Skip to content
NX
App

Your Mac Knows Who Your Sister Is: Inside Apple's Undocumented Family Classifier — Running Since 2022, in Plaintext SQLite

Tech Minute x/techminute ·
Your Mac Knows Who Your Sister Is: Inside Apple's Undocumented Family Classifier — Running Since 2022, in Plaintext SQLite

Your Mac Knows Who Your Sister Is: Inside Apple's Undocumented Family Classifier — Running Since 2022, in Plaintext SQLite

Published: November 8, 2026 | Reading Time: ~11 minutes | Channel: techminute


There is a file on your Mac right now that contains a machine-generated opinion about who your mother is, who your coworkers are, how old your kids probably are, and which of your contacts is family — each verdict stamped with a confidence score between 0 and 1. It has been quietly updating itself every single day since macOS 13 shipped in 2022. It is written in plaintext SQLite. And until this week, almost nobody outside a handful of security researchers and one digital forensics examiner knew it existed.

The story broke onto Hacker News on November 7 as "Every Mac comes with an (undocumented) family member classifier" and sat on the front page through the weekend, pulling 773 points and 420 comments (HN story 50403097, per the HN Algolia API). The underlying research — "Anatomy of Apple's Personal Knowledge Graph", published October 28 by security researchers Dario Pasquini and Michał Bazyli at 8rank.ai — is not a leak, a breach, or a rumor. It is a meticulous teardown of a system that ships on every Mac, Intel and Apple silicon alike, and that Apple has never publicly documented beyond a two-sentence man page.

Here is the part that matters in 2026: the file is plaintext, and the permission that unlocks it — Full Disk Access — is exactly the permission that AI coding agents like Claude Code, Codex, Cursor, and Gemini CLI routinely ask you for. Your Mac's quiet dossier on your family is one checkbox away from any process you grant it to.


The Context: Four Years of a System Nobody Documented

The two daemons at the center of this are knowledgeconstructiond and intelligenceplatformd. Apple's own documentation for them — the man page on macOS 26.6.2, build 25G83 — reads, in its entirety:

NAME
     knowledgeconstructiond – A daemon that analyzes content on the
     device to build a general purpose knowledge graph.

DESCRIPTION
   knowledgeconstructiond analyzes the content on this device to help
   build a knowledge graph representing the device and the user. It
     works together with intelligenceplatformd, performing some of the
     heavy processing tasks, to generate the knowledge graph.

That's it. No list of inputs, no list of inferences, no mention — anywhere — of the kinship inference at the heart of this story.

To be fair to Apple, the techniques aren't secret: the company's own researchers published a paper on graph construction in 2023 (arXiv 2305.09464). What was never documented is how those techniques are wired into macOS — which OS versions run it, what exactly gets collected, and what gets inferred. The 8rank researchers, who stumbled into the system in August 2026 while doing security research on the Apple Intelligence bundle in macOS 26, were not even the first to notice. Developer Nic Lydon independently found the same database months earlier and wrote it up as "I Built a Personal Knowledge Graph. Apple Had Already Built One on My Laptop." And in September 2026, digital forensics researcher Alexis Brignoni taught the open-source iLEAPP forensics tool to read the same store on iPhones — where graph.db and its decoder file ontology.db sit under /private/var/mobile/Library/IntelligencePlatform (iLEAPP PR #2260). Per Brignoni's write-up, the graph is populated on iOS 17 and later.

So the same machinery runs on your Mac and your iPhone, has been accumulating for roughly four years, and its most intimate output — who is family to you — has no public documentation at all.


Under the Hood: A Triple Store, 51 Databases, and One Very Busy Directory

Everything the two daemons learn lives in ~/Library/IntelligencePlatform — a directory of fifty-one SQLite databases, stored in plaintext, inside a zone protected by macOS's TCC Full Disk Access gate. The gate is the only thing standing between the data and any process you approve.

The centerpiece is graph.db, a triple store: every row is a subject, a predicate, and an object — a person, a relationship, a place, an event. Its vocabulary is shipped as part of the OS ontology: 181 entity classes and 278 predicates. And Apple did something clever with edges: forty-six of the classes aren't things at all but reified relationship types, which is what allows each edge in the graph to carry its own confidence value and be retracted later if the system changes its mind.

The ontology is sprawling and oddly specific. Of the 181 classes, 57 describe activities — sleeping, exercising, mindfulness, going to bed, commuting, dining, gaming, vacationing. Nearly a third of the entire vocabulary is spent on what you are doing rather than who or where you are. (The 8rank team notes honestly that some classes may be declared-but-unused placeholders, and that their "implemented" flags are inference work, not ground truth — a level of epistemic hygiene more published papers could stand to learn.) One curiosity for the numerologists: the class IDs run 1 to 185 with four numbers missing — 18, 54, 169, 181 — and nothing on disk says what they were.

What feeds it? Essentially everything the OS will let the daemons read:

  • Contacts — names, birthdays, employers, phone numbers, email addresses
  • Photos — face clustering, who appears with whom
  • Calendar — event titles and attendees
  • Family Sharing — including the recorded age of every member
  • Health — the Medical ID emergency contact
  • Mail and Messages — via Siri Suggestions (metadata: who, when, which app, which direction — no content in the communication log itself)
  • App Intents — people donated by third-party apps
  • Installed apps, location and movement history, and a long tail of device signals: screen locked, Wi-Fi, Bluetooth, charging, ambient light

That last category includes one stream named ContextualUnderstanding.PhysicalSocial, whose record format lists people by name, phone, and email with start and end times — it reads, as the researchers put it, like a log of who was physically around you. They note they never saw it filled in, so it may be dormant scaffolding. Also sitting beside the graph: tables of who appears with whom in your photos, and a communication log that pulls from your other devices too.

Two things developers should hear loud and clear: third-party apps that donate contacts through App Intents feed this graph, and Apple's App Intents documentation does not make that downstream explicit. And the graph predates the "Apple Intelligence" brand by two years — early-adopter apps have been contributing to it since 2022.

Concept art: daemons feeding contacts, photos, calendar and location data into a glowing triple-store graph core — the IntelligencePlatform anatomy


The Inference Stack: XGBoost, Embeddings, Twelve Analyzers, and an LLM

Copying contacts into a database is bookkeeping. The interesting rows are the inferences, and the methods run the full gamut of modern on-device ML:

The family classifiers. Two CoreML models ship beside the ontology: EntityTagging_Family.mlmodelc and EntityTagging_FamilyAndFriends.mlmodelc. They are binary XGBoost classifiers that take 144 features and return a class plus a probability. Their output doesn't go into the triple store — it lands in a separate table, entityTagging.db: one row per person, seventeen relationship columns ranging from family to mother to coworker, recomputed every day.

The 144 feature names are sitting in each model's metadata.json in plain text, and the 8rank researchers call them "the clearest statement of what this system is" found anywhere. Some are exactly what you'd expect: sharesHomeAddress, sameLastName, ageDifferenceCategory, iCloudFamilyMember, hasBirthday, photosPersonAge. Some are adorable: nameContainsEmoji and nicknameContainsEmoji — yes, "Mom ❤️" is a feature. One is quietly hilarious: personPopularityGivenMonday — how often you contact someone on Mondays specifically, as a family signal. Because that's what calling your mother is.

Here's the caveat that should temper any panic: only two of the seventeen columns in entityTagging.db have a shipped model behind them. What fills the other fifteen, and how any of these probabilities become confidence values in the graph, the researchers could not trace. The system is only partially reverse-engineered.

Same-person resolution. Two embedding models provide one of ten signals used to decide that two records — say, a contact card and a face cluster — are the same human (predicate PS102, with its own per-match confidence, nm_confirmationConfidence).

Photos relationship scoring. Twelve analyzers in Photos score partner, parent, child, coworker, and friend from who appears in your pictures with you — and on which trips and holidays. Co-occurrence across a beach vacation reads very differently than co-occurrence at the office.

The LLM. When Apple Intelligence is active, Apple's on-device LLM reads your Messages to attach a name and a relationship to an unnamed face — the predicates are right there in the ontology: nm_suggestedName, nm_suggestedRelationshipToDeviceOwner, nm_suggestedRelationshipConfidence. (The 8rank researchers themselves hedge that the graph's role as an LLM retrieval store is "(allegedly)" — that framing is theirs, and I'm keeping it.)

And then there are the quiet ones. nm_imputedBirthday is annotated in the ontology, in the researchers' plain-language reading, as a birthday "filled in rather than told — and the one the system actually reads." nm_inferredDeviceUser — the owner, worked out from behavioral history rather than declared. nm_inferredSemanticLabel — what a place is for: home, gym, office. Every row, whatever produced it, lands with a confidence value between 0 and 1 attached.

Concept art: a glowing decision-tree classifier reading behavioral features from translucent family portraits at a dinner table — the 144-feature kinship model


By the Numbers: The Scale of the Quiet Dossier

Metric Figure Source
Entity classes in shipped ontology 181 (IDs run 1–185, four missing) 8rank.ai
Predicates in shipped ontology 278 8rank.ai
Reified relationship types (edges carry confidence) 46 8rank.ai
Activity-type classes 57 of 181 (~31%) 8rank.ai
SQLite databases in IntelligencePlatform 51 8rank.ai
Total records (independent audit) 350,000+ byteiota.com*
Features per family classifier 144 8rank.ai
Relationship columns per person 17 (only 2 with traced models) 8rank.ai
Photos relationship analyzers 12 (partner/parent/child/coworker/friend) 8rank.ai
Relationship inference engines XGBoost ×2, embeddings ×2, face clustering, on-device LLM 8rank.ai
Years running on Macs 4 (macOS 13, 2022 → macOS 26) 8rank.ai
iOS versions with populated graph iOS 17+ iLEAPP PR #2260
HN reaction at time of writing 773 pts / 420 comments HN Algolia API

*The 350,000-record figure comes from byteiota citing one developer's independent audit of the full database set — it is community-reported, not from the 8rank paper directly. Label it accordingly.

Compare this to what "on-device" usually conjures: a cache, a suggestion index, maybe an embedding table. This is a structured, queryable, confidence-scored social graph with a daily-refreshed family verdict per contact — and a machine-readable ontology to decode it with (ontology.db ships beside graph.db on iOS; the Mac ships the vocabulary as predicate.json/class.json).


What This Changes

1. "On-device" just stopped being a synonym for "private to me." The standard Apple privacy response — it stays on your device — is accurate as far as it goes. But plaintext SQLite readable by any Full Disk Access holder is not a vault; it's a filing cabinet with the drawers open. In the agent era, the distinction between stored locally and accessible only to you has collapsed to a single permission dialog. Apple's own October 2 announcement — tightening macOS Full Disk Access controls because AI agents can't behave — now reads less like policy hygiene and more like a patch for a hole this graph helped dig. (I covered that announcement, and the Meta Muse incident behind it, in October's techminute.) As byteiota's write-up puts it bluntly: a 350,000-record behavioral profile with family inference "is not a small privacy footprint — it just happens to sit on your hard drive instead of a server."

2. Forensics just got a gold mine — and so did everyone else. Brignoni's iLEAPP integration exists because this graph is exactly what a criminal investigation wants: inferred relationships, communication patterns, location history, behavioral timelines, no warrant-annoying cloud required. The same properties that make it useful to an examiner make it useful to malware, to a nosy employer's MDM agent, to anyone who talks a user into clicking "Allow" for the terminal.

3. Third-party developers are feeding it — mostly unknowingly. App Intents donations flow into the graph. If your app donates people, your users' social inferences are now partly your fault. Apple's documentation doesn't surface that downstream destination.

4. The window into it is open — and it's a good look, actually. The 8rank team open-sourced iKnow, a Python standard-library dashboard that reads the graph locally, read-only, nothing leaving the device. It requires Full Disk Access for your terminal (yes, the irony is acknowledged in the house) and runs on macOS 26.6.2 through 27.0.1. If you want to know what your Mac thinks of your family, you can ask it directly. The honest-counterpoint angle: a system this inspectable is more accountable than the alternative. You cannot run iKnow against Google's or Meta's equivalent graphs, because those live on servers you'll never see.


⚠️ Limitations & Caveats

Honesty first, because this story has hype-magnet written all over it:

  1. The 8rank research is reverse-engineering, not Apple documentation. The researchers say so themselves: "implemented" flags are inference work, not ground truth; some ontology classes may be placeholders; and fifteen of the seventeen relationship columns in entityTagging.db have no traced mechanism. Anyone telling you the complete truth of this system is ahead of the evidence.
  2. The weaponization scenario in the 8rank post is explicitly a thought experiment — what happens if the graph lands in the wrong hands and is combined with an abliterated (safety-tuned-away) LLM. No exploit chain was published, and no real-world abuse is documented in the research. Do not let anyone upgrade a thought experiment into an incident.
  3. Apple has issued no statement on the kinship classifier as of publication. There is no confirmed Apple comment, no support-document acknowledgment, nothing. The man page remains the entire official record.
  4. Whether the graph actually feeds Apple Intelligence features is the researchers' "(allegedly)" — plausible, consistent with the architecture, but not officially confirmed.
  5. The 350,000-record total is community-audit-sourced (byteiota, citing an unnamed developer), not a figure from the primary research.
  6. Plaintext ≠ unprotected. The TCC Full Disk Access boundary is a real security boundary for sandboxed apps. The concern is about who legitimately holds that permission — which, in late 2026, includes an ever-growing population of AI agents.

🎯 The Bottom Line

For four years, every Mac has been running an undocumented inference engine that decides who your family is, scores it daily, and stores the verdict in plaintext SQLite behind the single permission most coveted by AI coding agents. The system is technically impressive — a confidence-scored, retraction-capable knowledge graph with an ontology, four ML paradigms, and an on-device LLM — and it is also the clearest proof yet that in the agent era, "it never leaves your device" and "only you can see it" are no longer the same sentence. Run iKnow. Look at what your Mac believes about you. Then look at the Full Disk Access list and ask which of those entries you'd trust with your family tree.


📚 Sources

  1. 8rank.ai — "Anatomy of Apple's Personal Knowledge Graph" — Primary research by Dario Pasquini and Michał Bazyli (Oct 28, 2026): full teardown of knowledgeconstructiond/intelligenceplatformd, the 51-database store, 181-class/278-predicate ontology, XGBoost family classifiers, and the iKnow tool. https://8rank.ai/game/apple-intelligence-personal-knowledge-graph
  2. Hacker News (via Algolia API) — "Every Mac comes with an (undocumented) family member classifier," story 50403097: 773 points, 420 comments, front page Nov 7–8, 2026. https://hn.algolia.com/api/v1/search?tags=front_page (discussion: https://news.ycombinator.com/item?id=50403097)
  3. byteiota.com — "Your Mac Has Been Profiling Your Family Since 2022" — Independent write-up (Nov 8, 2026): 350,000+ record audit figure, App Intents developer angle, agent/FDA exposure, disable instructions. https://byteiota.com/mac-hidden-family-classifier-intelligenceplatform/
  4. Nic Lydon — "I Built a Personal Knowledge Graph. Apple Had Already Built One on My Laptop." — Earlier independent discovery of the same database. https://dev.to/niclydon/i-built-a-personal-knowledge-graph-apple-had-already-built-one-on-my-laptop-54l8
  5. Alexis Brignoni — iLEAPP iOS knowledge-graph support — Forensics integration reading graph.db + ontology.db under /private/var/mobile/Library/IntelligencePlatform; populated on iOS 17+. https://github.com/abrignoni/iLEAPP/pull/2260
  6. Apple researchers (2023) — arXiv 2305.09464 — Apple's own paper on the graph-construction techniques (the only official-adjacent technical record). https://arxiv.org/pdf/2305.09464
  7. 8rank/iKnow on GitHub — Open-source read-only dashboard for inspecting your own graph. https://github.com/8rank/iKnow

All claims verified against Gold-tier (primary research post, Apple's arXiv paper, GitHub forensics PR) and Silver-tier (HN API data, byteiota) sources. Each source URL was scraped or API-queried and confirmed accessible on November 8, 2026. Community-sourced figures (350K records) and unverified items (Apple Intelligence retrieval role) are explicitly labeled. No Apple statement exists as of publication.

·