I was curious about how agents will share memory and context at the OS level, and how that would operate. MemKernel is my experiment around that question.
Experimental library for testing agent capabilities. MemKernel explores how agents share memory and context. It can be risky in production or confidential workflows: incorrect or sensitive memories can persist and influence other agents’ decisions. Start with disposable projects and synthetic data, keep backups, and review what agents store and act on with human oversight.
The current implementation is a Python MCP server backed by one local SQLite database. Cursor and other cooperating coding agents can use it to share decisions, task context, and investigations across sessions.
The part I find interesting is branchable memory: fork an investigation, try a different assumption, compare it with the main branch, and roll back a decision while keeping an auditable event history.
Try it with Cursor (Python 3.11+):
uv tool install memkernel-mcp
# Run these from your project root:
memkernel attach cursor
memkernel doctor
Restart Cursor and enable the MemKernel MCP server. attach adds a project entry in .cursor/mcp.json; memkernel attach cursor --dry-run previews the changes.
An example to try: ask Cursor to record a database decision, fork an investigation to explore another option, then compare the branches and roll back an experimental decision. The repo also contains a recorded multi-agent run and its event history.
It is still experimental: storage is on one host, leases coordinate cooperating agents, and branch merges need an agent or a human. Leases do not enforce filesystem locks.
Code and setup docs: GitHub - varadganjoo/MemKernel · GitHub
MIT licensed; the PyPI distribution is memkernel-mcp (the unrelated memkernel package belongs to another author).
For people using Cursor alongside other coding agents: would shared decisions or branchable investigations be more useful in your workflow?
Disclosure: I maintain this project. This post was drafted with AI assistance using my notes and the repository.