by savantskie
A persistent local memory for AI, LLMs, or Copilot in VS Code.
# Add to your Claude Code skills
git clone https://github.com/savantskie/persistent-ai-memoryGuides for using ai agents skills like persistent-ai-memory.
Last scanned: 5/30/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-30T15:28:33.725Z",
"npmAuditRan": true,
"pipAuditRan": false
}persistent-ai-memory is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by savantskie. A persistent local memory for AI, LLMs, or Copilot in VS Code. It has 234 GitHub stars.
Yes. persistent-ai-memory passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/savantskie/persistent-ai-memory" and add it to your Claude Code skills directory (see the Installation section above).
persistent-ai-memory is primarily written in Python. It is open-source under savantskie on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh persistent-ai-memory against similar tools.
No comments yet. Be the first to share your thoughts!
🌟 Community Call to Action: Have you made improvements or additions to this system? Submit a pull request! Every contributor will be properly credited in the final product.
GITHUB LINK - https://github.com/savantskie/persistent-ai-memory.git
Major Architectural Rewrite: OpenWebUI-Native Integration
Upgrade from v1.1.0: See CHANGELOG.md for migration guide.
Choose your starting point:
| I want to... | Read this | Time |
|---|---|---|
| Get started quickly | REDDIT_QUICKSTART.md | 5 min |
| Install the system | INSTALL.md | 10 min |
| Understand configuration | CONFIGURATION.md | 15 min |
| Check system health | TESTING.md | 10 min |
| Use the API | API.md | 20 min |
| Deploy to production | DEPLOYMENT.md | 15 min |
| Fix a problem | TROUBLESHOOTING.md | varies |
| See examples | examples/README.md | 15 min |
# Linux/macOS
pip install git+https://github.com/savantskie/persistent-ai-memory.git
# Windows (same command, just use Command Prompt or PowerShell)
pip install git+https://github.com/savantskie/persistent-ai-memory.git
python tests/test_health_check.py
Expected output:
[✓] Imported ai_memory_core
[✓] Found embedding_config.json
[✓] System health check passed
[✓] All health checks passed! System is ready to use.
Persistent AI Memory provides sophisticated memory management for AI assistants:
~/.ai_memory/
├── conversations.db # Chat messages and conversation history
├── ai_memories.db # Curated long-term memories
├── schedule.db # Appointments and reminders
├── mcp_tool_calls.db # Tool usage logs and reflections
└── vscode_project.db # Development session context
~/.ai_memory/
├── embedding_config.json # Embedding provider setup
└── memory_config.json # Memory system defaults
store_memory() - Save important information persistentlysearch_memories() - Find memories using semantic searchlist_recent_memories() - Get recent memories without searchingstore_conversation() - Store user/assistant messagessearch_conversations() - Search through conversation historyget_conversation_history() - Retrieve chronological conversationslog_tool_call() - Record MCP tool invocationsget_tool_call_history() - Analyze tool usage patternsreflect_on_tool_usage() - Get AI insights on tool patternsget_system_health() - Check databases, embeddings, providersbuilt-in health check - python tests/test_health_check.pyChoose your embedding service:
| Provider | Speed | Quality | Cost |
|---|---|---|---|
| Ollama (local) | ⚡⚡ | ⭐⭐⭐ | FREE |
| LM Studio (local) | ⚡ | ⭐⭐⭐⭐ | FREE |
| OpenAI (cloud) | ⚡⚡ | ⭐⭐⭐⭐⭐ | $$$ |
See CONFIGURATION.md for setup instructions for each provider.
All memory operations require user_id and model_id parameters for data isolation and tracking.
This ensures:
By default, user_id and model_id are required. You can change this in memory_config.json:
{
"tool_requirements": {
"require_user_id": true,
"require_model_id": true,
"default_user_id": "default_user",
"default_model_id": "default_model"
}
}
require_user_id/require_model_id: true → Strict mode (recommended for production, security-focused, or multi-user systems)require_user_id/require_model_id: false → Use defaults instead (simpler for single-user/single-model setups)To make your AI automatically provide these values, add this to its system prompt:
When using memory system tools (store_memory, search_memories, etc.),
ALWAYS include these parameters:
- user_id='your_user_identifier' (e.g., 'nate_user_1')
- model_id='your_model_name' (e.g., 'llama-2:7b' or 'gpt-4')
If the actual values are unknown, use safe defaults:
- user_id='default_user'
- model_id='default_model'
This isolates memories per user and tracks which AI model generated each memory.
With user_id and model_id:
# Memories are stored with full isolation
await system.store_memory(
"User likes Python",
user_id="alice",
model_id="gpt-4"
)
# Search returns only this user's memories for this model
results = await system.search_memories(
"programming",
user_id="alice",
model_id="gpt-4"
)
Without strict requirements (if disabled):
# Uses defaults from memory_config.json
await system.store_memory("User likes Python") # user_id="default_user", model_id="default_model"
See API.md for complete parameter documentation.
Primary deployment method - Deep integration for sophisticated memory management:
ai_memory_short_term.py as an OpenWebUI FunctionInstallation:
ai_memory_short_term.py fileInlet (runs before model response)Use with any MCP-compatible AI assistant (Claude, custom integrations, etc.):
# Via mcpo
python -m ai_memory_mcp_server
# Or make streamable for OpenWebUI's alternative integration
# (OpenWebUI supports both plugin and streamable MCP methods)
Use memory capabilities directly in your Python code:
from ai_memory_core import AIMemorySystem
system = AIMemorySystem()
await system.store_memory("Important information", user_id="user1", model_id="model1")
results = await system.search_memories("query", user_id="user1", model_id="model1")
Ready-to-use examples:
python examples/basic_usage.py # Store and search memories
python examples/advanced_usage.py # Conversation tracking and tool logging
python examples/performance_tests.py # Benchmark operations
Full API reference: API.md
This is a significantly enhanced version of traditional memory systems:
| Feature | Traditional | AI Memory System |
|---|---|---|
| Memory Extraction | Manual/Static | LLM-powered intelligent extraction |
| Filtering | Simple keyword matching | Multi-layer semantic + relevance scoring |
| Memory Injection | All available memories | Smart filtering - only |