██████╗ ██╗███╗ ██╗ ██████╗ ██╗ ██╗ ██████╗ ██╗ ██╗ ██╔════╝ ██║████╗ ██║██╔════╝ ██║ ██║██╔════╝ ██║ ██║ ██║ ███╗██║██╔██╗ ██║██║ ███╗██║ ██║██║ ███╗██║ ██║ ██║ ██║██║██║╚██╗██║██║ ██║██║ ██║██║ ██║██║ ██║ ╚██████╔╝██║██║ ╚████║╚██████╔╝╚██████╔╝╚██████╔╝╚██████╔╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝
> gingugu fixes that.█
every session with an AI assistant starts from zero. the decisions you made yesterday, the bug you fixed last week, the architecture you settled on a month ago — gone.
existing memory tools dump observations into a flat pile. no structure, no staleness tracking, no relationships, no sense of what's relevant right now.
gingugu is a structured long-term brain — not a junk drawer. one SQLite file on your machine. no cloud, no API keys, no telemetry.
and storage is the easy half. a memory server your agent never writes
to is an empty database — the failure mode isn't retrieval, it's
discipline. so gingugu ships that too:
gingugu init installs a SessionStart hook that injects the
memory protocol at the top of every session, and a stop hook that
checks a session with real work in it actually wrote something down.
the harness runs them whether or not the agent feels like it.
// hybrid retrieval: bm25 over fts5 + local vectors, fused with RRF MRR .............. 0.828 recall@1 ......... 0.611 recall@5 ......... 0.983 // 30 labeled questions against a real ~1,100-memory brain. // not a public benchmark suite — read it as a regression baseline, // not a cross-product score. runner ships in the repo: point it // at your own store and get your own numbers.
gingugu serve runs the same server over HTTP behind a bearer token; gingugu promote harvests local gold up to it with provenancegingugu init wires a repo for Claude Code in one command - a SessionStart hook auto-injects the memory protocol every session (no rules file to paste), plus a save-discipline stop hook and /sink-the-ship. it also keeps the protocol current in your user-level ~/.claude/CLAUDE.md, in a marked block it owns - your own prose above and below it is never touched// session start — your agent runs: memory_context(namespace="my-app", task_hint="fix auth bug") → surfaced 4 memories: [bug] JWT refresh loop on expired tokens — FIXED in a81f2c [decision] auth lives in middleware/, not per-route guards [pattern] all API errors wrap in ApiError(code, msg) [fact] staging uses cognito pool us-east-1_x7Yq // your AI now remembers. like it never left.
pip install gingugu
or uv tool install gingugu. then, in your repo, run
gingugu init to wire up Claude Code in one command — a
SessionStart hook auto-loads the memory protocol every session (no
rules file to paste). other agents: point your MCP config at it and
use gingugu init --client windsurf|cursor|cline. full
setup in the README.