{
 "schema_version": "1.0",
 "page_kind": "article",
 "pack_kind": "generate",
 "slug": "phone-home-register",
 "title": "CallHome: what local AI tools send out by default, in one table",
 "dek": "A register of what the local AI programs we have run or read, and the system software around them, send out by default, with the switch that stops each call and whether we proved it: how to read a row, what it leaves out and how to dispute one.",
 "published": "2026-10-12",
 "series": [
  "notes"
 ],
 "licence": "CC BY 4.0",
 "status": "pending-judge",
 "pack_note": "no judge is seated, so every chip is held",
 "notice": "items with published:false are held and are not this page's published words",
 "source": {
  "url": "https://research.strata2signal.com/phone-home-register/",
  "md_url": "https://research.strata2signal.com/phone-home-register/index.md",
  "md_sha": "6cb9731a44c7d0b07c6137d5446c9a8ba6d13f1d19b377bb65f8fc2bf8ec047f",
  "html_sha": "b570baed45ad38fef6304d7468eb62afd08e3ee78a1272dbe382741697bd13f9",
  "anchors_sha": "c187821617f138c9301e93bbbeed90d5156de9c3cf19c392962f5fef877b18d6"
 },
 "short": {
  "paragraph": "CallHome is one sortable table, one line per product and version, for the local AI programs we have run or read and the system software around them. Each line says whether the program makes a call out with nothing configured, what kind of call it is (a report, a check, a fetch, or a cloud feature you chose), when and to what kind of place, the switch that stops it, and whether we proved that the switch works. Every call on a line carries a grade, measured, witnessed, read or inferred, which caps what it may claim, and a receipt a reader can check. A product's name opens its own page; the whole register is downloadable as files. It describes; it does not rank.",
  "from_dek": false,
  "counts": {
   "words": 892,
   "minutes": 4,
   "tables": 0,
   "kit": false
  },
  "bullets": []
 },
 "sections": [
  {
   "id": "what-callhome-is",
   "heading": "1 · What CallHome is",
   "level": 2,
   "span": [
    1488,
    2413
   ],
   "chunks": [
    [
     1488,
     2413
    ]
   ],
   "chars": 925,
   "digest": "CallHome is a register of programs contacting their makers' servers, known as phoning home. At its first release, it holds 32 products in 60 rows, covering servers, apps, libraries, research engines, model repositories, Ubuntu, and network software. The register includes update checks and crash reports, which are not inherently signs of anything wrong.",
   "digest_skipped": null
  },
  {
   "id": "why-it-exists",
   "heading": "2 · Why it exists",
   "level": 2,
   "span": [
    2413,
    3230
   ],
   "chunks": [
    [
     2413,
     3230
    ]
   ],
   "chars": 817,
   "digest": "The register exists because the authors run local AI themselves and want to know what else on their machines performs telemetry. A call out is not an accusation; most rows print the maker's own stated reason for the call. The register provides information on how to turn calls off.",
   "digest_skipped": null
  },
  {
   "id": "how-to-read-a-row",
   "heading": "3 · How to read a row",
   "level": 2,
   "span": [
    3230,
    4950
   ],
   "chunks": [
    [
     3230,
     4950
    ]
   ],
   "chars": 1720,
   "digest": "The register's first release contains 55 read rows",
   "digest_skipped": null
  },
  {
   "id": "what-it-does-not-cover",
   "heading": "4 · What it does not cover",
   "level": 2,
   "span": [
    4950,
    5662
   ],
   "chunks": [
    [
     4950,
     5662
    ]
   ],
   "chars": 712,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "how-to-dispute-a-row",
   "heading": "5 · How to dispute a row",
   "level": 2,
   "span": [
    5662,
    6622
   ],
   "chunks": [
    [
     5662,
     6622
    ]
   ],
   "chars": 960,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "the-rest-of-the-seminar",
   "heading": "The rest of the seminar",
   "level": 2,
   "span": [
    6622,
    6882
   ],
   "chunks": [
    [
     6622,
     6882
    ]
   ],
   "chars": 260,
   "digest": null,
   "digest_skipped": "credits"
  },
  {
   "id": "who-ran-this-and-thanks",
   "heading": "Who ran this, and thanks",
   "level": 2,
   "span": [
    6882,
    7269
   ],
   "chunks": [
    [
     6882,
     7269
    ]
   ],
   "chars": 387,
   "digest": null,
   "digest_skipped": "credits"
  }
 ],
 "chips": [
  {
   "id": "c-027a43ea",
   "q": "what defines local ai and phoning home?",
   "a": "Local AI refers to programs running AI models on owned machines, such as chat-model servers or image generators. Phoning home describes the process of a program contacting its maker's servers for tasks like update checks or crash reports.",
   "cites": [
    "what-callhome-is"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-b3f93be4",
   "q": "what motivated the creation of the register?",
   "a": "The creators run local AI themselves and previously published a measurement of ONNX Runtime's telemetry on Linux. The register was created to answer what other software on those machines performs similar calls.",
   "cites": [
    "why-it-exists"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-3f001cce",
   "q": "how are the columns in a row organized?",
   "a": "The columns list the product and version, the group, whether it sends by default, the kind of call, the switch, and the receipt.",
   "cites": [
    "how-to-read-a-row"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-ab3cde1a",
   "q": "what meaning do the four grades convey?",
   "a": "The grades measured, witnessed, read, and inferred cap what a row may say. At the first release, the data included 3 measured, 1 witnessed, 55 read, and 1 inferred rows.",
   "cites": [
    "how-to-read-a-row"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-76649dcb",
   "q": "what types of software are excluded from the register?",
   "a": "The register does not cover specific programs like text-generation-webui, LocalAI, Jan, GPT4All, AnythingLLM, KoboldCpp, and whisper.cpp, nor does it cover macOS, Windows, or Linux on ARM builds.",
   "cites": [
    "what-it-does-not-cover"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-63c928a7",
   "q": "what process governs row corrections?",
   "a": "Corrections submitted with a receipt are acknowledged within 7 days and acted on within 14. Until a change occurs, the row displays what was disputed and by whom. Every change is dated, and rows are re-read at least every 90 days.",
   "cites": [
    "how-to-dispute-a-row"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-302e4a3c",
   "q": "how are maker statements handled in disputes?",
   "a": "When a row is disputed, a maker's public statement is quoted beside its row in the maker's own words.",
   "cites": [
    "how-to-dispute-a-row"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  }
 ],
 "related": [
  {
   "slug": "licences",
   "why": "shares ground with § 3 · How to read a row · § How to read this page"
  },
  {
   "slug": "three-librarians",
   "why": "shares ground with § 3 · How to read a row · § The nerd shelf — the numbers, from the shipped configuration"
  },
  {
   "slug": "uncensored-models",
   "why": "shares ground with § 3 · How to read a row · § Read the label, and if you run these files"
  }
 ],
 "thanks": "## Who ran this, and thanks {#who-ran-this-and-thanks}\n\nEvery count on this page is read from the register's own data file at its first release; the receipt behind each row is on the register, by grade. A small (human) team runs the machines and decided what to switch off; a fleet of AI agents read the source, ran the sandboxes, audited them, and read these pages as a stranger would.",
 "kit": null,
 "seat_class": {
  "writer": "gemma-class",
  "judge": null,
  "writer_runtime": "vllm"
 },
 "bench": {
  "bullets_written": 3,
  "bullets_kept": 0,
  "digests_written": 5,
  "digests_kept": 3,
  "chips_written": 8,
  "chips_kept": 7,
  "chips_grounded": 0,
  "chips_published": 0,
  "dropped_by": {
   "new_noun": 0,
   "figure": 0,
   "length": 0,
   "cite": 0,
   "judge": 0,
   "quote": 0,
   "directive": 0,
   "redaction": 0,
   "profanity": 0,
   "identifier": 0,
   "bare_figure": 1,
   "house_voice": 0,
   "editorial": 0,
   "hand-edit": 5
  },
  "new_noun_tokens_checked": [
   "1",
   "14",
   "3",
   "32",
   "55",
   "60",
   "7",
   "90",
   "AI",
   "ARM",
   "AnythingLLM",
   "GPT4All",
   "Jan",
   "KoboldCpp",
   "Linux",
   "LocalAI",
   "ONNX",
   "Runtime's",
   "Ubuntu",
   "Windows",
   "x86-64"
  ],
  "new_noun_tokens_withheld": 0,
  "figure_definition": "v3",
  "figure_boundary": "guarded",
  "drops": [
   {
    "kind": "bullet",
    "reason": "bare_figure",
    "item": "the first release of the register contains 55",
    "detail": "the cited section writes this figure as '55 read' and the bullet prints '55' alone"
   },
   {
    "kind": "bullet",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 34,
    "text_sha": "56a39dd49b11",
    "figure": "14",
    "withheld": "one bullet removed from this pack by hand",
    "removed_utc": "2026-10-12",
    "why": "drops the condition and the unit: section 5's clock is for a correction with a receipt, and its 14 takes days from 'within 7 days', which the line leaves out, so it prints a bare 14",
    "detail": "removed from this pack by hand on 2026-10-12 (UTC), after the writer ran and after the gates had counted: drops the condition and the unit: section 5's clock is for a correction with a receipt, and its 14 takes days from 'within 7 days', which the line leaves out, so it prints a bare 14. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "bullet",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 38,
    "text_sha": "b5ac8af9eae7",
    "figure": "86-64",
    "withheld": "one bullet removed from this pack by hand",
    "removed_utc": "2026-10-12",
    "why": "drops the condition its figure stands under: in section 4, x86-64 is the platform of every row we ran or saw running, a read row was never run and each row names the builds it covers, so as a line on what the register covers it says more than the page does",
    "detail": "removed from this pack by hand on 2026-10-12 (UTC), after the writer ran and after the gates had counted: drops the condition its figure stands under: in section 4, x86-64 is the platform of every row we ran or saw running, a read row was never run and each row names the builds it covers, so as a line on what the register covers it says more than the page does. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "digest",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 47,
    "text_sha": "2c8915e99aee",
    "section": "what-it-does-not-cover",
    "withheld": "one section digest removed from this pack by hand",
    "removed_utc": "2026-10-12",
    "why": "drops the condition its figure stands under: Linux on x86-64 is where every row we ran or saw running was, a read row was never run and each row names the builds it covers, so as a line on what the register covers it says more than section 4 does",
    "detail": "removed from this pack by hand on 2026-10-12 (UTC), after the writer ran and after the gates had counted: drops the condition its figure stands under: Linux on x86-64 is where every row we ran or saw running was, a read row was never run and each row names the builds it covers, so as a line on what the register covers it says more than section 4 does. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "digest",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 34,
    "text_sha": "56a39dd49b11",
    "section": "how-to-dispute-a-row",
    "withheld": "one section digest removed from this pack by hand",
    "removed_utc": "2026-10-12",
    "why": "drops the condition and the unit: the clock is for a correction with a receipt, and its 14 takes days from 'within 7 days', which the line leaves out",
    "detail": "removed from this pack by hand on 2026-10-12 (UTC), after the writer ran and after the gates had counted: drops the condition and the unit: the clock is for a correction with a receipt, and its 14 takes days from 'within 7 days', which the line leaves out. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "chip",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 287,
    "text_sha": "c7a4e6c694e4",
    "chip_id": "c-09039310",
    "withheld": "one chip removed from this pack by hand",
    "removed_utc": "2026-10-12",
    "why": "its last clause is not in the cited section: it re-says section 5's sentence about the workshop's practice as the register's own handling of security findings, and 'not a security finding tool' is not section 4's wording",
    "detail": "removed from this pack by hand on 2026-10-12 (UTC), after the writer ran and after the gates had counted: its last clause is not in the cited section: it re-says section 5's sentence about the workshop's practice as the register's own handling of security findings, and 'not a security finding tool' is not section 4's wording. Not a gate drop, and recorded here so the ledger adds up."
   }
  ]
 },
 "generated_utc": "2026-10-12T17:51:07Z"
}
