MemPalace.NET

CI License: MIT NuGet Tests

A .NET port of MemPalace — local-first AI memory that stores everything verbatim, searches semantically, and organizes knowledge through a wings / rooms / drawers hierarchy. No cloud calls by default, powered by ONNX embeddings.

🎯 Status: v0.15.2 — Production-ready with advanced E2E testing, comprehensive journey guides, and skill pattern library.

NuGet Packages

MemPalace.NET is published as a suite of focused libraries — install only what you need:

Package Description NuGet
mempalacenet CLI tool + meta-package (installs all) NuGet
MemPalace.Core Domain types, storage interfaces, PalaceRef NuGet
MemPalace.Backends.Sqlite SQLite backend with BLOB vectors + cosine similarity NuGet
MemPalace.Ai M.E.AI integration — ONNX, Ollama, OpenAI, Azure NuGet
MemPalace.Search Semantic, keyword & hybrid search with reranking NuGet
MemPalace.Mining Content ingestion: files, conversation transcripts NuGet
MemPalace.KnowledgeGraph Temporal entity-relationship graph with validity windows NuGet
MemPalace.Mcp Model Context Protocol server (Claude Desktop, VS Code) NuGet
MemPalace.Agents Microsoft Agent Framework integration + diaries NuGet
MemPalace.Diagnostics Health checks, metrics, and observability hooks NuGet

Why MemPalace.NET?

  • Local-first by default — ONNX embeddings via ElBruno.LocalEmbeddings (no API keys, no cloud calls)
  • Microsoft.Extensions.AI — swap embedders and LLMs with zero lock-in
  • Microsoft Agent Framework — each agent gets its own memory diary
  • MCP server — expose your palace as Model Context Protocol tools (Claude Desktop, VS Code, etc.)
  • Temporal knowledge graph — track entity relationships with validity windows
  • SQLite backend — managed BLOB storage, cosine similarity, clear upgrade path to vector stores

Examples & Getting Started

Ready to dive in? Check out our runnable examples:

See examples/README.md for detailed walkthroughs and learning paths.

Quick Start

# Install the CLI tool
dotnet tool install -g mempalacenet --version 0.15.2

# Initialize a new palace
mempalacenet init ~/my-palace

# Mine project files
mempalacenet mine ~/my-code --wing work --mode files

# Mine conversation transcripts
mempalacenet mine ~/my-convos --wing personal --mode convos

# Semantic search
mempalacenet search "how do I handle auth errors?"

# Hybrid search with reranking
mempalacenet search "latest React patterns" --hybrid --rerank

# Start MCP server (for Claude Desktop, VS Code, etc.)
mempalacenet mcp --palace ~/my-palace

# Run an agent
mempalacenet agents run scribe --wing research --mode local

Architecture

MemPalace.NET is a modular .NET solution with clear separation of concerns:

Project Purpose
MemPalace.Core Domain types, storage interfaces, PalaceRef value object
MemPalace.Backends.Sqlite Default SQLite backend with BLOB vectors + cosine similarity
MemPalace.Ai M.E.AI integration with ONNX (default), Ollama, OpenAI support
MemPalace.Mining Content ingestion: filesystem miner + conversation transcript miner
MemPalace.Search Semantic, keyword, and hybrid search with optional LLM reranking
MemPalace.KnowledgeGraph Temporal entity-relationship graph with validity windows
MemPalace.Mcp Model Context Protocol server (7 tools in v0.1)
MemPalace.Agents Microsoft Agent Framework integration + per-agent diaries
MemPalace.Cli Spectre.Console CLI (mempalacenet command)
MemPalace.Benchmarks LongMemEval / LoCoMo / ConvoMem benchmarks + R@5 testing

Documentation

Full documentation lives in docs/:

  • Architecture — solution layout, component contracts, dependency graph
  • Concepts — wings, rooms, drawers, verbatim storage, embedder identity
  • Backends — writing custom backends, conformance tests
  • AI Integration — embedder selection, reranking, M.E.AI seams
  • Mining — ingestion pipeline, custom miners, .gitignore respect
  • Search — semantic vs hybrid strategies, RRF fusion, temporal boosting
  • Knowledge Graph — temporal triples, pattern queries, invalidation
  • MCP Server — tool reference, VS Code / Claude Desktop setup
  • Agents — Agent Framework integration, diary management, agent discovery
  • CLI — command reference, configuration, examples
  • Benchmarks — reproducibility, dataset sources, R@5 parity
  • GitHub Copilot Skill — integration guide, pattern library, code generation hints

Building Custom Integrations

Integrating MemPalace.NET into your .NET projects? Start with our developer guides:

Development

# Clone
git clone https://github.com/elbruno/mempalacenet
cd mempalacenet

# Build
dotnet build src/

# Test (129 tests, all green)
dotnet test src/

# Pack NuGet packages
dotnet pack src/ -c Release

Roadmap

v0.1.0 (current) ships core memory operations, search, MCP server, and agents.

Post-v0.1:

  • Upgrade to sqlite-vec or Qdrant for >100K vectors
  • BM25 keyword search (currently token overlap)
  • LongMemEval R@5 parity validation (target ≥ 91%)
  • Conversation context summaries (mempalace wake-up)

Credits

License

MIT — same spirit as the original MemPalace.

👋 About the Author

Hi! I'm ElBruno 🧡, a passionate developer and content creator exploring AI, .NET, and modern development practices.

Made with ❤️ by ElBruno

If you like this project, consider following my work across platforms:

  • 📻 Podcast: No Tienen Nombre — Spanish-language episodes on AI, development, and tech culture
  • 💻 Blog: ElBruno.com — Deep dives on embeddings, RAG, .NET, and local AI
  • 📺 YouTube: youtube.com/elbruno — Demos, tutorials, and live coding
  • 🔗 LinkedIn: @elbruno — Professional updates and insights
  • 𝕏 Twitter: @elbruno — Quick tips, releases, and tech news

Community

We welcome contributions from the community! Here's how to get involved:

  • Contributing Guidelines — how to submit pull requests, report issues, and contribute code
  • Code of Conduct — our commitment to fostering an open and welcoming environment
  • Security Policy — how to report security vulnerabilities responsibly
  • Issues — report bugs or request features
  • Discussions — ask questions, share ideas, and connect with the community

Got questions? Open a discussion or reach out to @elbruno.