Changelog
What shipped. And when.
Every change a developer would notice, newest first, each with the page that explains it.
November 2026
- 3 NovA session opens where the last one stopped
The briefing now leads with the status of the work and the next steps in the order they were said, then what happened last time. In the minute after a session ends, before Geniffy has read it, the next one opens on the last words as they were said. A bug stays an open item, never a rule that applies.
APIPluginsRead more - 3 NovDates read the way people mean them
"12 March" said in October is next March, "next month" said on 31 January is February, and "tomorrow" said late in the evening in Los Angeles is the next day there. Every date is worked out by code on the person's own clock: send timezone with a save, or set a user's zone once with PUT /v1/timezone. A promise says its day and whether it is overdue.
APIRead more - 3 NovThe graph shows who is who
Each person, company, project and place now appears as what it is, linked by what memories say about them, such as who works where. A change moves a link instead of adding one, and two records that may be the same person are asked about, never merged on a name alone.
APIRead more - 2 NovWhen something ends, memory stops serving it
A later word that says access was removed, a plan was cancelled or a rule no longer applies now ends the old memory, rule, promise or line of where things stand, and keeps it as history; a rumour or an end still to come changes nothing. GET /v1/changes says what changed since a briefing's cursor.
APIRead more - 1 NovA saved text comes back word for word
GET /v1/sources/{id}/text returns what a source said, page by page: a saved prompt, rule or document itself, not the facts learned from it. Over MCP, fetch with a source id returns it too. Secrets stay masked and a forgotten person stays redacted.
APIMCPRead more - 1 NovEvery save counts what it holds
A save counts the tokens it holds, so a ten-word note is about 15. The minimum of 100 tokens a save is gone, on every plan.
APIRead more
October 2026
- 18 OctMore learning on every plan, and every read still free
Free learns 500K tokens a month (about 500 conversations) with 100 written answers, Pro 5M with 2,500, and Max 25M with 12,500. Scale, for a company running agents in production, learns 100M with 50,000 answers, invoiced monthly. Past a plan, extra learning is now $5 per million tokens and $5 per 1,000 answers. Search and briefings stay unlimited on every plan.
APIRead more - 17 OctA moved date replaces the old one
When a later conversation changes a plan, a date, a promise or a decision (the launch moved from the 10th to the 17th, a payment from Friday to Monday), the new one serves and the old one is kept as history. The one said later wins; two sources that disagree without either saying it changed are kept as a clash.
APIRead more - 17 OctSearch reaches lessons, stories and promises
POST /v1/search returns the lessons, episodes and open promises that bear on the query beside the memories, matched by meaning and by the words themselves. search_full() in Python and searchFull() in TypeScript, from 0.5.0.
APISDKsRead more - 17 OctMemory for Pipecat voice agents
pip install "geniffy[pipecat]" and put GeniffyMemory in front of the LLM: before each reply it gives the model the caller's briefing, and it saves the call as it goes. The Vapi, Retell, Bolna, LiveKit and Twilio guides now read the briefing, which comes back in a fraction of a second.
IntegrationsSDKsRead more - 9 OctPlans count what is learned; reading is free
Every plan now counts two things: the tokens Geniffy learns from what is saved, and the answers it writes. Saving, briefings and search are free on every plan. Past a plan, saves are kept and searchable and learned next month, or at once with extra learning; usage() and the X-Geniffy-Usage headers report tokens.
APISDKsRead more - 9 OctLangChain, LlamaIndex, OpenAI Agents and the AI SDK open with the briefing
langchain-geniffy, llama-index-memory-geniffy, openai-agents-geniffy and geniffy-ai-sdk 0.2.0 give the model the user's briefing before each call, and save each run, tool calls and results included, into one memory for the whole conversation. Each run sends only what is new.
IntegrationsRead more - 9 OctSessions saved as they go, and this month's use
An agent saves each turn as it happens: session(id).save(messages) sends only what is new, into one memory for the whole session however long it gets, and the API takes a session on POST /v1/memories. usage() says what this month comes to, and a used-up month is its own error, UsageLimitError.
APISDKsRead more - 9 OctA briefing for every session
Send whole sessions, tool calls and results included, from any framework, and Geniffy keeps where each project stands, what happened, the lessons learned and the promises made. briefing() reads it all back in one call, for the start of a session or a turn; now(), episodes(), lessons() and intentions() read each part. The plugins and the MCP server open every session with it.
APISDKsMCPPluginsRead more - 6 OctLabels
Tag what you add with your own name/value pairs, such as the channel or the account, then keep context, ask, search, the memory list and a brief to them, or forget everything that carries them in one call. Every name must match, and a list of values is any one of them.
APISDKsRead more - 6 OctYour users' data sources, kept in memory
Tested syncs for Gmail, Google Calendar, Google Drive, Notion, OneDrive, GitHub, Linear, Confluence, Amazon S3, Zendesk and any website: each learns only what changed, deletes what is gone, and forgets everything from a source when the user disconnects it. For any other source, the pattern is on one page, in Python and TypeScript.
IntegrationsSDKsRead more - 6 OctA copy for each user
GET /v1/export, or export() in the SDKs, on one of your users: every memory held for them, current or not, with its status and the sentence it came from, and every source. The call for a user who asks what you hold about them.
APISDKsRead more - 6 OctPowerPoint, Excel and text files
Add a .pptx (each slide's text, tables and speaker notes), an .xlsx (each sheet's rows) or a text file (.txt, .md, .csv, .tsv, .html), as well as PDF and Word. A file that can't be read is still refused with the reason, never guessed at.
APIRead more - 6 OctClaude's memory tool, kept in Geniffy
GeniffyMemoryTool in Python and geniffyMemoryHandlers in TypeScript keep the notes Claude's memory tool writes in each user's memory: every file comes back exactly as Claude wrote it, and what it says is recalled by context() and ask() like anything else. Underneath is a new files API, /v1/files, for any text an agent keeps under a path and needs back exactly.
IntegrationsAPISDKsRead more - 6 OctHaystack
A Haystack component that puts what is known about the user in front of the model in a pipeline, or a recall tool for a Haystack agent that reads the user from the agent's state, so the model never chooses whose memory it reads.
IntegrationsRead more - 6 OctGoogle Calendar: each user's meetings, in their memory
Who each user is meeting, when and about what, with their own Google sign-in. After the first run Google's sync token says what changed: a moved meeting keeps only its new time, and a cancelled one is deleted from memory.
IntegrationsRead more - 6 OctConfluence: your team's pages, kept in memory
A Confluence space in a memory of its own, so an assistant answers from your own runbooks and decisions and names the page. After the first run only the pages changed since are read, and a page moved to the trash is deleted from memory.
IntegrationsRead more - 6 OctLinear: a team's issues, and why
A Linear team's issues in a memory of their own, each with its state, its description and every person's comment. After the first run only the issues updated since are read; archived work stays as history, and an issue moved to the trash is deleted from memory.
IntegrationsRead more - 6 OctZendesk: each customer's support history, in their memory
Every ticket goes into its requester's own memory with each public reply, who wrote it and when; internal notes stay out, so your assistant never repeats to a customer what agents wrote for each other. Zendesk's incremental export means each run reads only the tickets that changed, deleted ones included.
IntegrationsRead more - 6 OctAmazon S3: the documents in a bucket, kept in memory
A company's policies, contracts or handbooks, from a prefix of an S3 bucket into a space: 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. Each prefix carries its own label, so one never deletes another's.
IntegrationsRead more - 6 OctGitHub: what a repository decided, and why
A repository's issues and pull requests in a memory of their own, each with every person's comment and whether it shipped (open, closed or merged). After the first run only what was updated is fetched, and comments from bots stay out, so a coding assistant or a support bot knows why the code is the way it is.
IntegrationsRead more - 6 OctA website, kept in memory from its sitemap
Your help centre, prices or opening hours in a space of their own: the sync follows the sitemap, fetches each page itself (so pages behind a sign-in work too), reads again only what changed, and deletes what the sitemap no longer lists. Your assistant recalls from the site beside each user's own memory.
IntegrationsRead more - 6 OctOneDrive and SharePoint, kept in memory
A sync for each user's OneDrive, with their own Microsoft sign-in, through Microsoft Graph's delta query: the first run lists everything, each run after it only what changed. Word, PowerPoint, Excel, PDF and text files, each under its own id; a file that is gone takes what it taught with it, and disconnecting forgets everything from OneDrive. A SharePoint library is one line away.
IntegrationsRead more - 6 OctGmail: the conversations each user takes part in
A sync for each user's email, with their own Google sign-in: each thread they wrote in is one source, each message in its own words without the quoted copies, so newsletters stay out and a new reply teaches only what it adds. A thread binned or deleted goes from memory, and disconnecting forgets everything from Gmail.
IntegrationsRead more - 6 OctGoogle Drive, kept in each user's memory
A sync for each user's Drive, with their own Google sign-in: Docs, Slides and Sheets, and their PDF, Word, PowerPoint, Excel and text files. After the first run, Drive's own list of changes says what to fetch, a file that is gone takes what it taught with it, and disconnecting forgets everything from Drive.
IntegrationsRead more - 6 OctNotion, kept in each user's memory
A sync for each user's Notion, with their own sign-in to your integration: each page under its own id and the label channel:notion, so a changed page teaches only what changed, a page that is gone takes what it taught with it, and disconnecting forgets everything from Notion.
IntegrationsRead more - 6 OctTwilio: SMS and WhatsApp
An assistant people text, over SMS or WhatsApp through Twilio, that knows each of them: one memory per number across both, every request checked against Twilio's signature, and the reply sent back in the same request.
IntegrationsRead more - 6 OctSlack apps
A Slack app that knows each person who mentions it or writes to it directly, with what is known in front of Claude before each reply in the thread. Every request is checked against your signing secret, and a retried event is answered once.
IntegrationsRead more - 6 OctTelegram bots
A Telegram bot that knows each person who writes to it, in private or in a group: what is known goes in front of Claude before each reply, and every update is checked against your secret token.
IntegrationsRead more - 6 OctWhatsApp assistants
An assistant on the WhatsApp Business Cloud API that knows each person who messages it: what is known goes in front of Claude before each reply, every webhook is checked against Meta's signature, and a message Meta sends twice is answered once.
IntegrationsRead more - 6 OctOpenAI Agents SDK in TypeScript
The OpenAI Agents SDK guide now has TypeScript beside Python: what is known in the agent's instructions through its run context, or a recall tool that reads the user from the context, so the model never chooses whose memory it reads.
IntegrationsRead more - 6 OctBolna voice agents
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, once, however many times Bolna sends it.
IntegrationsRead more - 6 OctRetell voice agents
From your own server: what matters about the caller goes into the agent's prompt when a call comes in, a recall function looks things up mid-call, and the call is saved when it ends. Every request is checked against Retell's signature.
IntegrationsRead more - 6 OctAutoGen
Geniffy as an AutoGen memory, through AutoGen's own Memory interface: what is known goes in the model context before each reply, rebuilt each turn so a long chat never piles it up.
IntegrationsRead more - 6 OctStrands Agents
One hook provider gives a Strands agent a memory of each user: what is known goes in its system prompt before each request, and the exchange is saved after it. Any model provider, Amazon Bedrock included.
IntegrationsRead more - 6 OctVapi phone assistants
From your own server URL: what matters about the caller goes into the assistant's prompt when a call starts, a recall tool looks things up mid-call, and the call is saved when it ends.
IntegrationsRead more - 6 OctLiveKit voice agents
A guide for LiveKit Agents: before every reply, what is known about the caller goes in front of the LLM, and each exchange is saved once the agent has answered. Tested in LiveKit's own text mode.
IntegrationsRead more - 6 OctYour own profile sections
Group your users' profiles your way: add a section with keywords or topics for every user, or for one, and what is known about each person is sorted into it.
APISDKsRead more - 6 OctGeniffy for the OpenAI Agents SDK
openai-agents-geniffy: a run config that tells any agent what is known about the user before each model call, remember() to save the exchange, and recall and remember as function tools.
IntegrationsSDKsRead more - 6 OctKeys for one user
Make a key limited to one of your users, safe to hand to their own app or device: it reaches their memory and nothing else. List and revoke them per user, and erasing the user stops them.
APISDKsRead more - 6 OctUpdate a record by your own id
Add with external_id, and sending the same record again updates it instead of adding it twice: only what changed is learned, and what was removed is taken back. Find or delete it by the same id.
APISDKsRead more - 6 OctA blank space is refused
A space that is named but blank, in the X-Geniffy-Space header, a body or a query, now gets bad_space instead of reaching your own memory, and both SDKs refuse it before sending. A user whose id didn't arrive can't end up in your memory. Leave the space out for your own.
APISDKsRead more - 6 OctConversations from the past keep their date
Pass said_at when you add a note or a conversation that happened earlier, and what it teaches is dated by when it was said, not when you sent it, and a newer conversation replaces what an older one said.
APISDKsRead more - 6 OctGeniffy for LlamaIndex
llama-index-memory-geniffy: a memory block that gives any LlamaIndex agent what is known about the user before it answers, with remember() to save the exchange and recall and remember as tools.
IntegrationsSDKsRead more - 6 OctPlugins for Cursor, Codex and OpenCode
The same memory as the Claude Code plugin: each session starts with what you said before about you and the project, and each turn is saved as you go, with keys and code left on your computer.
PluginsRead more - 6 OctOne command for every app
npx geniffy-cli setup finds Claude Code, Cursor, VS Code, Codex, OpenCode, Windsurf and Gemini CLI on your computer and adds Geniffy to each, after showing what it will change.
MCPRead more - 6 OctGeniffy for LangChain
langchain-geniffy: one piece of middleware gives any LangChain agent a memory of each user, with recall and remember tools and a retriever for chains.
IntegrationsSDKsRead more - 6 OctGeniffy for the Vercel AI SDK
geniffy-ai-sdk: wrap any AI SDK model with withGeniffy, and it is told what is known about the user before every reply and saves the exchange after. Or give it recall and remember as tools.
IntegrationsSDKsRead more - 6 OctA skill and the docs, for coding agents
npx skills add Geniffy/skills teaches your coding agent to build with Geniffy, and the docs are an MCP server it can search and read while it works.
DocsMCPRead more - 5 OctIntegration guides
Memory for Anthropic, OpenAI and Gemini; LangChain, LangGraph, the OpenAI Agents SDK, Pydantic AI, LlamaIndex, CrewAI, Agno, Microsoft Agent Framework and Google ADK; the Vercel AI SDK and Mastra; Pipecat; and Zapier, n8n and Make. Every snippet is tested against the framework itself.
IntegrationsRead more - 5 OctThe docs, by what you came to do
Five tabs, each with its own sidebar: Overview, Developer platform, Integrations, Plugins and MCP, and API reference. This changelog can be filtered by topic, and followed by RSS.
DocsRead more - 5 OctGeniffy for Claude Code
A plugin: each session starts with what you said before, and what you discuss is saved as you go, with keys and code left on your laptop.
PluginsRead more - 5 OctIn the official MCP Registry
Listed as io.github.Geniffy/geniffy-mcp, so MCP apps and directories can find it.
MCPRead more - 5 OctThe SDKs are open source
geniffy 0.1.1 on PyPI and npm, published from github.com/Geniffy with no stored token.
SDKsRead more - 5 OctThe MCP server is live
Your memory in Claude, ChatGPT, Cursor, VS Code and Codex, behind sign-in, with nothing to install.
MCPRead more - 5 OctConversations go in as your framework holds them
Anthropic content blocks, OpenAI parts and turns with no text, Gemini and Vercel AI SDK parts. Developer messages are skipped like system ones.
APISDKsRead more - 5 Octcontext() leads with the fact the answer used
And a note added without a title is cited as a note, not with its own words over again.
APIRead more - 5 Octsources.wait() returns the moment learning ends
One held call instead of asking every two seconds, in both SDKs.
SDKsRead more - 4 OctRequest ids
Every call gets a request id and a 30-day record you can search in the Geniffy app.
APIRead more


