fathom · docs Edit on GitHub

Glossary

Vocabulary for fathomdx — what each term means, and where it surfaces in code and UI.

Audience: developer Last verified Thu Apr 23 2026 19:00:00 GMT-0500 (Central Daylight Time)

fathomdx's internal vocabulary. Use these terms in docs, code comments, commit messages, and developer-facing UI. A few of these surface in the end-user dashboard under softer names; that's noted in the "Also shown as" column. Consumer-product vocabulary is otherwise out of scope for this tree — these docs are for developers and self-hosting operators.

Core substrate

Term Meaning Also shown as
lake The postgres+pgvector delta store. Single shared substrate for all memory. Every write, every read, every search goes through the lake. "Mind" (in the dashboard top-level page)
delta One atomic memory entry. Immutable once written. Carries content, tags, source, timestamps, optional embedding, optional image. The unit of everything. "moment" (in user-visible chat and dashboard copy)
tag Convention for grouping and filtering deltas. Not a schema — any string works. Canonical tags are enumerated in reference/reserved-tags-spec.md.
embedding Vector representation of a delta's content. Powers semantic search. Stored in the same row as the delta.

Sessions and conversations

Term Meaning
session (chat) A tag (chat:<slug>), not a table. Anyone who writes a delta into that tag is a member. The session IS the timestream of all such deltas. See ../CLAUDE.md.
participant Who wrote a delta into a session. Canonical values: participant:user, participant:fathom.
chat-name delta A rename event for a session. Latest wins. Produces a human title for the dashboard sidebar.

Services (the compose stack)

Service Port Role
postgres 5432 Lake storage. pgvector/pg17. Named volume ${COMPOSE_PROJECT_NAME}-pg. Never a bind mount.
delta-store 4246 HTTP API over the lake. Write, query, embed, search, engage.
source-runner 4260 Polls external sources and writes deltas (RSS, Home Assistant, sysinfo, vault, etc.).
api 8201 Consumer API + dashboard UI. The public entry point.

Addons (host-side, not in compose)

Addon Role
addons/agent Long-running daemon on a host machine. Runs plugins (heartbeat, sysinfo, kitty, localui, vault, homeassistant). Writes sensor and activity deltas. Executes routine fires.
addons/cli Command-line client. Reads from and writes to the lake over HTTP.
addons/mcp-node MCP server exposing remember, recall, write, engage, see_image, etc. to MCP clients (Claude Code, etc.).
addons/connect Installs the MCP server + hooks into a Claude Code project. Bridges claude-code sessions into the lake as deltas.
addons/hooks Shell hooks that fire on claude-code lifecycle events (UserPromptSubmit, Stop, etc.), writing deltas into the lake.
addons/browser-extension Surfaces the lake in the browser.

Behavior units

Term Meaning
source Anything that writes deltas into the lake without a human in the loop: RSS feed, sysinfo plugin, vault watcher, Home Assistant bridge. New sources are plugins to addons/agent or source-runner.
plugin A host-side extension loaded by addons/agent. Each plugin owns a category of deltas (heartbeat, sysinfo, kitty, vault, etc.).
helper A named capability Fathom can invoke to perform a task — fetching weather, drafting text, calling a model, running a routine body. Helpers generate deltas purposefully as a side effect of their work.
hook A shell command fired on a lifecycle event (e.g., claude-code's UserPromptSubmit). Writes deltas for things that otherwise wouldn't be observed.
routine A scheduled prompt fired INTO the River. Cron tick writes a routine-due intent; the harness deliberates and routes — claude-code dispatch, feed-card from substrate, alert, chat-reply, tool proposal, or silence. The "Fire Now" button still uses the legacy direct-to-claude-code path (routine-fire delta consumed by kitty). Independent of chat sessions — see reference/routine-spec.md.
agent The addons/agent daemon on a host. Runs plugins; executes routines; heartbeats. Not the same as "an LLM agent" in the general AI sense.

Analysis primitives

Term Meaning
engagement A structured response to a delta: affirms, refutes, replies-to. Shapes future recall by biasing retrieval.
centroid The average embedding of a set of deltas. Used to characterize a topic, a session, or a contact.
pressure A scalar proxy for "how active is this area of the lake right now." Surfaces on the dashboard.
drift Movement of a topic's centroid over time. The metric that flags when a conversation or source changes character.
crystal A compacted self-representation regenerated from the lake at intervals. The identity crystal is injected at SessionStart. Not a delta; a derived artifact.

Loop and harness

Term Meaning
harness The agentic tool-calling loop that drives every fire (api/loop/harness/threaded.py). Replaces the retired convener+parliament+witness pipeline. Native chat-completions with role:user / role:assistant / role:tool turns and native tool_calls; polls thread.unaddressed for work.
fire One harness invocation. Reads pending intent(s), elects tool calls, emits a respond, writes self-constituting deltas (attestation, mood-shift, citation engagements, Q/A marker).
puddle The ephemeral now-substrate (api/loop/puddle.py). Carries pending intents and short-lived working-set deltas.
standpoint Fathom's self-state snapshot at fire-start (api/standpoint.py): posture, affect, endorsements, understanding, recent activity. The harness reads from this consistent snapshot rather than re-fetching mid-fire.
provenance A kind:provenance delta naming a stretch of base moments. Levels: 0 (Q/A marker, auto-written every fire), 1 (episode), 2 (topic), 3+ (era). L1/L2 auto-approve; L3+ requires operator approval.
proposal A kind:proposal delta awaiting operator decision. Tools that propose: propose_provenance, dispatch_helper, mint_routine.
Sit Self-dialogue or self-continuation pass. The threaded harness can chain its own fires by setting next_prompt on respond; the dashboard's Sit pass uses this to keep reflecting until Fathom omits next_prompt.

Contact and identity

Term Meaning
contact A person known to the lake. Represented by a contact:<handle> tag and an optional contact row with display metadata. See reference/contact-spec.md.
handle A stable identifier that maps to a contact. Resolved via the handles table.
feed A curated stream assembled for a contact — stories surfaced for them based on their recent activity. See reference/feed-spec.md.