axiom-memory
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@axiom-memoryremember that I prefer dark mode"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Axiom Memory is a persistent memory system for AI agents. It stores what agents learn, retrieves it across sessions, and is built to evolve autonomously. Works offline. Zero API keys required by default. MCP server included.
pip install axiom-memoryDemo
from axiom import MemoryStore
store = MemoryStore()
# Store a memory
store.remember("Brian prefers dark mode", tags=["preference", "user-brian"])
# Search later
results = store.search("dark mode", limit=5)
# See what you know
print(store.stats())
# → Total: 42 memories, Avg importance: 0.67CLI Demo
$ axiom chat
Axiom Chat — I remember everything you tell me.
Type 'exit' to quit, 'stats' for memory stats.
You> I'm Brian, I'm building an AI startup in Nairobi
→ Remembered (id=f5db1eff, importance=0.55)
You> I love Python and dark mode
→ Remembered (id=878939c2, importance=0.55)
You> stats
Total memories: 8
Avg importance: 0.550
You> exit
Goodbye!
$ axiom chat
Welcome back! I remember 8 things about you.
You> What do you know about me?
→ Remembered (id=a1b2c3d4, importance=0.66)
💡 Related: Brian prefers dark modeFull terminal recording:
axiom-demo.cast— play withasciinema play axiom-demo.cast
Related MCP server: elephantasm-mcp
MCP Server
Plug Axiom into Claude Desktop, Cursor, or Windsurf in 30 seconds:
{
"mcpServers": {
"axiom-memory": {
"command": "axiom",
"args": ["serve", "--port", "8765"]
}
}
}Your AI assistant now has permanent memory. Every session reads and writes to the same store.
CLI
axiom remember "Brian likes Python" --tags preference,user-brian
axiom search "Python"
axiom stats
axiom chat # Interactive persistent chatbot
axiom export backup.json
axiom import backup.json
axiom serve # Start MCP serverAPI
from axiom import MemoryStore
store = MemoryStore("memories.db")
# Core operations
store.remember("content", tags=["tag"], importance=0.8)
store.recall("memory-id")
store.search("query", limit=10, tags=["python"], min_importance=0.5)
store.update("memory-id", content="new content", importance=0.95)
store.forget("memory-id")
store.stats()
# Import / Export
store.export_json("backup.json")
store.import_json("backup.json")
# LLM-powered extraction (requires OpenAI key)
store.extract_from_conversation("I love building AI agents in Python")Features
Feature | Status | Description |
SQLite storage | ✅ | Persistent, fast, FTS5 full-text search |
Keyword search | ✅ | Tag/importance filtering, pagination |
Importance scoring | ✅ | Recency + usage + explicit hints |
JSON import/export | ✅ | Portable, backup-friendly |
CLI tool | ✅ | Full CRUD + chat + serve |
MCP server | ✅ | Claude Desktop, Cursor, Windsurf |
LLM extraction | ✅ | Auto-extract memories from conversations |
Dream Engine | 🔲 | Consolidation, forgetting, compression (interface ready) |
Semantic search | 🔲 | Via sentence-transformers ( |
Vector DB backends | 🔲 | PostgreSQL, Redis, Pinecone (interface ready) |
Architecture
axiom/
├── core/
│ ├── memory.py # Memory model (Pydantic)
│ ├── store.py # MemoryStore — main API
│ ├── storage/ # Pluggable storage backends
│ │ ├── base.py # StorageBackend ABC
│ │ └── sqlite.py # SQLite implementation
│ ├── search/ # Pluggable search engines
│ │ ├── base.py # SearchEngine ABC
│ │ └── keyword.py # FTS5 keyword search
│ ├── scoring/ # Pluggable scoring engines
│ │ ├── base.py # ScoringEngine ABC
│ │ └── simple.py # Recency + usage + importance
│ └── dream.py # DreamEngine interface (future)
├── llm/extractor.py # Optional LLM extraction
├── mcp/server.py # MCP server
├── cli.py # CLI tool
├── io.py # JSON import/export
└── config.py # SettingsExtending
Add a custom storage backend:
from axiom.core.storage.base import StorageBackend
class MyStorage(StorageBackend):
def store(self, memory): ...
def retrieve(self, memory_id): ...
def update(self, memory): ...
def delete(self, memory_id): ...
def search(self, query, limit, offset): ...
def list_all(self, limit, offset): ...
def count(self): ...
def count_by_type(self): ...
def all_tags(self): ...
def increment_usage(self, memory_id): ...
def get_all(self): ...
store = MemoryStore(storage=MyStorage())Requirements
Python 3.12+
SQLite (built into Python)
Optional: OpenAI API key for LLM extraction.
Development
git clone https://github.com/mungaibriankariuki-collab/axiom-memory
cd axiom-memory
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pre-commit install
pytest --cov=axiomLicense
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent memory for AI agents to retain, retrieve, and recall conversation context through MCP.
Cross-session memory for AI agents with a Source Receipt for every memory, over MCP.
11Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
- memnodeOAuthdev.memnode
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP-native, local-first memory server that gives AI agents persistent, structured memory across sessions and tools, enabling them to maintain identity and context without reconfiguration.3MIT
- AlicenseAqualityCmaintenanceMCP server for long-term agent memory, providing persistent memory, searchable knowledge, and evolving identity for AI agents.53Apache 2.0
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides persistent long-term memory for AI agents via local SQLite storage with low token overhead, enabling memory storage, retrieval, and management across sessions.1MIT
- AlicenseNot gradedqualityCmaintenancePersistent memory for AI coding agents. Enables agents to save and recall decisions, patterns, bugs, and context across sessions via an MCP server with local SQLite storage.14 npm2MIT