[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:engrim":3},"\u003Ch1>engrim\u003C\u002Fh1>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftimgordontg\u002Fengrim\u002Factions\u002Fworkflows\u002Fci.yml\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Ftimgordontg\u002Fengrim\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg\" alt=\"CI\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fengrim\u002F\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fengrim\" alt=\"PyPI\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.python.org\u002F\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10%2B-blue\" alt=\"Python\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftimgordontg\u002Fengrim\u002Fblob\u002FHEAD\u002FLICENSE\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green\" alt=\"License: MIT\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"#security--privacy\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flocal-%26%20private-brightgreen\" alt=\"Local &amp; private\" \u002F>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>The Universal Cross-Model &amp; Cross-Agent Episodic Memory Store.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>A local-first, project-scoped SQLite memory engine that allows developers to freely switch between models and environments (\u003Cstrong>Google Antigravity\u003C\u002Fstrong>, \u003Cstrong>Claude Code\u003C\u002Fstrong>, \u003Cstrong>Cursor MCP\u003C\u002Fstrong>, \u003Cstrong>Windsurf\u003C\u002Fstrong>) on the \u003Cstrong>SAME\u003C\u002Fstrong> project without losing architectural decisions, user constraints, or project state.\u003C\u002Fp>\n\u003Chr \u002F>\n\u003Ch2>1. The Core Value Proposition\u003C\u002Fh2>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>\"Why pay for 200,000 tokens of forgotten noise on every turn? The models are disposable utilities; your project's decisions are not.\"\u003C\u002Fstrong>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>As context windows scale to 1M+ tokens, developers face \u003Cstrong>attention dilution\u003C\u002Fstrong>: reasoning degrades, cost multiplies with every conversational turn, and clearing context causes total amnesia.\u003C\u002Fp>\n\u003Cp>\u003Ccode>engrim\u003C\u002Fcode> replaces attention dilution with \u003Cstrong>4,000 characters of curated episodic working memory\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Switzerland of AI Memory\u003C\u002Fstrong>: Decouples project intelligence from any single AI vendor or proprietary cloud silo. Switch from Gemini 3.8 in Antigravity to Claude 3.7 Sonnet in Claude Code to Codex CLI mid-project — your agents pick up right where the others left off.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Save Button for Autonomous Coding\u003C\u002Fstrong>: Externalize decisions, constraints, and state as you work. The connected AI agents (Antigravity, Claude Code, Cursor, Codex, Codex CLI) can automatically write to memory via MCP tools when they make architectural decisions, or you can manually save them (\u003Ccode>engrim add\u003C\u002Fcode>). Clear your agent session freely (\u003Ccode>\u002Fclear\u003C\u002Fcode>) and watch context reload intact.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smart, Hot Context Loading\u003C\u002Fstrong>: Combines SQLite FTS5 (bm25 keyword search) with static vector embeddings (\u003Ccode>model2vec\u003C\u002Fcode>) in a zero-latency hybrid reciprocal-rank fusion engine.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr \u002F>\n\u003Ch2>2. Empirical Proof (The 105-Session Case Study)\u003C\u002Fh2>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Tested across 105 continuous sessions on a 50,000-line algorithmic trading system. Zero regressions across 186 unit tests, zero context amnesia across model switches.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>In production testing on an active algorithmic trading codebase running real capital:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Over \u003Cstrong>153,000 tokens of work\u003C\u002Fstrong> across days of architecture, parameter tuning, and debugging was consolidated into an active memory pack under \u003Cstrong>1,000 tokens\u003C\u002Fstrong> (&lt;1% of the context window).\u003C\u002Fli>\n\u003Cli>That is a \u003Cstrong>99%+ cut in reloaded context cost\u003C\u002Fstrong> on every session restart.\u003C\u002Fli>\n\u003Cli>Seamlessly switched between Google Antigravity CLI, Claude Code, and Cursor MCP on identical repos with zero model drift or architectural regression.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr \u002F>\n\u003Ch2>3. Architecture\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-mermaid\">graph TD\n    subgraph Agents [\"Supported Agent Environments\"]\n        AGY[\"Google Antigravity&lt;br\u002F&gt;(PreInvocation &amp; Stop Hooks)\"]\n        CLAUDE[\"Claude Code&lt;br\u002F&gt;(SessionStart &amp; Stop Hooks)\"]\n        CURSOR[\"Cursor \u002F Windsurf&lt;br\u002F&gt;(Model Context Protocol stdio)\"]\n        CODEX[\"Codex CLI&lt;br\u002F&gt;(Hooks &amp; MCP)\"]\n    end\n\n    subgraph CoreEngine [\"engrim Core Engine (v1.3.0)\"]\n        ADAPTERS[\"Adapters &amp; Hooks&lt;br\u002F&gt;(agy, claude, mcp)\"]\n        PROVENANCE[\"Agent Provenance Engine&lt;br\u002F&gt;(origin_agent tracking)\"]\n        ROUTER[\"Hybrid Retrieval &amp; Minder&lt;br\u002F&gt;(bm25 lexical + vector cosine)\"]\n    end\n\n    subgraph Storage [\"Local-First SQLite Store (~\u002F.engrim\u002Fmemory.db)\"]\n        MEMORIES[(\"Curated Memories&lt;br\u002F&gt;(decisions, facts, feedback)\")]\n        FTS5[\"FTS5 Full-Text Search&lt;br\u002F&gt;(porter stemmer, triggers)\"]\n        VEC[\"Vector Embeddings&lt;br\u002F&gt;(model2vec static embeddings)\"]\n        LOG[\"Flight Recorder Log&lt;br\u002F&gt;(turns + action lines)\"]\n    end\n\n    AGY &lt;--&gt;|\"hook \u002F CLI\"| ADAPTERS\n    CLAUDE &lt;--&gt;|\"hook \u002F CLI\"| ADAPTERS\n    CURSOR &lt;--&gt;|\"JSON-RPC (stdio)\n\u003C\u002Fcode>\u003C\u002Fpre>\n",1789121862511]