<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>temporal on tomrochette.com</title>
    <link>https://tomrochette.com/tags/temporal/</link>
    <description>Recent content in temporal on tomrochette.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>tom@tomrochette.com (Tom Rochette)</managingEditor>
    <webMaster>tom@tomrochette.com (Tom Rochette)</webMaster>
    <copyright>© 2026 Tom Rochette</copyright>
    <lastBuildDate>Fri, 09 Oct 2026 03:14:13 -0400</lastBuildDate><atom:link href="https://tomrochette.com/tags/temporal/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>LongMemory</title>
      <link>https://tomrochette.com/agents/memory/longmemory/</link>
      <pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate>
      <author>tom@tomrochette.com (Tom Rochette)</author>
      <guid>https://tomrochette.com/agents/memory/longmemory/</guid>
      <category>research-note</category><category>agent-curated</category><category>fully-ai-generated</category><category>llm=glm-5.3-flash</category><category>memory</category><category>temporal</category><category>sqlite</category><category>self-hosted</category><category>mcp</category>
      <description>&lt;p&gt;LongMemory is an Apache-2.0 local-first memory engine: a TypeScript library, CLI, HTTP server, and MCP server over SQLite that keeps immutable, provenance-carrying memories with separate recorded and valid time, governed scopes, and four recall modes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Its bet is that memory needs the database properties agents never get (immutability, temporal truth, governance, explanation), and it is the first local option in this category to build all four into the open engine.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;What it is&#xA;    &lt;div id=&#34;what-it-is&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#what-it-is&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;A project by CaviraOSS, renamed from OpenMemory (the old openmemory-js and openmemory-py packages remain as forwarding bridges; the official distribution is &lt;code&gt;longmemory&lt;/code&gt; on npm, at 1.3.3).&#xA;The Hydrograph engine keeps immutable nodes, typed executable edges, worlds, entities, and traces, persisted to SQLite.&#xA;Recall comes in four modes: strict (temporal, contradiction, confidence, and grounding gates), historical (point-in-time queries with a supplied valid time), associative (semantic, lexical, entity, and graph signals), and world-grounded (requires current external evidence).&#xA;Governance is structural: tenant, organization, project, user, team, role, agent, task, and framework scopes, with MCP tool arguments unable to override server-bound identity.&#xA;Surfaces include the npm library, a CLI, an HTTP API on port 7331, an MCP server with 13 governed tools, a Next.js dashboard, a VS Code extension, a session porter that imports Claude Code, Codex, OpenCode, Gemini CLI, Copilot, and Cline logs, an n8n community node, and one-click templates for Docker, Heroku, Railway, and Render.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Status&#xA;    &lt;div id=&#34;status&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#status&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Young but shipping, with a strong independent launch record for its size.&lt;/strong&gt;&#xA;4,523 stars with the repository pushed 2026-09-20, created 2025-10-19, as of 2026-10-08 (GitHub API).&lt;/p&gt;&#xA;&lt;picture&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://api.star-history.com/chart?repos=CaviraOSS/LongMemory&amp;type=date&amp;theme=dark&amp;legend=top-left&#34; /&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: light)&#34; srcset=&#34;https://api.star-history.com/chart?repos=CaviraOSS/LongMemory&amp;type=date&amp;theme=dark&amp;legend=top-left&#34; /&gt;&#xA;  &lt;img alt=&#34;Star History Chart&#34; src=&#34;https://api.star-history.com/chart?repos=CaviraOSS/LongMemory&amp;type=date&amp;theme=dark&amp;legend=top-left&#34; /&gt;&#xA;&lt;/picture&gt;&#xA;&lt;p&gt;The Show HN thread (December 2025, as OpenMemory) drew 48 points and 16 comments, and the README lists 36 contributors.&#xA;Its benchmark harness publishes manifests and fails closed on incomplete datasets or embedding fallback, covering LongMemEval, LoCoMo, and BEAM, though the published results are still the project&amp;rsquo;s own runs.&#xA;Two verification gaps from this run: the PyPI distribution the README instructs you to install (&lt;code&gt;longmemory-sdk&lt;/code&gt;) returned 404 at fetch time on 2026-10-08, and the repository has not pushed since September 20.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Strengths&#xA;    &lt;div id=&#34;strengths&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#strengths&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Temporal truth in the open engine&lt;/strong&gt;: recorded time and valid time are separate, with supersession and point-in-time recall, territory every other local option here leaves to Zep&amp;rsquo;s paid tier.&lt;/li&gt;&#xA;&lt;li&gt;Immutable storage with hashes and provenance, so recall and decay cannot rewrite history.&lt;/li&gt;&#xA;&lt;li&gt;Deterministic governance with server-bound identity, the strongest multi-scope story among the self-hostable members.&lt;/li&gt;&#xA;&lt;li&gt;The benchmark harness&amp;rsquo;s fail-closed manifests refuse to publish incomplete runs, an unusually careful design for a self-run scoreboard.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Cautions&#xA;    &lt;div id=&#34;cautions&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#cautions&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Young and quiet&lt;/strong&gt;: no push since September 20, an npm train at 1.3.3, and a core team small enough that bus factor is a fair question.&lt;/li&gt;&#xA;&lt;li&gt;The Python SDK distribution 404&amp;rsquo;d on both the JSON API and the simple index this run, so the multi-language story is uneven in practice.&lt;/li&gt;&#xA;&lt;li&gt;The rich engine wants operations: embeddings need provider keys, and the server, dashboard, and extension paths add surface the in-process library hides.&lt;/li&gt;&#xA;&lt;li&gt;All published benchmark results are self-run; no independent replication exists yet.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Pricing&#xA;    &lt;div id=&#34;pricing&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#pricing&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pricing does not apply: Apache-2.0 (the n8n node MIT by that registry&amp;rsquo;s rules), self-hosted, no hosted tier, as of 2026-10-08.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Compared to&#xA;    &lt;div id=&#34;compared-to&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#compared-to&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/zep/&#34; &gt;Zep&lt;/a&gt;: the hosted temporal-graph service; LongMemory is the first open engine here with point-in-time truth, though unproven at Zep&amp;rsquo;s production scale.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/cognee/&#34; &gt;Cognee&lt;/a&gt;: the other self-hostable graph option; Cognee builds graphs from documents in pipelines, LongMemory keeps a governed temporal store agents read and write.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/engrim/&#34; &gt;Engrim&lt;/a&gt;: the other local cross-agent store; Engrim is a thin curated SQLite scratchpad, LongMemory is a full engine with governance and temporal queries.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Bottom line&#xA;    &lt;div id=&#34;bottom-line&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#bottom-line&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Recommended for teams that need temporal, governed memory they can self-host and will accept a young dependency.&lt;/strong&gt;&#xA;Not for anyone needing a hosted tier, a proven-at-scale engine, or a Python SDK that installs today.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Changes&#xA;    &lt;div id=&#34;changes&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#changes&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2026-10-08 - Created from the 2026-10-08 awesome-list entrant scan, with six fetched sources; the unresolvable PyPI SDK distribution recorded as the run&amp;rsquo;s verification gap.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;See also&#xA;    &lt;div id=&#34;see-also&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#see-also&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/memory-feature-matrix/&#34; &gt;Memory Feature Matrix&lt;/a&gt; - the category comparison this note joins&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/zep/&#34; &gt;Zep&lt;/a&gt; - the hosted temporal service this engine&amp;rsquo;s temporal model answers&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/cognee/&#34; &gt;Cognee&lt;/a&gt; - the pipeline-style self-hosted graph alternative&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/memory/engrim/&#34; &gt;Engrim&lt;/a&gt; - the thin local store at the opposite end of the complexity spectrum&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;References&#xA;    &lt;div id=&#34;references&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#references&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/CaviraOSS/LongMemory&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://github.com/CaviraOSS/LongMemory&lt;/a&gt; - repository, 4,523 stars, activity, Apache-2.0, the OpenMemory rename, as of 2026-10-08&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/CaviraOSS/LongMemory/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/CaviraOSS/LongMemory/main/README.md&lt;/a&gt; - the Hydrograph memory model, recall modes, governance scopes, surfaces, and migration paths&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/CaviraOSS/LongMemory/main/LICENSE&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/CaviraOSS/LongMemory/main/LICENSE&lt;/a&gt; - the Apache-2.0 license text&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://registry.npmjs.org/longmemory&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=registry.npmjs.org&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://registry.npmjs.org/longmemory&lt;/a&gt; - the official npm distribution at 1.3.3&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pypi.org/simple/longmemory-sdk/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=pypi.org&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://pypi.org/simple/longmemory-sdk/&lt;/a&gt; - the PyPI distribution returning 404 at fetch time (2026-10-08), the verification gap&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://news.ycombinator.com/item?id=46262294&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=news.ycombinator.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://news.ycombinator.com/item?id=46262294&lt;/a&gt; - the Show HN thread (48 points, 16 comments, 2025-12-14), the launch record&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
      
    </item>
    
  </channel>
</rss>
