Give your app a memory
Store what your users tell you, put what is known about them in front of your model, and get a plain answer when nothing is known.
pip install geniffy # or: npm install geniffy
export GENIFFY_API_KEY="gnf_live_..."from geniffy import Geniffy
mem = Geniffy().space("customer_1042") # one of your users
source = mem.memories.add("Priya Nair signs the Lumen renewal.")
mem.sources.wait(source.id) # learning takes a few seconds
print(mem.context("Who signs the Lumen renewal?"))curl https://api.geniffy.com/v1/context \
-H "Authorization: Bearer $GENIFFY_API_KEY" \
-H "X-Geniffy-Space: customer_1042" \
-H "Content-Type: application/json" \
-d '{"question": "Who signs the Lumen renewal?"}'Set up your coding agent
Paste this prompt into Claude Code, Cursor, Codex or any coding agent, inside your project. It installs the SDK, gives each of your users a memory of their own, and puts what is known into your prompts.
Python SDK
pip install geniffy. A sync and an async client, typed results, retries, and the request id on every error.
TypeScript SDK
npm install geniffy. No dependencies; runs on Node 18+, Deno, Bun and edge runtimes.
MCP server
Give Claude, Cursor and any MCP client your memory, behind sign-in. Coming soon.
What's new
The latest changes to the API and the SDKs.
Build with memory
Add memories
Notes, conversations, PDF and Word files, and web pages, one at a time or a hundred at once.
Recall
context() for your prompt, ask() for an answer in words, search() for ranked memories.
Keys and spaces
One key for your app and one memory for each of its users, with nothing reaching across.
People
What is lastingly true about someone, what is going on now, and what to read before talking to them.
Correct and forget
Say what is right, or forget one memory, one source, or everything held for one user.
How memory works
From what you add to what comes back: facts, sources, real dates, and history.