{"id":49521796,"url":"https://github.com/elbruno/elbruno.mempalacenet","last_synced_at":"2026-05-08T23:27:03.078Z","repository":{"id":353822934,"uuid":"1220179368","full_name":"elbruno/ElBruno.MempalaceNet","owner":"elbruno","description":"MemPalace.NET — local-first AI memory in .NET (port of MemPalace)","archived":false,"fork":false,"pushed_at":"2026-04-25T19:07:09.000Z","size":507,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-25T19:22:55.881Z","etag":null,"topics":["agents","ai","csharp","dotnet","embeddings","knowledge-graph","local-first","mcp","memory","semantics"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elbruno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"docs/agents.md","dco":null,"cla":null}},"created_at":"2026-04-24T16:19:45.000Z","updated_at":"2026-04-25T19:07:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/elbruno/ElBruno.MempalaceNet","commit_stats":null,"previous_names":["elbruno/mempalacenet"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/elbruno/ElBruno.MempalaceNet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elbruno%2FElBruno.MempalaceNet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elbruno%2FElBruno.MempalaceNet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elbruno%2FElBruno.MempalaceNet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elbruno%2FElBruno.MempalaceNet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elbruno","download_url":"https://codeload.github.com/elbruno/ElBruno.MempalaceNet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elbruno%2FElBruno.MempalaceNet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32517232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","ai","csharp","dotnet","embeddings","knowledge-graph","local-first","mcp","memory","semantics"],"created_at":"2026-05-02T00:01:28.442Z","updated_at":"2026-05-08T23:27:03.072Z","avatar_url":"https://github.com/elbruno.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MemPalace.NET\n\n[![CI](https://github.com/elbruno/ElBruno.MempalaceNet/actions/workflows/ci.yml/badge.svg)](https://github.com/elbruno/ElBruno.MempalaceNet/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![NuGet](https://img.shields.io/nuget/v/mempalacenet.svg)](https://www.nuget.org/packages/mempalacenet)\n[![Tests](https://img.shields.io/badge/Tests-152%2F152%20passing-brightgreen.svg)](#)\n\nA **.NET port** of [MemPalace](https://github.com/MemPalace/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.\n\n\u003e 🎯 **Status:** v0.15.2 — Production-ready with advanced E2E testing, comprehensive journey guides, and skill pattern library.\n\n## NuGet Packages\n\nMemPalace.NET is published as a suite of focused libraries — install only what you need:\n\n| Package | Description | NuGet |\n|---------|-------------|-------|\n| [`mempalacenet`](https://www.nuget.org/packages/mempalacenet) | CLI tool + meta-package (installs all) | [![NuGet](https://img.shields.io/nuget/v/mempalacenet.svg)](https://www.nuget.org/packages/mempalacenet) |\n| [`MemPalace.Core`](https://www.nuget.org/packages/MemPalace.Core) | Domain types, storage interfaces, PalaceRef | [![NuGet](https://img.shields.io/nuget/v/MemPalace.Core.svg)](https://www.nuget.org/packages/MemPalace.Core) |\n| [`MemPalace.Backends.Sqlite`](https://www.nuget.org/packages/MemPalace.Backends.Sqlite) | SQLite backend with BLOB vectors + cosine similarity | [![NuGet](https://img.shields.io/nuget/v/MemPalace.Backends.Sqlite.svg)](https://www.nuget.org/packages/MemPalace.Backends.Sqlite) |\n| [`MemPalace.Ai`](https://www.nuget.org/packages/MemPalace.Ai) | M.E.AI integration — ONNX, Ollama, OpenAI, Azure | [![NuGet](https://img.shields.io/nuget/v/MemPalace.Ai.svg)](https://www.nuget.org/packages/MemPalace.Ai) |\n| [`MemPalace.Search`](https://www.nuget.org/packages/MemPalace.Search) | Semantic, keyword \u0026 hybrid search with reranking | [![NuGet](https://img.shields.io/nuget/v/MemPalace.Search.svg)](https://www.nuget.org/packages/MemPalace.Search) |\n| [`MemPalace.Mining`](https://www.nuget.org/packages/MemPalace.Mining) | Content ingestion: files, conversation transcripts | [![NuGet](https://img.shields.io/nuget/v/MemPalace.Mining.svg)](https://www.nuget.org/packages/MemPalace.Mining) |\n| [`MemPalace.KnowledgeGraph`](https://www.nuget.org/packages/MemPalace.KnowledgeGraph) | Temporal entity-relationship graph with validity windows | [![NuGet](https://img.shields.io/nuget/v/MemPalace.KnowledgeGraph.svg)](https://www.nuget.org/packages/MemPalace.KnowledgeGraph) |\n| [`MemPalace.Mcp`](https://www.nuget.org/packages/MemPalace.Mcp) | Model Context Protocol server (Claude Desktop, VS Code) | [![NuGet](https://img.shields.io/nuget/v/MemPalace.Mcp.svg)](https://www.nuget.org/packages/MemPalace.Mcp) |\n| [`MemPalace.Agents`](https://www.nuget.org/packages/MemPalace.Agents) | Microsoft Agent Framework integration + diaries | [![NuGet](https://img.shields.io/nuget/v/MemPalace.Agents.svg)](https://www.nuget.org/packages/MemPalace.Agents) |\n| [`MemPalace.Diagnostics`](https://www.nuget.org/packages/MemPalace.Diagnostics) | Health checks, metrics, and observability hooks | [![NuGet](https://img.shields.io/nuget/v/MemPalace.Diagnostics.svg)](https://www.nuget.org/packages/MemPalace.Diagnostics) |\n\n## Why MemPalace.NET?\n\n- **Local-first by default** — ONNX embeddings via [ElBruno.LocalEmbeddings](https://github.com/elbruno/LocalEmbeddings) (no API keys, no cloud calls)\n- **Microsoft.Extensions.AI** — swap embedders and LLMs with zero lock-in\n- **Microsoft Agent Framework** — each agent gets its own memory diary\n- **MCP server** — expose your palace as Model Context Protocol tools (Claude Desktop, VS Code, etc.)\n- **Temporal knowledge graph** — track entity relationships with validity windows\n- **SQLite backend** — managed BLOB storage, cosine similarity, clear upgrade path to vector stores\n\n## Examples \u0026 Getting Started\n\nReady to dive in? Check out our **[runnable examples](./examples/README.md)**:\n\n- 🔰 **[Simple Memory Agent](./examples/SimpleMemoryAgent/)** — Core memory operations with semantic search\n- 🕸️ **[Semantic Knowledge Graph](./examples/SemanticKnowledgeGraph/)** — Temporal entity relationships\n\nSee [examples/README.md](./examples/README.md) for detailed walkthroughs and learning paths.\n\n## Quick Start\n\n```bash\n# Install the CLI tool\ndotnet tool install -g mempalacenet --version 0.15.2\n\n# Initialize a new palace\nmempalacenet init ~/my-palace\n\n# Mine project files\nmempalacenet mine ~/my-code --wing work --mode files\n\n# Mine conversation transcripts\nmempalacenet mine ~/my-convos --wing personal --mode convos\n\n# Semantic search\nmempalacenet search \"how do I handle auth errors?\"\n\n# Hybrid search with reranking\nmempalacenet search \"latest React patterns\" --hybrid --rerank\n\n# Start MCP server (for Claude Desktop, VS Code, etc.)\nmempalacenet mcp --palace ~/my-palace\n\n# Run an agent\nmempalacenet agents run scribe --wing research --mode local\n```\n\n## Architecture\n\nMemPalace.NET is a modular .NET solution with clear separation of concerns:\n\n| Project | Purpose |\n|---------|---------|\n| **MemPalace.Core** | Domain types, storage interfaces, PalaceRef value object |\n| **MemPalace.Backends.Sqlite** | Default SQLite backend with BLOB vectors + cosine similarity |\n| **MemPalace.Ai** | M.E.AI integration with ONNX (default), Ollama, OpenAI support |\n| **MemPalace.Mining** | Content ingestion: filesystem miner + conversation transcript miner |\n| **MemPalace.Search** | Semantic, keyword, and hybrid search with optional LLM reranking |\n| **MemPalace.KnowledgeGraph** | Temporal entity-relationship graph with validity windows |\n| **MemPalace.Mcp** | Model Context Protocol server (7 tools in v0.1) |\n| **MemPalace.Agents** | Microsoft Agent Framework integration + per-agent diaries |\n| **MemPalace.Cli** | Spectre.Console CLI (`mempalacenet` command) |\n| **MemPalace.Benchmarks** | LongMemEval / LoCoMo / ConvoMem benchmarks + R@5 testing |\n\n## Documentation\n\nFull documentation lives in [`docs/`](docs/):\n\n- **[Architecture](docs/architecture.md)** — solution layout, component contracts, dependency graph\n- **[Concepts](docs/PLAN.md)** — wings, rooms, drawers, verbatim storage, embedder identity\n- **[Backends](docs/backends.md)** — writing custom backends, conformance tests\n- **[AI Integration](docs/ai.md)** — embedder selection, reranking, M.E.AI seams\n- **[Mining](docs/mining.md)** — ingestion pipeline, custom miners, .gitignore respect\n- **[Search](docs/search.md)** — semantic vs hybrid strategies, RRF fusion, temporal boosting\n- **[Knowledge Graph](docs/kg.md)** — temporal triples, pattern queries, invalidation\n- **[MCP Server](docs/mcp.md)** — tool reference, VS Code / Claude Desktop setup\n- **[Agents](docs/agents.md)** — Agent Framework integration, diary management, agent discovery\n- **[CLI](docs/cli.md)** — command reference, configuration, examples\n- **[Benchmarks](docs/benchmarks.md)** — reproducibility, dataset sources, R@5 parity\n- **[GitHub Copilot Skill](docs/COPILOT_SKILL.md)** — integration guide, pattern library, code generation hints\n\n## Building Custom Integrations\n\nIntegrating MemPalace.NET into your .NET projects? Start with our developer guides:\n\n- **[C# Library Developer Guide](docs/guides/csharp-library-developers.md)** — Build applications on MemPalace.NET\n- **[Embedder Pluggability Guide](docs/guides/embedder-pluggability.md)** — Swap or implement custom embedders\n- **[Skill Integration Deep Dive](docs/guides/skill-integration-deep-dive.md)** — Extend the platform with reusable skills\n\n## Development\n\n```bash\n# Clone\ngit clone https://github.com/elbruno/mempalacenet\ncd mempalacenet\n\n# Build\ndotnet build src/\n\n# Test (129 tests, all green)\ndotnet test src/\n\n# Pack NuGet packages\ndotnet pack src/ -c Release\n```\n\n## Roadmap\n\n**v0.1.0** (current) ships core memory operations, search, MCP server, and agents.\n\n**Post-v0.1:**\n- Upgrade to [sqlite-vec](https://github.com/asg017/sqlite-vec) or Qdrant for \u003e100K vectors\n- BM25 keyword search (currently token overlap)\n- LongMemEval R@5 parity validation (target ≥ 91%)\n- Conversation context summaries (`mempalace wake-up`)\n\n## Credits\n\n- **Original project:** [MemPalace](https://github.com/MemPalace/mempalace) (Python)\n- **Default embedder:** [ElBruno.LocalEmbeddings](https://github.com/elbruno/LocalEmbeddings) (ONNX)\n\n## License\n\n[MIT](LICENSE) — same spirit as the original MemPalace.\n\n## 👋 About the Author\n\n**Made with ❤️ by [Bruno Capuano (ElBruno)](https://github.com/elbruno)**\n\n- 📝 **Blog**: [elbruno.com](https://elbruno.com)\n- 📺 **YouTube**: [youtube.com/elbruno](https://youtube.com/elbruno)\n- 🔗 **LinkedIn**: [linkedin.com/in/elbruno](https://linkedin.com/in/elbruno)\n- 𝕏 **Twitter**: [twitter.com/elbruno](https://twitter.com/elbruno)\n- 🎙️ **Podcast**: [notienenombre.com](https://notienenombre.com)\n\n---\n\n## Community\n\nWe welcome contributions from the community! Here's how to get involved:\n\n- **[Contributing Guidelines](.github/CONTRIBUTING.md)** — how to submit pull requests, report issues, and contribute code\n- **[Code of Conduct](.github/CODE_OF_CONDUCT.md)** — our commitment to fostering an open and welcoming environment\n- **[Security Policy](.github/SECURITY.md)** — how to report security vulnerabilities responsibly\n- **[Issues](https://github.com/elbruno/mempalacenet/issues)** — report bugs or request features\n- **[Discussions](https://github.com/elbruno/mempalacenet/discussions)** — ask questions, share ideas, and connect with the community\n\n**Got questions?** Open a [discussion](https://github.com/elbruno/mempalacenet/discussions) or reach out to [@elbruno](https://github.com/elbruno).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felbruno%2Felbruno.mempalacenet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felbruno%2Felbruno.mempalacenet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felbruno%2Felbruno.mempalacenet/lists"}