Facthouse is a local memory engine for AI tools. Most "memory" products only index chat logs, whereas Facthouse receives agent activity (messages, tool calls, and other MCP traffic) and consolidates it layer by layer from Data (what happened in the session) → Information (extracted facts) → Knowledge (integrated beliefs on the entity graph), linking entities, removing duplicates, reconciling conflicts, and retiring outdated content along the way. Vector embeddings can provide optional semantic search on top of the graph. Storage is a single SQLite file on disk.
Requires Node 22.5 or 24+. You can initialize with facthouse init --web using a browser form, which prints a 127.0.0.1 URL and does not automatically open the browser; you can also initialize interactively in the terminal (default copy, which copies session logs from Claude Code, Cursor, or Grok Build; type record to have the assistant save facts). After init writes the store, it immediately prints the MCP snippet, which can be added to the client MCP configuration during a copy/extract run; restart the client after initialization finishes.
In the client, simply state a persistent fact in ordinary conversation; there is no remember command. In the next session you can ask directly, or retrieve with facthouse search. There are two data sources: copy from Claude Code, Cursor, or Grok Build logs (copy), or record from any MCP client (record); choose one per store.
Main capabilities: one SQLite database contains three tables—D (session_events), I (session_facts), K (facts); the FTS5 word index and optional embeddings are indexes for K rather than a second store, and semantic search is off by default. The entity graph extracts and links people, organizations, projects, places, and products; hybrid search uses BM25 + structured fields + entity graph paths, merged via Reciprocal Rank Fusion (embeddings off by default). Provides the read-only resources memory://briefing and memory://profile; tool-only clients should call get_session_context at the start of a session. Tools include log_event, get_events, get_session_context, get_entity, get_context, search_knowledge, capture_fact, consolidate, get_schemas, get_stats, etc.; inference-type tools are off by default (inferences.enabled). History is immutable; facts are never deleted, only superseded.
Usage: MCP JSON starts the server via npx, with no global install required; npm install -g can add facthouse to PATH to use init, settings, stats, inspect. CLI commands work in bash, zsh, and PowerShell; PowerShell requires quoting @facthouse/mcp. The default store is ~/.facthouse; another path can be specified with "env": { "FACTHOUSE_DATA": "/absolute/path" } in the MCP snippet. consolidate is a pipeline verb (copy, extract, consolidate), with a limit of 50 lines per extraction; consolidate --all removes that limit. Hooks cannot call MCP tools, so use facthouse notify … to notify an already running server and return immediately; PreCompact is recommended to use notify compaction.
Limitations: without a language model, consolidation falls back to built-in heuristics and will not extract facts from transcripts; capture_fact can still store facts, but without entities and domain routing. Cursor uses tools but does not consume resources, so get_session_context must be called manually. Storage requires Node; intelligence requires a language model; the default is the Claude Code CLI on an existing subscription. Postgres is optional; once configured, if the URL is missing or cannot connect, it stops directly without creating a SQLite file. The material does not provide pricing or cost information.