{"id":47299159,"url":"https://github.com/agentic-box/memora","last_synced_at":"2026-04-05T13:02:07.739Z","repository":{"id":315575229,"uuid":"1060036659","full_name":"agentic-box/memora","owner":"agentic-box","description":"Give your AI agents persistent memory.","archived":false,"fork":false,"pushed_at":"2026-04-03T14:52:58.000Z","size":102005,"stargazers_count":379,"open_issues_count":4,"forks_count":42,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-03T18:35:40.690Z","etag":null,"topics":["ai-agent","claude","knowledge-graph","llms","mcp","mcp-server","memory","rag","semantic-search","semantic-search-algorithm"],"latest_commit_sha":null,"homepage":"","language":"Python","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/agentic-box.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-19T09:44:12.000Z","updated_at":"2026-04-03T16:06:56.000Z","dependencies_parsed_at":"2025-09-19T12:32:54.998Z","dependency_job_id":"e3d54e82-80bf-4a0c-be6f-e2301c77bfb4","html_url":"https://github.com/agentic-box/memora","commit_stats":null,"previous_names":["spokv/memory-mcp","spokv/memora","agentic-box/memora"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/agentic-box/memora","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentic-box%2Fmemora","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentic-box%2Fmemora/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentic-box%2Fmemora/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentic-box%2Fmemora/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agentic-box","download_url":"https://codeload.github.com/agentic-box/memora/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentic-box%2Fmemora/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31436301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T08:13:15.228Z","status":"ssl_error","status_checked_at":"2026-04-05T08:13:11.839Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai-agent","claude","knowledge-graph","llms","mcp","mcp-server","memory","rag","semantic-search","semantic-search-algorithm"],"created_at":"2026-03-16T22:05:21.824Z","updated_at":"2026-04-05T13:02:07.732Z","avatar_url":"https://github.com/agentic-box.png","language":"Python","funding_links":[],"categories":["AI Memory \u0026 RAG"],"sub_categories":["Memory"],"readme":"\u003ch1 align=\"center\"\u003e\u003cimg src=\"media/memora_new.gif\" width=\"60\" alt=\"Memora Logo\" align=\"absmiddle\"\u003e Memora\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\u003csub\u003e\u003csub\u003e\u003ci\u003e\"You never truly know the value of a moment until it becomes a memory.\"\u003c/i\u003e\u003c/sub\u003e\u003c/sub\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cb\u003eGive your AI agents persistent memory\u003c/b\u003e\u003cbr\u003e\nA lightweight MCP server for semantic memory storage, knowledge graphs, conversational recall, and cross-session context.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/agentic-box/memora/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/tag/agentic-box/memora?label=version\u0026color=blue\" alt=\"Version\"\u003e\u003c/a\u003e\n\u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-green\" alt=\"License\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/thedotmack/awesome-claude-code\"\u003e\u003cimg src=\"https://awesome.re/mentioned-badge.svg\" alt=\"Mentioned in Awesome Claude Code\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"media/demo.gif\" alt=\"Memora Demo\" width=\"400\"\u003e\n\u003cimg src=\"media/demo2.gif\" alt=\"Memora Demo\" width=\"400\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cb\u003e\u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e\u003c/b\u003e · \u003cb\u003e\u003ca href=\"#install\"\u003eInstall\u003c/a\u003e\u003c/b\u003e · \u003cb\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/b\u003e · \u003cb\u003e\u003ca href=\"#configuration\"\u003eConfig\u003c/a\u003e\u003c/b\u003e · \u003cb\u003e\u003ca href=\"#live-graph-server\"\u003eLive Graph\u003c/a\u003e\u003c/b\u003e · \u003cb\u003e\u003ca href=\"#cloud-graph\"\u003eCloud Graph\u003c/a\u003e\u003c/b\u003e · \u003cb\u003e\u003ca href=\"#chat-with-memories\"\u003eChat\u003c/a\u003e\u003c/b\u003e · \u003cb\u003e\u003ca href=\"#semantic-search--embeddings\"\u003eSemantic Search\u003c/a\u003e\u003c/b\u003e · \u003cb\u003e\u003ca href=\"#llm-deduplication\"\u003eLLM Dedup\u003c/a\u003e\u003c/b\u003e · \u003cb\u003e\u003ca href=\"#memory-linking\"\u003eLinking\u003c/a\u003e\u003c/b\u003e · \u003cb\u003e\u003ca href=\"#neovim-integration\"\u003eNeovim\u003c/a\u003e\u003c/b\u003e\n\u003c/p\u003e\n\n## Features\n\n**Core Storage**\n- 💾 **Persistent Storage** - SQLite with optional cloud sync (S3, R2, D1)\n- 📂 **Hierarchical Organization** - Section/subsection structure with auto-hierarchy assignment\n- 📦 **Export/Import** - Backup and restore with merge strategies\n\n**Search \u0026 Intelligence**\n- 🔍 **Semantic Search** - Vector embeddings (TF-IDF, sentence-transformers, OpenAI)\n- 🎯 **Advanced Queries** - Full-text, date ranges, tag filters (AND/OR/NOT), hybrid search\n- 🔀 **Cross-references** - Auto-linked related memories based on similarity\n- 🤖 **LLM Deduplication** - Find and merge duplicates with AI-powered comparison\n- 🔗 **Memory Linking** - Typed edges, importance boosting, and cluster detection\n\n**Tools \u0026 Visualization**\n- ⚡ **Memory Automation** - Structured tools for TODOs, issues, and sections\n- 🕸️ **Knowledge Graph** - Interactive visualization with Mermaid rendering and cluster overlays\n- 🌐 **Live Graph Server** - Built-in HTTP server with cloud-hosted option (D1/Pages)\n- 💬 **Chat with Memories** - RAG-powered chat panel with LLM tool calling to search, create, update, and delete memories via streaming chat\n- 📡 **Event Notifications** - Poll-based system for inter-agent communication\n- 📊 **Statistics \u0026 Analytics** - Tag usage, trends, and connection insights\n- 🧠 **Memory Insights** - Activity summary, stale detection, consolidation suggestions, and LLM-powered pattern analysis\n- 📜 **Action History** - Track all memory operations (create, update, delete, merge, boost, link) with grouped timeline view\n\n## Install\n\n```bash\npip install git+https://github.com/agentic-box/memora.git\n```\n\nIncludes cloud storage (S3/R2) and OpenAI embeddings out of the box.\n\n```bash\n# Optional: local embeddings (offline, ~2GB for PyTorch)\npip install \"memora[local]\" @ git+https://github.com/agentic-box/memora.git\n```\n\n\u003cdetails id=\"usage\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eUsage\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\nThe server runs automatically when configured in Claude Code. Manual invocation:\n\n```bash\n# Default (stdio mode for MCP)\nmemora-server\n\n# With graph visualization server\nmemora-server --graph-port 8765\n\n# HTTP transport (alternative to stdio)\nmemora-server --transport streamable-http --host 127.0.0.1 --port 8080\n```\n\n\u003c/details\u003e\n\n\u003cdetails id=\"configuration\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eConfiguration\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\n### Claude Code\n\nAdd to `.mcp.json` in your project root:\n\n**Local DB:**\n```json\n{\n  \"mcpServers\": {\n    \"memora\": {\n      \"command\": \"memora-server\",\n      \"args\": [],\n      \"env\": {\n        \"MEMORA_DB_PATH\": \"~/.local/share/memora/memories.db\",\n        \"MEMORA_ALLOW_ANY_TAG\": \"1\",\n        \"MEMORA_GRAPH_PORT\": \"8765\"\n      }\n    }\n  }\n}\n```\n\n**Cloud DB (Cloudflare D1) - Recommended:**\n```json\n{\n  \"mcpServers\": {\n    \"memora\": {\n      \"command\": \"memora-server\",\n      \"args\": [\"--no-graph\"],\n      \"env\": {\n        \"MEMORA_STORAGE_URI\": \"d1://\u003caccount-id\u003e/\u003cdatabase-id\u003e\",\n        \"CLOUDFLARE_API_TOKEN\": \"\u003cyour-api-token\u003e\",\n        \"MEMORA_ALLOW_ANY_TAG\": \"1\"\n      }\n    }\n  }\n}\n```\n\nWith D1, use `--no-graph` to disable the local visualization server. Instead, use the hosted graph at your Cloudflare Pages URL (see [Cloud Graph](#cloud-graph)).\n\n**Cloud DB (S3/R2) - Sync mode:**\n```json\n{\n  \"mcpServers\": {\n    \"memora\": {\n      \"command\": \"memora-server\",\n      \"args\": [],\n      \"env\": {\n        \"AWS_PROFILE\": \"memora\",\n        \"AWS_ENDPOINT_URL\": \"https://\u003caccount-id\u003e.r2.cloudflarestorage.com\",\n        \"MEMORA_STORAGE_URI\": \"s3://memories/memories.db\",\n        \"MEMORA_CLOUD_ENCRYPT\": \"true\",\n        \"MEMORA_ALLOW_ANY_TAG\": \"1\",\n        \"MEMORA_GRAPH_PORT\": \"8765\"\n      }\n    }\n  }\n}\n```\n\n### Codex CLI\n\nAdd to `~/.codex/config.toml`:\n\n```toml\n[mcp_servers.memora]\n  command = \"memora-server\"  # or full path: /path/to/bin/memora-server\n  args = [\"--no-graph\"]\n  env = {\n    AWS_PROFILE = \"memora\",\n    AWS_ENDPOINT_URL = \"https://\u003caccount-id\u003e.r2.cloudflarestorage.com\",\n    MEMORA_STORAGE_URI = \"s3://memories/memories.db\",\n    MEMORA_CLOUD_ENCRYPT = \"true\",\n    MEMORA_ALLOW_ANY_TAG = \"1\",\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails id=\"environment-variables\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eEnvironment Variables\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\n| Variable               | Description                                                                 |\n|------------------------|-----------------------------------------------------------------------------|\n| `MEMORA_DB_PATH`       | Local SQLite database path (default: `~/.local/share/memora/memories.db`)  |\n| `MEMORA_STORAGE_URI`   | Storage URI: `d1://\u003caccount\u003e/\u003cdb-id\u003e` (D1) or `s3://bucket/memories.db` (S3/R2) |\n| `CLOUDFLARE_API_TOKEN` | API token for D1 database access (required for `d1://` URI)                |\n| `MEMORA_CLOUD_ENCRYPT` | Encrypt database before uploading to cloud (`true`/`false`)                |\n| `MEMORA_CLOUD_COMPRESS`| Compress database before uploading to cloud (`true`/`false`)               |\n| `MEMORA_CACHE_DIR`     | Local cache directory for cloud-synced database                            |\n| `MEMORA_ALLOW_ANY_TAG` | Allow any tag without validation against allowlist (`1` to enable)         |\n| `MEMORA_TAG_FILE`      | Path to file containing allowed tags (one per line)                        |\n| `MEMORA_TAGS`          | Comma-separated list of allowed tags                                       |\n| `MEMORA_GRAPH_PORT`    | Port for the knowledge graph visualization server (default: `8765`)        |\n| `MEMORA_EMBEDDING_MODEL` | Embedding backend: `openai` (default), `sentence-transformers`, or `tfidf` |\n| `SENTENCE_TRANSFORMERS_MODEL` | Model for sentence-transformers (default: `all-MiniLM-L6-v2`)        |\n| `OPENAI_API_KEY`       | API key for OpenAI embeddings and LLM deduplication                        |\n| `OPENAI_BASE_URL`      | Base URL for OpenAI-compatible APIs (OpenRouter, Azure, etc.)              |\n| `OPENAI_EMBEDDING_MODEL` | OpenAI embedding model (default: `text-embedding-3-small`)               |\n| `MEMORA_LLM_ENABLED`   | Enable LLM-powered deduplication comparison (`true`/`false`, default: `true`) |\n| `MEMORA_LLM_MODEL`     | Model for deduplication comparison (default: `gpt-4o-mini`)                |\n| `CHAT_MODEL`           | Model for the chat panel (default: `deepseek/deepseek-chat`, falls back to `MEMORA_LLM_MODEL`) |\n| `AWS_PROFILE`          | AWS credentials profile from `~/.aws/credentials` (useful for R2)          |\n| `AWS_ENDPOINT_URL`     | S3-compatible endpoint for R2/MinIO                                        |\n| `R2_PUBLIC_DOMAIN`     | Public domain for R2 image URLs                                            |\n\n\u003c/details\u003e\n\n\u003cdetails id=\"semantic-search--embeddings\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eSemantic Search \u0026 Embeddings\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\nMemora supports three embedding backends:\n\n| Backend | Install | Quality | Speed |\n|---------|---------|---------|-------|\n| `openai` (default) | Included | High quality | API latency |\n| `sentence-transformers` | `pip install memora[local]` | Good, runs offline | Medium |\n| `tfidf` | Included | Basic keyword matching | Fast |\n\n**Automatic:** Embeddings and cross-references are computed automatically when you `memory_create`, `memory_update`, or `memory_create_batch`.\n\n**Manual rebuild required** when:\n- Changing `MEMORA_EMBEDDING_MODEL` after memories exist\n- Switching to a different sentence-transformers model\n\n```bash\n# After changing embedding model, rebuild all embeddings\nmemory_rebuild_embeddings\n\n# Then rebuild cross-references to update the knowledge graph\nmemory_rebuild_crossrefs\n```\n\n\u003c/details\u003e\n\n\u003cdetails id=\"live-graph-server\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eLive Graph Server\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\nA built-in HTTP server starts automatically with the MCP server, serving an interactive knowledge graph visualization.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"media/ui_details.png\" alt=\"Details Panel\" width=\"400\"\u003e\u003cbr\u003e\u003cem\u003eDetails Panel\u003c/em\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"media/ui_timeline.png\" alt=\"Timeline Panel\" width=\"400\"\u003e\u003cbr\u003e\u003cem\u003eTimeline Panel\u003c/em\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n**Access locally:**\n```\nhttp://localhost:8765/graph\n```\n\n**Remote access via SSH:**\n```bash\nssh -L 8765:localhost:8765 user@remote\n# Then open http://localhost:8765/graph in your browser\n```\n\n**Configuration:**\n```json\n{\n  \"env\": {\n    \"MEMORA_GRAPH_PORT\": \"8765\"\n  }\n}\n```\n\nTo disable: add `\"--no-graph\"` to args in your MCP config.\n\n### Graph UI Features\n\n- **Details Panel** - View memory content, metadata, tags, and related memories\n- **Timeline Panel** - Browse memories chronologically, click to highlight in graph\n- **History Panel** - Action log of all operations with grouped consecutive entries and clickable memory references (deleted memories shown as strikethrough)\n- **Chat Panel** - Ask questions about your memories using RAG-powered LLM chat with streaming responses and clickable `[Memory #ID]` references\n- **Time Slider** - Filter memories by date range, drag to explore history\n- **Real-time Updates** - Graph, timeline, and history update via SSE when memories change\n- **Filters** - Tag/section dropdowns, zoom controls\n- **Mermaid Rendering** - Code blocks render as diagrams\n\n### Node Colors\n\n- 🟣 **Tags** - Purple shades by tag\n- 🔴 **Issues** - Red (open), Orange (in progress), Green (resolved), Gray (won't fix)\n- 🔵 **TODOs** - Blue (open), Orange (in progress), Green (completed), Red (blocked)\n\nNode size reflects connection count.\n\n\u003c/details\u003e\n\n\u003cdetails id=\"cloud-graph\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eCloud Graph (Recommended for D1)\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\nWhen using Cloudflare D1 as your database, the graph visualization is hosted on Cloudflare Pages - no local server needed.\n\n**Benefits:**\n- Access from anywhere (no SSH tunneling)\n- Real-time updates via WebSocket\n- Multi-database support via `?db=` parameter\n- Secure access with Cloudflare Zero Trust\n\n**Setup:**\n\n1. **Create D1 database:**\n   ```bash\n   npx wrangler d1 create memora-graph\n   npx wrangler d1 execute memora-graph --file=memora-graph/schema.sql\n   ```\n\n2. **Deploy Pages:**\n   ```bash\n   cd memora-graph\n   npx wrangler pages deploy ./public --project-name=memora-graph\n   ```\n\n3. **Configure bindings** in Cloudflare Dashboard:\n   - Pages → memora-graph → Settings → Bindings\n   - Add D1: `DB_MEMORA` → your database\n   - Add R2: `R2_MEMORA` → your bucket (for images)\n\n4. **Configure MCP** with D1 URI:\n   ```json\n   {\n     \"env\": {\n       \"MEMORA_STORAGE_URI\": \"d1://\u003caccount-id\u003e/\u003cdatabase-id\u003e\",\n       \"CLOUDFLARE_API_TOKEN\": \"\u003cyour-token\u003e\"\n     }\n   }\n   ```\n\n**Access:** `https://memora-graph.pages.dev`\n\n**Secure with Zero Trust:**\n1. Cloudflare Dashboard → Zero Trust → Access → Applications\n2. Add application for `memora-graph.pages.dev`\n3. Create policy with allowed emails\n4. Pages → Settings → Enable Access Policy\n\nSee [`memora-graph/`](memora-graph/) for detailed setup and multi-database configuration.\n\n\u003c/details\u003e\n\n\u003cdetails id=\"chat-with-memories\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eChat with Memories\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\nAsk questions about your knowledge base directly from the graph UI. The chat panel uses RAG (Retrieval-Augmented Generation) to search relevant memories and stream LLM responses with tool calling support.\n\n- **Toggle** via the floating chat icon at bottom-right\n- **Semantic search** finds the most relevant memories as context\n- **Streaming responses** with clickable `[Memory #ID]` references that focus the graph node\n- **Tool calling** — the LLM can create, update, and delete memories directly from chat (e.g., \"save this as a memory\", \"delete memory #42\", \"update memory #10 with...\")\n- Works on both the local server and Cloudflare Pages deployment\n\n**Configure the chat model:**\n\n| Backend | Variable | Default |\n|---------|----------|---------|\n| Local server | `CHAT_MODEL` env var | Falls back to `MEMORA_LLM_MODEL` |\n| Cloudflare Pages | `CHAT_MODEL` in `wrangler.toml` | `deepseek/deepseek-chat` |\n\nRequires an OpenAI-compatible API (`OPENAI_API_KEY` + `OPENAI_BASE_URL` for local, `OPENROUTER_API_KEY` secret for Cloudflare). The chat model must support tool use (function calling).\n\n\u003c/details\u003e\n\n\u003cdetails id=\"llm-deduplication\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eLLM Deduplication\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\nFind and merge duplicate memories using AI-powered semantic comparison:\n\n```python\n# Find potential duplicates (uses cross-refs + optional LLM analysis)\nmemory_find_duplicates(min_similarity=0.7, max_similarity=0.95, limit=10, use_llm=True)\n\n# Merge duplicates (append, prepend, or replace strategies)\nmemory_merge(source_id=123, target_id=456, merge_strategy=\"append\")\n```\n\n**LLM Comparison** analyzes memory pairs and returns:\n- `verdict`: \"duplicate\", \"similar\", or \"different\"\n- `confidence`: 0.0-1.0 score\n- `reasoning`: Brief explanation\n- `suggested_action`: \"merge\", \"keep_both\", or \"review\"\n\nWorks with any OpenAI-compatible API (OpenAI, OpenRouter, Azure, etc.) via `OPENAI_BASE_URL`.\n\n\u003c/details\u003e\n\n\u003cdetails id=\"memory-automation-tools\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eMemory Automation Tools\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\nStructured tools for common memory types:\n\n```python\n# Create a TODO with status and priority\nmemory_create_todo(content=\"Implement feature X\", status=\"open\", priority=\"high\", category=\"backend\")\n\n# Create an issue with severity\nmemory_create_issue(content=\"Bug in login flow\", status=\"open\", severity=\"major\", component=\"auth\")\n\n# Create a section placeholder (hidden from graph)\nmemory_create_section(content=\"Architecture\", section=\"docs\", subsection=\"api\")\n```\n\n\u003c/details\u003e\n\n\u003cdetails id=\"memory-insights\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eMemory Insights\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\nAnalyze stored memories and surface actionable insights:\n\n```python\n# Full analysis with LLM-powered pattern detection\nmemory_insights(period=\"7d\", include_llm_analysis=True)\n\n# Quick summary without LLM (faster, no API key needed)\nmemory_insights(period=\"1m\", include_llm_analysis=False)\n```\n\nReturns:\n- **Activity summary** — memories created in the period, grouped by type and tag\n- **Open items** — open TODOs and issues with stale detection (configurable via `MEMORA_STALE_DAYS`, default 14)\n- **Consolidation candidates** — similar memory pairs that could be merged\n- **LLM analysis** — themes, focus areas, knowledge gaps, and a summary (requires `OPENAI_API_KEY`)\n\n\u003c/details\u003e\n\n\u003cdetails id=\"memory-linking\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eMemory Linking\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\nManage relationships between memories:\n\n```python\n# Create typed edges between memories\nmemory_link(from_id=1, to_id=2, edge_type=\"implements\", bidirectional=True)\n\n# Edge types: references, implements, supersedes, extends, contradicts, related_to\n\n# Remove links\nmemory_unlink(from_id=1, to_id=2)\n\n# Boost memory importance for ranking\nmemory_boost(memory_id=42, boost_amount=0.5)\n\n# Detect clusters of related memories\nmemory_clusters(min_cluster_size=2, min_score=0.3)\n```\n\n\u003c/details\u003e\n\n\u003cdetails id=\"knowledge-graph-export\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eKnowledge Graph Export (Optional)\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\nFor offline viewing, export memories as a static HTML file:\n\n```python\nmemory_export_graph(output_path=\"~/memories_graph.html\", min_score=0.25)\n```\n\nThis is optional - the Live Graph Server provides the same visualization with real-time updates.\n\n\u003c/details\u003e\n\n\u003cdetails id=\"neovim-integration\"\u003e\n\u003csummary\u003e\u003cbig\u003e\u003cbig\u003e\u003cstrong\u003eNeovim Integration\u003c/strong\u003e\u003c/big\u003e\u003c/big\u003e\u003c/summary\u003e\n\nBrowse memories directly in Neovim with Telescope. Copy the plugin to your config:\n\n```bash\n# For kickstart.nvim / lazy.nvim\ncp nvim/memora.lua ~/.config/nvim/lua/kickstart/plugins/\n```\n\n**Usage:** Press `\u003cleader\u003esm` to open the memory browser with fuzzy search and preview.\n\nRequires: `telescope.nvim`, `plenary.nvim`, and `memora` installed in your Python environment.\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentic-box%2Fmemora","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagentic-box%2Fmemora","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentic-box%2Fmemora/lists"}