AI Memory on GitHub: Choosing an Open-Source Project
Choose an open-source AI memory project by the storage, upkeep and integration work you can support. Here is how to build a shortlist and test it with your own examples.
Updated 7 min read
The best AI memory project on GitHub is the one whose storage model, maintenance burden and connection method match the application you are building. Start with the information you need to remember, then check what the repository actually supplies and what you must build yourself.
A memory component for your own chatbot serves a different need from a shared record of a development project. fenbs handles that second job: keeping tasks, decisions, rules and progress available to connected assistants. You may need an open-source component for your product and a separate record for the people building it.
Which projects belong on your shortlist?
These are useful starting points for different jobs, rather than a ranking by popularity. A repository with more stars does not necessarily fit your language, storage policy or support capacity. Read the linked documentation before following an installation example, particularly if an older tutorial uses a different package or architecture.
| Option | Best starting point for | Responsibility to investigate |
|---|---|---|
| Mem0 | Adding a dedicated memory layer to an AI application. | Choose the open-source deployment and its dependencies; distinguish it from the managed service. |
| Graphiti | Applications where relationships and changing facts matter. | Operate the graph storage and build the surrounding application controls. |
| LangGraph | Applications that need conversation state and memory within a wider workflow. | Design the workflow, choose persistent storage and define what crosses conversations. |
| Letta | Building an assistant whose continuing state is central to the application. | Follow the current source and documentation rather than assuming an older API remains the right starting point. |
| fenbs | People sharing project work across supported AI apps. | Hosted work record; not an open-source memory component or database for your own product. |
The Mem0 repository (opens in a new tab) separates its library, self-hosted server and cloud platform. That distinction matters: a feature demonstrated on the hosted platform is not evidence that the library provides an identical operational system. Evaluate the exact edition you would run, including its account controls and administration tools.
The Graphiti repository (opens in a new tab) describes temporal graphs, which represent relationships and how facts change over time. It is worth considering when questions depend on who worked with whom or which fact applied earlier. If your application only needs a few explicit preferences, start by asking whether that extra structure earns its upkeep.
LangGraph documents (opens in a new tab) a distinction between conversation-specific checkpoints and memory shared across conversations. Letta directs developers (opens in a new tab) to its current source and documentation. Those examples illustrate why a shortlist should identify both the memory behavior you need and the implementation path you intend to maintain.
What will the project store, and where will it go?
Draw the path of one example before installing anything: a person says something, a component selects information, storage retains it, and a later request retrieves it. Mark every service involved. A library running on your laptop may still send text to an outside model to select memories or create search representations.
Separate original messages from derived memories. A message might say that a customer is considering email updates. A generated memory that says the customer prefers email changes a possibility into a settled fact. You need to inspect that transformation, find its source and correct it without rewriting the original conversation.
- Storage: identify which records live in files, a conventional database, a vector store or a graph.
- Outside processing: list the model calls used for extraction, retrieval and summarization.
- Scope: determine how the application separates people, organizations and conversations.
- Recovery: decide how backups, exports and deletion cover both original records and derived copies.
Do not choose the storage technology from a label alone. An embedding is a numerical representation used to search for similar meaning; it is not a statement that something is approved or current. The guide to an AI memory database covers those storage choices in more detail.
How can you judge maintenance without counting stars?
Inspect a recent release, its upgrade instructions and a few issues similar to the problems you expect to encounter. Look for a clear explanation of supported configurations and breaking changes. You are trying to learn whether your team could diagnose a failure, rather than predict whether a project will remain popular.
A quiet repository is not automatically abandoned, and a busy one is not automatically dependable. A small, stable component can need few changes. A fast-moving system can require frequent migrations. Prefer evidence that your chosen version has usable documentation, understandable failures and an upgrade path you can rehearse.
Read the license for the repository and the licenses of the components you will operate. Then assign an owner for patching, backups and restoration. If nobody can explain who will answer a failed overnight job or review a dependency update, the deployment is not ready merely because a local demo works.
Record that evaluation as work people can revisit. The chosen version, rejected alternative and remaining test belong beside the implementation tasks. With fenbs project context, the next connected assistant can read those facts before recommending a replacement that the team already evaluated.
Keep the reason behind the dependency
Add the memory evaluation as a project with tasks for storage, access and recovery checks. Record the choice a person made in Decisions and rules, and save the unresolved questions in Where we left off. Your next connected assistant starts with that work instead of repeating the shortlist.
Create a free accountFree for one person · No credit card · Works with Claude, ChatGPT, Cursor and more
What integration work will your application still need?
Installing a package does not establish the policy for remembering. Your application needs to decide when to save information, who owns it, how to retrieve it and whether to ask for clarification. It also needs a useful response when no relevant memory exists or the storage service is unavailable.
Define the boundary between retrieved content and trusted instructions. A remembered document can contain a sentence that tells an assistant to ignore its normal rules. Treat that sentence as document content. Do not give every retrieved passage the authority of the application instructions or let a search result grant access to another account.
Use the language and workflow your team already understands unless there is a concrete reason to change. A memory component that fits your application can be easier to observe than a separate service, while a service may suit multiple applications. Either way, trace a failed answer back through retrieval to the stored record.
General coding tools belong in the guide to GitHub AI tools for developers. Here the selection question is narrower: can this project supply a dependable memory capability inside the application you own?
Which tests should decide the choice?
Give each shortlisted project the same small set of fictional records and questions. Include an ordinary fact, a correction, an expired instruction, a second account with similar wording and a question whose answer is absent. Save expected answers before running the experiment so a plausible response does not become the standard afterward.
- Save a preference, restart the application and ask for it in a new conversation. Confirm that it survived actual process shutdown.
- Change the preference, then ask both what applies now and what was said earlier. Check whether the result distinguishes those questions.
- Query as another account with overlapping language. Verify that its answer cannot reveal the first account's record.
- Remove a record and repeat the question. Inspect retrieved context as well as the final answer for leftover copies.
- Disconnect storage or delay a retrieval request. Check that the application explains the gap instead of inventing remembered facts.
Measure the whole request, including writing and updating memories. A quick search can still sit behind a slow extraction step. Keep the test data small enough to inspect manually, then expand only after the basic behavior is correct. This helps separate a retrieval problem from a model that misreads the retrieved text.
If multiple people will use the system, include someone who did not build it in the review. Ask them to locate a source, correct a mistaken fact and explain what was removed. The team memory guide discusses the shared ownership questions that a successful single-user demo can miss.
How to do this with fenbs
Use fenbs for the project record around the evaluation. Keep the application's test memories in its own test environment. That makes a clear place for agreed decisions and implementation progress without pretending the kanban board is the memory engine you are building.
- Create a free account and add the application as a project on your personal kanban board.
- Add tasks for the shortlist, access checks and restart tests. Put the approach in each task's plan and save actual results when the checks run.
- Record the person's chosen project and the reasons in Decisions and rules. Leave unresolved choices open for that person to decide.
- Use the supported assistant connection guides, then ask each connected assistant to read project context before working and save progress before stopping.
fenbs is free for one person, no credit card. It is not the right fit if your requirement is a self-hosted memory database, a library embedded in your product or automatic capture of every conversation. It keeps the work you choose to record and does not import your chat history.
Change coding assistants without losing the evaluation
Save the tested version, the current task and the next check in fenbs before changing AI apps. Your next supported assistant reads the same Decisions and rules and Where we left off. Keep useful continuity without depending on one model to remember the conversation.
Create a free accountFree for one person · No credit card · Works with Claude, ChatGPT, Cursor and more
When is the simplest option enough?
If your application only needs a handful of user-edited preferences, a straightforward database record may be enough. Add extraction or semantic search when a specific question needs it. Extra machinery should solve an observed problem, such as finding relevant details in a long history, rather than make a small application look more advanced.
Choose the project whose failure modes you understand and whose operating work someone accepts. Keep source records separate from conclusions, verify access before retrieval and make correction a normal action. For the surrounding model-switching problem, see portable AI memory; explore the memory tools hub for other approaches.