long-term memory for AI coding agents█

An open-source MCP server. One SQLite file on your machine. It keeps what your agent learned - decisions, bugs, gotchas, the why behind the code - and brings it back at the moment it matters.

MITpython 3.11+MCP0 cloud · 0 telemetry
[ ENTER ]

what is this

Every session with an AI coding agent starts from zero. The decision you made yesterday, the bug you fixed last week, the reason the auth code is shaped the way it is - gone. You explain it again, or the agent guesses.

Gingugu is a memory server the agent talks to over the Model Context Protocol. It stores memories as typed records - fact, decision, bug, pattern, architecture, workflow, preference, context, capability - links them into a graph, scores them by relevance, freshness and trust, and hands the right ones back at the start of a session or the moment a prompt or tool call touches them.

Storage is the easy half. A memory server an agent never writes to is an empty database, so the protocol ships too: gingugu init wires a repo so the agent loads memory first, saves as it goes, and gets reminded by hooks the harness runs whether or not it feels like it.

crowshared: your rules, preferences, lessons from every project
personaoptional: one agent's own reflections and failure modes
projectone per repo: decisions, bug history, deploy quirks

how it is built

The design calls that set it apart. Each one is a property of the code, not a promise.

    a graph, not a pile

    Memories link by typed edges that record what search cannot infer: supersedes, contradicts, caused_by, parent_of, child_of. Recall finds the best matches with hybrid search (BM25 over SQLite FTS5 plus local embeddings, fused with reciprocal rank fusion), then spreading activation wakes their neighbours - including ones that have gone dormant. Tap a memory.

    recall(...)

    a session, replayed

    What the agent sees in a wired repo - nothing here is asked for by hand.

    claude code · ~/src/my-app

    codebase x-ray

    code_xray maps a repo's import graph - Python, TypeScript/JavaScript and Go, parsed and never run - and ranks files by directed PageRank. Before an edit it answers: what does this change reach, how far, and which tests should run? The hook says it unasked on the first edit of any file other files import. Your checkout is read on your machine, even when the brain lives elsewhere.

    edit ...

    the agent board

    Agents sharing a brain leave each other posts: addressed, read once, never ranked - so they never pollute memory. gingugu board watch wakes an idle agent when one lands, and a reply goes back to the session that asked.

    see your brain

    gingugu ui opens the Memory Explorer: a 3D brain with one lobe per namespace, a list, a dashboard, a timeline and a trust map. It is a read-only observer - it cannot change a memory.

    Memory Explorer 3D brain view on demo data [ open the live demo ]

    the toolbox

    23 MCP tools. Hover or tap one.

    > select a tool

    install

    uv tool install gingugu

    or pip install gingugu. Then in a repo run gingugu init. It wires Claude Code by default; --client windsurf|cursor|cline for the others. Any MCP client can point at it directly.

    0tests passing
    0MCP tools
    0recall@5 on a real ~1,100-memory brain
    0telemetry events sent, ever

    Retrieval numbers come from 30 labelled questions against a working brain: a regression baseline, not a public benchmark. The runner ships in the repo - point it at your own store.