# Geniffy Docs > Geniffy is the memory infrastructure for AI applications and agents. It turns every conversation, document and decision into lasting, verifiable knowledge, served to any model in milliseconds. Every page below is plain Markdown at its .md address. ## Overview: Start here - [What is Geniffy](https://docs.geniffy.com/overview.md): Geniffy is the memory infrastructure for AI applications and agents. It turns every conversation, document and decision into lasting, verifiable knowledge, served to any model in milliseconds. - [Use cases](https://docs.geniffy.com/overview/use-cases.md): What teams build with Geniffy, from support bots that remember each customer to coding agents that remember each project. - [How the brain works](https://docs.geniffy.com/how-memory-works.md): From what you add to what comes back: the facts, where things stand, the promises, what happened and the lessons, and how anything can be taken out again. ## Overview: Trust - [Security and privacy](https://docs.geniffy.com/overview/security.md): Where memory is stored, who can read it, how apps are let in, and how forgetting works. - [Compared with other approaches](https://docs.geniffy.com/overview/comparison.md): How a Geniffy memory differs from keeping chat history, from vector search over documents, and from the memory built into AI apps. ## Overview: News and help - [Changelog](https://docs.geniffy.com/changelog.md): What changed in the Geniffy API, the SDKs, the MCP server, the plugins, the integrations and these docs, newest first. - [Support](https://docs.geniffy.com/support.md): Where to ask, where to report a bug, and where to report a security problem. ## Developer platform: Getting started - [Getting started](https://docs.geniffy.com/getting-started.md): Give each of your users a memory, from a key to a prompt that knows them, in four steps. - [Keys and spaces](https://docs.geniffy.com/keys-and-spaces.md): One key for your app, one memory for each of its users, and nothing reaches across. - [Agent prompt](https://docs.geniffy.com/agent-prompt.md): One prompt for your coding agent that installs the SDK and wires memory into your app. ## Developer platform: Add memories - [Add memories](https://docs.geniffy.com/add-memories.md): Notes, conversations, files and web pages, and what happens after you add them. - [Notes](https://docs.geniffy.com/add-memories/notes.md): Add text: what a user told you, a summary, anything worth remembering. - [Conversations](https://docs.geniffy.com/add-memories/conversations.md): Add a conversation or an agent's whole session as your framework holds it, tool calls included. - [Files](https://docs.geniffy.com/add-memories/files.md): Add a PDF, Word, PowerPoint, Excel or text file, up to 25 MB. - [Files kept exactly](https://docs.geniffy.com/add-memories/files-kept-exactly.md): Keep text under a path, such as /memories/notes.md, and read it back exactly as it was written. Geniffy also learns from it like a note. - [Web pages](https://docs.geniffy.com/add-memories/web-pages.md): Add a public web page by its address; it is read once. - [Many at once](https://docs.geniffy.com/add-memories/many-at-once.md): Add up to 100 notes, pages and conversations in one call. - [Your own ids](https://docs.geniffy.com/add-memories/your-own-ids.md): Send a record again under your own id, and Geniffy updates it, learning only what changed. - [Labels](https://docs.geniffy.com/add-memories/labels.md): Tag what you add with your own name/value pairs, then keep any recall to them. - [Sync a data source](https://docs.geniffy.com/add-memories/sync-a-data-source.md): Keep what your users have in another app in their memory, and current. Each item under its own id, one label for the app, what is gone deleted, and everything from it forgotten when they disconnect. - [When learning is done](https://docs.geniffy.com/add-memories/when-learning-is-done.md): Wait for a source to be learned, in one held call. ## Developer platform: Recall - [Recall](https://docs.geniffy.com/recall.md): briefing, search, ask and context, and which one to use on every turn. - [briefing](https://docs.geniffy.com/recall/briefing.md): What a session opens with: where the project stands and what comes next, what happened last time, what is due, the lessons that apply, then the memories. - [search](https://docs.geniffy.com/recall/search.md): The memories that best match, ranked, with the lessons, stories and open promises that bear on the query. - [ask](https://docs.geniffy.com/recall/ask.md): An answer in words from the memory only, or a plain message when nothing supports one. - [context](https://docs.geniffy.com/recall/context.md): A block for your prompt: the memories that bear on a question, each with where it came from, and what happened that bears on it. - [now, episodes, lessons, intentions](https://docs.geniffy.com/recall/state.md): Each part on its own: where a project stands, what happened, what was learned and what was promised. - [When nothing is known](https://docs.geniffy.com/recall/when-nothing-is-known.md): What context and ask return when nothing bears on the question. ## Developer platform: Manage memory - [People](https://docs.geniffy.com/people.md): What is lastingly true about someone, what is going on now, and what to read before talking to them. - [Correct and forget](https://docs.geniffy.com/correct-and-forget.md): Say what is right instead, or forget one memory, one source, or everything held for one user. ## Developer platform: SDKs - [Python SDK](https://docs.geniffy.com/sdks/python.md): pip install geniffy. A sync and an async client, typed results, retries, and the request id on every error. - [TypeScript SDK](https://docs.geniffy.com/sdks/typescript.md): npm install geniffy. No dependencies; runs on Node 18+, Deno, Bun and edge runtimes. - [Examples](https://docs.geniffy.com/examples.md): Runnable programs in Python and JavaScript, from a quickstart to a chat with Claude that remembers you. ## Developer platform: Go live - [Production checklist](https://docs.geniffy.com/production-checklist.md): What to set before your app goes live, with the page that explains each item. - [Plans and usage](https://docs.geniffy.com/plans-and-usage.md): What a plan counts, what is never counted, what happens past a plan, and how your app reads its use. ## Integrations: Overview - [Any framework](https://docs.geniffy.com/integrations.md): Two calls give any model a memory of each user, context() before it answers and memories.add() after. Every integration is this pattern. ## Integrations: Model providers - [Anthropic](https://docs.geniffy.com/integrations/anthropic.md): Give Claude a memory of each of your users with the Anthropic SDK. What is known goes in the system prompt, and each exchange is saved after the reply. - [Claude's memory tool](https://docs.geniffy.com/integrations/claude-memory-tool.md): Keep the notes Claude's memory tool writes in each user's Geniffy memory. Every file comes back exactly as Claude wrote it, and what it says is recalled by context() and ask() anywhere in your app. - [OpenAI](https://docs.geniffy.com/integrations/openai.md): Give your OpenAI app a memory of each of your users with the Responses API. What is known goes in the instructions, and each exchange is saved after the reply. - [Google Gemini](https://docs.geniffy.com/integrations/gemini.md): Give your Gemini app a memory of each of your users with the Google Gen AI SDK. What is known goes in the system instruction, and each exchange is saved after the reply. ## Integrations: Python agents - [LangChain](https://docs.geniffy.com/integrations/langchain.md): Give a LangChain agent a memory of each of your users, with one piece of middleware from the package, with two of your own, or with a recall tool the agent calls. - [LangGraph](https://docs.geniffy.com/integrations/langgraph.md): Give a LangGraph graph a memory of each of your users, with a node that recalls before the model and a node that remembers after it. - [OpenAI Agents SDK](https://docs.geniffy.com/integrations/openai-agents-sdk.md): Give an OpenAI agent a memory of each of your users, in Python or TypeScript, through dynamic instructions or a recall function tool. - [Pydantic AI](https://docs.geniffy.com/integrations/pydantic-ai.md): Give a Pydantic AI agent a memory of each of your users, through dynamic instructions or a recall tool, with the user as the agent's dependency. - [LlamaIndex](https://docs.geniffy.com/integrations/llamaindex.md): Give a LlamaIndex agent a memory of each of your users, with a memory block that recalls what is known, or a recall tool the agent calls. - [CrewAI](https://docs.geniffy.com/integrations/crewai.md): Give a CrewAI crew a memory of each of your users, with what is known in the agent's backstory, or a recall tool the agent calls. - [Agno](https://docs.geniffy.com/integrations/agno.md): Give an Agno agent a memory of each of your users, through dynamic instructions or a recall tool, with the user from the run. - [Microsoft Agent Framework](https://docs.geniffy.com/integrations/microsoft-agent-framework.md): Give an Agent Framework agent a memory of each of your users with a context provider that recalls before each run and remembers after it. - [Google ADK](https://docs.geniffy.com/integrations/google-adk.md): Give an Agent Development Kit agent a memory of each of your users, with Geniffy as the runner's memory service, used by ADK's own memory tools. - [Strands Agents](https://docs.geniffy.com/integrations/strands.md): Give a Strands agent a memory of each of your users, with one hook provider that puts what is known in its system prompt before each request and saves the exchange after it. - [AutoGen](https://docs.geniffy.com/integrations/autogen.md): Give an AutoGen agent a memory of each of your users through AutoGen's own Memory interface, with what is known put in its model context before each reply and each exchange saved after it. - [Haystack](https://docs.geniffy.com/integrations/haystack.md): Give a Haystack pipeline or agent a memory of each of your users, with a component that recalls what is known before the model answers, or a recall tool the agent calls. ## Integrations: TypeScript agents - [Vercel AI SDK](https://docs.geniffy.com/integrations/vercel-ai-sdk.md): A streaming chat route that remembers each of your users, for any model the AI SDK supports. Nothing changes in the browser. - [Mastra](https://docs.geniffy.com/integrations/mastra.md): Give a Mastra agent a memory of each of your users, through dynamic instructions or a recall tool, with the user in the runtime context. ## Integrations: Voice - [LiveKit](https://docs.geniffy.com/integrations/livekit.md): Give a LiveKit voice agent a memory of each caller, with what is known put in front of the LLM before every reply and each exchange saved once the agent has answered. - [Pipecat](https://docs.geniffy.com/integrations/pipecat.md): Give a Pipecat voice agent a memory of each caller with one frame processor from the Geniffy SDK. Before each reply it puts the caller's briefing in front of the LLM, and it saves the call as it goes. - [Vapi](https://docs.geniffy.com/integrations/vapi.md): Give a Vapi phone assistant a memory of each caller, from your own server URL. What matters about the caller goes into its prompt when a call starts, it can look things up mid-call, and the call is saved when it ends. - [Retell](https://docs.geniffy.com/integrations/retell.md): Give a Retell voice agent a memory of each caller, from your own server. What matters about the caller goes into its prompt when a call comes in or goes out, a custom function looks things up mid-call, and the call is saved when it ends. - [Bolna](https://docs.geniffy.com/integrations/bolna.md): Give a Bolna voice agent a memory of each caller, from your own server. What matters about the caller goes into the agent's prompt before a call starts, on calls in and out, and each call is saved when it ends. ## Integrations: Messaging - [WhatsApp](https://docs.geniffy.com/integrations/whatsapp.md): Give an assistant on WhatsApp a memory of each person who messages it, on the WhatsApp Business Cloud API. What is known about them goes in front of the model before each reply, and each exchange is saved. - [Telegram](https://docs.geniffy.com/integrations/telegram.md): Give a Telegram bot a memory of each person who writes to it. What is known about them goes in front of the model before each reply, and each exchange is saved. - [Slack](https://docs.geniffy.com/integrations/slack.md): Give a Slack app a memory of each person who talks to it, in a channel or a direct message. What is known about them goes in front of the model before each reply, and each exchange is saved. - [Twilio](https://docs.geniffy.com/integrations/twilio.md): Give an assistant on SMS, or on WhatsApp through Twilio, a memory of each person who texts it. What is known about them goes in front of the model before each reply, and each exchange is saved. ## Integrations: Data sources - [Amazon S3](https://docs.geniffy.com/integrations/s3.md): Keep the documents under a prefix of an S3 bucket in a memory, such as a company's policies. A file whose ETag hasn't changed isn't downloaded again, a changed one teaches only what changed, and a file that is gone is deleted with what it taught. - [Confluence](https://docs.geniffy.com/integrations/confluence.md): Keep a Confluence space in a memory of its own, so an assistant answers from your team's own pages, with the page each answer came from. After the first run only the pages changed since are read, and a page moved to the trash is deleted from memory. - [GitHub](https://docs.geniffy.com/integrations/github.md): Keep a repository's issues and pull requests in a memory of their own, so an assistant knows what was decided and why. Each thread is one source; a new comment teaches only what it adds, and only what was updated since the last run is fetched. - [Gmail](https://docs.geniffy.com/integrations/gmail.md): Keep the email conversations each user takes part in, in their memory, with their own Google sign-in. Each thread is one source; a new reply teaches only what it adds, a thread that is gone takes what it taught with it, and disconnecting forgets everything from Gmail. - [Google Calendar](https://docs.geniffy.com/integrations/google-calendar.md): Keep each user's meetings in their memory with their own Google sign-in: who they meet, when and about what. After the first run only the events that changed are read, and a cancelled event is deleted from memory. - [Google Drive](https://docs.geniffy.com/integrations/google-drive.md): Keep each user's Google Drive in their memory with their own Google sign-in. After the first run only what changed is fetched; a changed file teaches only what changed, a file that is gone takes what it taught with it, and disconnecting forgets everything from Drive. - [Linear](https://docs.geniffy.com/integrations/linear.md): Keep a Linear team's issues in a memory of their own, so an assistant knows what was decided and why. Each issue is one source with its comments; after the first run only the issues updated since are read, and an issue in the trash is deleted from memory. - [Notion](https://docs.geniffy.com/integrations/notion.md): Keep each user's Notion in their memory with their own sign-in to Notion. A changed page teaches only what changed, a page that is gone takes what it taught with it, and disconnecting forgets everything from Notion. - [OneDrive](https://docs.geniffy.com/integrations/onedrive.md): Keep each user's OneDrive in their memory with their own Microsoft sign-in. After the first run only what changed is fetched; a changed file teaches only what changed, a file that is gone takes what it taught with it, and disconnecting forgets everything from OneDrive. - [Website](https://docs.geniffy.com/integrations/website.md): Keep a website in a memory of its own, from its sitemap. A page that changed is read again and teaches only what changed, a page no longer listed is deleted with what it taught, and your assistant recalls from the site beside each user's own memory. - [Zendesk](https://docs.geniffy.com/integrations/zendesk.md): Give each of your customers a memory of their support history. Every ticket goes into its requester's own memory with each public reply, internal notes stay out, and after the first run only the tickets that changed are read. ## Integrations: No-code - [Zapier](https://docs.geniffy.com/integrations/zapier.md): Remember what arrives in your Zaps, from forms, email and CRMs, and ask your memory from any Zap, with Webhooks by Zapier. - [n8n](https://docs.geniffy.com/integrations/n8n.md): Remember and recall from any n8n workflow with the HTTP Request node, and give the AI Agent node what is known about each user. - [Make](https://docs.geniffy.com/integrations/make.md): Remember and recall from any Make scenario with the HTTP app's Make a request module, with your key kept in a keychain. ## Plugins and MCP: MCP server - [MCP server](https://docs.geniffy.com/mcp.md): Your Geniffy memory inside Claude, ChatGPT, Cursor, VS Code and any app that speaks MCP, behind sign-in. - [Claude](https://docs.geniffy.com/mcp/claude.md): Add Geniffy to Claude.ai and the Claude desktop app as a custom connector, and sign in once. - [ChatGPT](https://docs.geniffy.com/mcp/chatgpt.md): Add Geniffy to ChatGPT on the web with developer mode, and make it the memory ChatGPT uses. - [VS Code](https://docs.geniffy.com/mcp/vscode.md): Add Geniffy to VS Code for GitHub Copilot and MCP extensions, in one click or with .vscode/mcp.json. - [Other apps](https://docs.geniffy.com/mcp/other-clients.md): Connect any app that supports remote MCP servers, with sign-in or an API key, and test the server yourself. - [Tools](https://docs.geniffy.com/mcp/tools.md): The nine tools of the Geniffy MCP server, with every input, every result, and which ones change your memory. - [Sign-in](https://docs.geniffy.com/mcp/sign-in.md): How apps sign in to the Geniffy MCP server: OAuth 2.1 with discovery, registration, PKCE, approval and revocation. ## Plugins and MCP: Plugins - [Claude Code](https://docs.geniffy.com/mcp/claude-code.md): The Geniffy plugin for Claude Code. Each session starts with what you said before, and what you discuss is saved as you go. - [Cursor](https://docs.geniffy.com/mcp/cursor.md): The Geniffy plugin for Cursor. Each chat starts with what you said before, and what you discuss is saved as you go. - [Codex](https://docs.geniffy.com/mcp/codex.md): The Geniffy plugin for Codex, or the MCP server on its own with codex mcp login. - [OpenCode](https://docs.geniffy.com/mcp/opencode.md): The Geniffy plugin for OpenCode. Each session starts with what you said before, and what you discuss is saved as you go. ## API reference: REST API - [REST API](https://docs.geniffy.com/api.md): Plain HTTPS with a bearer key. Every endpoint, generated from the API's own spec. - [Memories](https://docs.geniffy.com/api/memories.md): Add notes, pages, conversations and files; list, read, correct and forget memories. - [Recall](https://docs.geniffy.com/api/recall.md): context for your prompt, ask for an answer in words, search for ranked memories. - [Briefing](https://docs.geniffy.com/api/briefing.md): The briefing a session opens with, where things stand, what happened, the lessons learned and the promises made. - [People](https://docs.geniffy.com/api/people.md): What is lastingly true about someone, what to read first, and what connects to what. - [Sources](https://docs.geniffy.com/api/sources.md): What was added, how learning went, and deleting a source with what only it taught. - [Files](https://docs.geniffy.com/api/files.md): Text kept under a path, handed back exactly as it was written and learned from like a note. - [Spaces](https://docs.geniffy.com/api/spaces.md): Which of your users have memory, where each of them is (their time zone), a copy of what is held for one, and forgetting one of them entirely. - [Keys for your users](https://docs.geniffy.com/api/keys.md): Keys limited to one of your users, safe to hand to their own app: make, list and revoke them. - [Your key](https://docs.geniffy.com/api/key.md): Whose key this is, and which memory a call reaches. - [Usage](https://docs.geniffy.com/api/usage.md): This month's learning and answers for the whole account, against your plan. ## API reference: Operating - [Errors and limits](https://docs.geniffy.com/errors.md): What can go wrong, what to do about it, and every limit, read from the server. - [Request ids](https://docs.geniffy.com/request-ids.md): Find any call again by its request id: what was asked, what came back, and how long it took.