{"id":47509645,"url":"https://github.com/alibaizhanov/mengram","last_synced_at":"2026-05-14T15:01:30.757Z","repository":{"id":337772953,"uuid":"1154785536","full_name":"alibaizhanov/mengram","owner":"alibaizhanov","description":"Human-like memory for AI agents — semantic, episodic \u0026 procedural. Experience-driven procedures that learn from failures. Free API, Python \u0026 JS SDKs, LangChain, CrewAI \u0026 OpenClaw integrations.","archived":false,"fork":false,"pushed_at":"2026-05-13T13:46:55.000Z","size":2421,"stargazers_count":165,"open_issues_count":6,"forks_count":23,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-05-13T15:37:16.345Z","etag":null,"topics":["ai-agents","ai-memory","cognitive-profile","crewai","episodic-memory","langchain","llm","mcp-server","memory-layer","procedural-memory","rag","semantic-memory"],"latest_commit_sha":null,"homepage":"https://mengram.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alibaizhanov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["alibaizhanov"]}},"created_at":"2026-02-10T19:20:33.000Z","updated_at":"2026-05-13T14:08:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/alibaizhanov/mengram","commit_stats":null,"previous_names":["alibaizhanov/obsidian-mem"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/alibaizhanov/mengram","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaizhanov%2Fmengram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaizhanov%2Fmengram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaizhanov%2Fmengram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaizhanov%2Fmengram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alibaizhanov","download_url":"https://codeload.github.com/alibaizhanov/mengram/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaizhanov%2Fmengram/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33030380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"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":["ai-agents","ai-memory","cognitive-profile","crewai","episodic-memory","langchain","llm","mcp-server","memory-layer","procedural-memory","rag","semantic-memory"],"created_at":"2026-03-27T10:00:19.138Z","updated_at":"2026-05-14T15:01:30.751Z","avatar_url":"https://github.com/alibaizhanov.png","language":"Python","funding_links":["https://github.com/sponsors/alibaizhanov"],"categories":["MCP 服务器精选列表","LLMOps","Tools","Python","Knowledge Management \u0026 Memory","🧠 Knowledge \u0026 Memory (62 servers)"],"sub_categories":["🧠 知识、记忆与 RAG","Observability","Services"],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.shields.io/badge/Mengram-a855f7?style=for-the-badge\u0026logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjAgMTIwIj48cGF0aCBkPSJNNjAgMTYgUTkyIDE2IDk2IDQ4IFExMDAgNzggNzIgODggUTUwIDk2IDM4IDc2IFEyNiA1OCA0NiA0NiBRNjIgMzggNzAgNTIgUTc2IDY0IDYyIDY4IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PGNpcmNsZSBjeD0iNjIiIGN5PSI2OCIgcj0iOCIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==\"\u003e\n  \u003cimg alt=\"Mengram\" src=\"https://img.shields.io/badge/Mengram-a855f7?style=for-the-badge\u0026logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjAgMTIwIj48cGF0aCBkPSJNNjAgMTYgUTkyIDE2IDk2IDQ4IFExMDAgNzggNzIgODggUTUwIDk2IDM4IDc2IFEyNiA1OCA0NiA0NiBRNjIgMzggNzAgNTIgUTc2IDY0IDYyIDY4IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PGNpcmNsZSBjeD0iNjIiIGN5PSI2OCIgcj0iOCIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==\"\u003e\n\u003c/picture\u003e\n\n### Give your AI agents memory that actually learns\n\n[![PyPI](https://img.shields.io/pypi/v/mengram-ai)](https://pypi.org/project/mengram-ai/)\n[![npm](https://img.shields.io/npm/v/mengram-ai)](https://www.npmjs.com/package/mengram-ai)\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/mengram-ai)](https://pypi.org/project/mengram-ai/)\n\n**[Website](https://mengram.io)** · **[Get API Key](https://mengram.io/#signup)** · **[Docs](https://mengram.io/docs)** · **[Console](https://mengram.io/dashboard)** · **[Examples](examples/)**\n\n\u003c/div\u003e\n\n```bash\npip install mengram-ai   # or: npm install mengram-ai\n```\n\n```python\nfrom mengram import Mengram\nm = Mengram(api_key=\"om-...\")           # Free key → mengram.io\n\nm.add([{\"role\": \"user\", \"content\": \"I use Python and deploy to Railway\"}])\nm.search(\"tech stack\")                  # → facts\nm.ask(\"what's my tech stack?\")          # → synthesized answer + citations\nm.episodes(query=\"deployment\")          # → events\nm.procedures(query=\"deploy\")            # → workflows that evolve from failures\n```\n\nNative multilingual: ask in Russian, Chinese, Spanish, Japanese — Mengram retrieves and answers across 23 languages (Cohere multilingual embeddings + rerank).\n\n\n\n---\n\n## Claude Code — Zero-Config Memory\n\nTwo commands. Claude Code remembers everything across sessions automatically.\n\n```bash\npip install mengram-ai\nmengram setup              # Sign up + install hooks (interactive)\n```\n\nOr manually: `export MENGRAM_API_KEY=om-...` → `mengram hook install`\n\nWhat happens:\n\n```\nSession Start  →  Loads your cognitive profile (who you are, preferences, tech stack)\nEvery Prompt   →  Searches past sessions for relevant context (auto-recall)\nAfter Response →  Saves new knowledge in background (auto-save)\n```\n\nNo manual saves. No tool calls. Claude just knows what you worked on yesterday.\n\n```bash\nmengram hook status     # check what's installed\nmengram hook uninstall  # remove all hooks\n```\n\n---\n\n## Why Mengram?\n\nEvery AI memory tool stores facts. Mengram stores **3 types of memory** — and procedures **evolve when they fail**.\n\n|  | Mengram | claude-mem | Mem0 | Zep | Letta |\n|---|:---:|:---:|:---:|:---:|:---:|\n| Semantic memory (facts, preferences) | **Yes** | Yes | Yes | Yes | Yes |\n| **Episodic memory (events, decisions)** | **Yes** | Partial | No | No | Partial |\n| **Procedural memory (workflows)** | **Yes** | No | No | No | No |\n| **Procedures evolve from failures** | **Yes** | No | No | No | No |\n| **Cognitive Profile** | **Yes** | No | No | No | No |\n| **Native multilingual (23 languages)** | **Yes** | No | No | No | No |\n| **Ask \u0026 Citations (synthesized answer)** | **Yes** | No | No | No | No |\n| Multi-user isolation | **Yes** | No | Yes | Yes | No |\n| Knowledge graph | **Yes** | No | Yes | Yes | Yes |\n| Claude Code hooks (auto-save/recall) | **Yes** | **Yes** | No | No | No |\n| LangChain + CrewAI + MCP | **Yes** | No | Partial | Partial | Partial |\n| **Import ChatGPT / Obsidian** | **Yes** | No | No | No | No |\n| Pricing | **Free tier** | Free / OSS | $19-249/mo | Enterprise | Self-host |\n\n## Get Started in 30 Seconds\n\n**1. Install**\n\n```bash\npip install mengram-ai\n```\n\n**2. Setup** (creates account + installs Claude Code hooks)\n\n```bash\nmengram setup\n```\n\nOr get a key manually at [mengram.io](https://mengram.io/#signup) and `export MENGRAM_API_KEY=om-...`\n\n**3. Use**\n\n```python\nfrom mengram import Mengram\n\nm = Mengram(api_key=\"om-...\")\n\n# Add a conversation — auto-extracts facts, events, and workflows\nm.add([\n    {\"role\": \"user\", \"content\": \"Deployed to Railway today. Build passed but forgot migrations — DB crashed. Fixed by adding a pre-deploy check.\"},\n])\n\n# Search across all 3 memory types at once\nresults = m.search_all(\"deployment issues\")\n# → {semantic: [...], episodic: [...], procedural: [...]}\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eFile Upload (PDF, DOCX, TXT, MD)\u003c/b\u003e\u003c/summary\u003e\n\n```python\n# Upload a PDF — auto-extracts memories using vision AI\nresult = m.add_file(\"meeting-notes.pdf\")\n# → {\"status\": \"accepted\", \"job_id\": \"job-...\", \"page_count\": 12}\n\n# Poll for completion\nm.job_status(result[\"job_id\"])\n```\n\n```javascript\n// Node.js — pass a file path\nawait m.addFile('./report.pdf');\n\n// Browser — pass a File object from \u003cinput type=\"file\"\u003e\nawait m.addFile(fileInput.files[0]);\n```\n\n```bash\n# REST API\ncurl -X POST https://mengram.io/v1/add_file \\\n  -H \"Authorization: Bearer om-...\" \\\n  -F \"file=@meeting-notes.pdf\" \\\n  -F \"user_id=default\"\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eJavaScript / TypeScript\u003c/b\u003e\u003c/summary\u003e\n\n```bash\nnpm install mengram-ai\n```\n\n```javascript\nconst { MengramClient } = require('mengram-ai');\nconst m = new MengramClient('om-...');\n\nawait m.add([{ role: 'user', content: 'Fixed OOM by adding Redis cache layer' }]);\nconst results = await m.searchAll('database issues');\n// → { semantic: [...], episodic: [...], procedural: [...] }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eREST API (curl)\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n# Add memory\ncurl -X POST https://mengram.io/v1/add \\\n  -H \"Authorization: Bearer om-...\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"I prefer dark mode and vim keybindings\"}]}'\n\n# Search all 3 types\ncurl -X POST https://mengram.io/v1/search/all \\\n  -H \"Authorization: Bearer om-...\" \\\n  -d '{\"query\": \"user preferences\"}'\n```\n\n\u003c/details\u003e\n\n## 3 Memory Types\n\n### Semantic — facts, preferences, knowledge\n\n```python\nm.search(\"tech stack\")\n# → [\"Uses Python 3.12\", \"Deploys to Railway\", \"PostgreSQL with pgvector\"]\n```\n\n### Episodic — events, decisions, outcomes\n\n```python\nm.episodes(query=\"deployment\")\n# → [{summary: \"DB crashed due to missing migrations\", outcome: \"resolved\", date: \"2025-05-12\"}]\n```\n\n### Procedural — workflows that evolve\n\n```\nWeek 1:  \"Deploy\" → build → push → deploy\n                                         ↓ FAILURE: forgot migrations\nWeek 2:  \"Deploy\" v2 → build → run migrations → push → deploy\n                                                          ↓ FAILURE: OOM\nWeek 3:  \"Deploy\" v3 → build → run migrations → check memory → push → deploy ✅\n```\n\nThis happens **automatically** when you report failures:\n\n```python\nm.procedure_feedback(proc_id, success=False,\n                     context=\"OOM error on step 3\", failed_at_step=3)\n# → Procedure evolves to v3 with new step added\n```\n\nOr **fully automatic** — just add conversations and Mengram detects failures and evolves procedures:\n\n```python\nm.add([{\"role\": \"user\", \"content\": \"Deploy failed again — OOM on the build step\"}])\n# → Episode created → linked to \"Deploy\" procedure → failure detected → v3 created\n```\n\n## Ask Your Memory (RAG built-in)\n\n`m.ask()` returns a synthesized answer with citations — not a raw fact list.\nMengram embeds your query, retrieves the top relevant facts, and uses\nCohere Chat to write a grounded answer with native source attribution.\n\n```python\nresult = m.ask(\"what programming languages do I use?\")\n\nprint(result[\"answer\"])\n# 'You use Python and Rust. Python is your daily language [1] and\n#  Rust is your favorite [2]. You also know Java for enterprise\n#  systems [3].'\n\nfor cit in result[\"citations\"]:\n    print(f'  \"{cit[\"text\"]}\" → {cit[\"sources\"][0][\"fact\"]}')\n# \"Python and Rust\" → uses Python daily for backend development\n# \"favorite [2]\"   → Rust is favorite language\n# \"Java\"           → specializes in Java/Spring Boot\n```\n\nMultilingual: ask in any of 23 languages, get an answer in the same language with citations linking back to facts in the original language they were stored. Premium feature (Pro / Growth / Business).\n\n## Cognitive Profile\n\nOne API call generates a system prompt from all memories:\n\n```python\nprofile = m.get_profile()\n# → \"You are talking to Ali, a developer in Almaty. Uses Python, PostgreSQL,\n#    and Railway. Recently debugged pgvector deployment. Prefers direct\n#    communication and practical next steps.\"\n```\n\nInsert into any LLM's system prompt for instant personalization.\n\n## Import Existing Data\n\nKill the cold-start problem:\n\n```bash\nmengram import chatgpt ~/Downloads/chatgpt-export.zip --cloud   # ChatGPT history\nmengram import obsidian ~/Documents/MyVault --cloud              # Obsidian vault\nmengram import files notes/*.md --cloud                          # Any text/markdown\n```\n\n## Integrations\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n**Claude Code** — Auto-memory hooks\n\n```bash\nmengram hook install\n```\n\n3 hooks: profile on start, recall on every prompt, save after responses. Zero manual effort.\n\n[Docs](https://mengram.io/docs/claude-code)\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n**MCP Server** — Claude Desktop, Cursor, Windsurf\n\n```json\n{\n  \"mcpServers\": {\n    \"mengram\": {\n      \"command\": \"mengram\",\n      \"args\": [\"server\", \"--cloud\"],\n      \"env\": { \"MENGRAM_API_KEY\": \"om-...\" }\n    }\n  }\n}\n```\n\n29 tools for memory management.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n**LangChain** — `pip install langchain-mengram`\n\n```python\nfrom langchain_mengram import (\n    MengramRetriever,\n    MengramChatMessageHistory,\n)\n\nretriever = MengramRetriever(api_key=\"om-...\")\ndocs = retriever.invoke(\"deployment issues\")\n```\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n**CrewAI**\n\n```python\nfrom integrations.crewai import create_mengram_tools\n\ntools = create_mengram_tools(api_key=\"om-...\")\n# → 5 tools: search, remember, profile,\n#   save_workflow, workflow_feedback\n\nagent = Agent(role=\"Support\", tools=tools)\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n**OpenClaw**\n\n```bash\nopenclaw plugins install openclaw-mengram\n```\n\nAuto-recall before every turn, auto-capture after. 12 tools, slash commands, Graph RAG.\n\n[GitHub](https://github.com/alibaizhanov/openclaw-mengram) · [npm](https://www.npmjs.com/package/openclaw-mengram)\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n**CLI** — Full command-line interface\n\n```bash\nmengram search \"deployment\" --cloud\nmengram profile --cloud\nmengram import chatgpt export.zip --cloud\nmengram hook install\n```\n\n[Docs](https://mengram.io/docs/cli)\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n**Claude Managed Agents** — MCP memory for hosted agents\n\n```json\n{\n  \"mcp_servers\": [{\n    \"type\": \"url\",\n    \"name\": \"mengram\",\n    \"url\": \"https://mengram.io/mcp/sse\"\n  }]\n}\n```\n\n29 memory tools via MCP. [Docs](https://mengram.io/docs/managed-agents)\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n**n8n** — HTTP nodes for any workflow\n\n```\nPOST https://mengram.io/v1/add\nPOST https://mengram.io/v1/search\n```\n\nNo code needed — drag and drop memory into any n8n workflow.\n\n[Docs](https://mengram.io/docs/n8n)\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Multi-User Isolation\n\nOne API key, many users — each sees only their own data:\n\n```python\nm.add([...], user_id=\"alice\")\nm.add([...], user_id=\"bob\")\n\nm.search_all(\"preferences\", user_id=\"alice\")  # Only Alice's memories\nm.get_profile(user_id=\"alice\")                 # Alice's cognitive profile\n```\n\n## Async Client\n\nNon-blocking Python client built on httpx:\n\n```python\nfrom mengram import AsyncMengram\n\nasync with AsyncMengram() as m:\n    await m.add([{\"role\": \"user\", \"content\": \"I use async/await\"}])\n    results = await m.search(\"async\")\n    profile = await m.get_profile()\n```\n\nInstall with `pip install mengram-ai[async]`.\n\n## Metadata Filters\n\nFilter search results by metadata:\n\n```python\nresults = m.search(\"config\", filters={\"agent_id\": \"support-bot\", \"app_id\": \"prod\"})\n```\n\n## Webhooks\n\nGet notified when memories change:\n\n```python\nm.create_webhook(\n    url=\"https://your-app.com/hook\",\n    event_types=[\"memory_add\", \"memory_update\"],\n)\n```\n\n## Agent Templates\n\nClone, set API key, run in 5 minutes:\n\n| Template | Stack | What it shows |\n|---|---|---|\n| **[DevOps Agent](examples/devops-agent/)** | Python SDK | Procedures that evolve from deployment failures |\n| **[Customer Support](examples/customer-support-agent/)** | CrewAI | Agent with 5 memory tools, remembers returning customers |\n| **[Personal Assistant](examples/personal-assistant/)** | LangChain | Cognitive profile + auto-saving chat history |\n\n```bash\ncd examples/devops-agent \u0026\u0026 pip install -r requirements.txt\nexport MENGRAM_API_KEY=om-...\npython main.py\n```\n\n## Use with AI Agents\n\nMengram works as a persistent memory backend for autonomous agents. Your agent stores what it learns, and recalls it on the next run — getting smarter over time.\n\n```python\nfrom mengram import Mengram\n\nm = Mengram(api_key=\"om-...\")\n\n# Agent completes a task → store what happened\nm.add([\n    {\"role\": \"user\", \"content\": \"Apply to Acme Corp on Greenhouse\"},\n    {\"role\": \"assistant\", \"content\": \"Applied successfully. Had to use React Select workaround for dropdowns.\"},\n])\n# → Extracts: fact (\"applied to Acme Corp\"), episode (\"Greenhouse application\"),\n#   procedure (\"React Select dropdown workaround\")\n\n# Next run → agent recalls what worked before\ncontext = m.search_all(\"Greenhouse application tips\")\n# → Returns past procedures, failures, and successful strategies\n\n# Report outcome → procedures evolve\nm.procedure_feedback(proc_id, success=False,\n                     context=\"Dropdown fix stopped working\")\n# → Procedure auto-evolves to a new version\n```\n\nWorks with any agent framework — CrewAI, LangChain, AutoGPT, custom loops. The agent just calls `add()` after actions and `search()` before decisions.\n\n## Self-Hosted (Ollama)\n\nWhen running locally with Ollama, use models with **8B+ parameters** and **8K+ context window**. The extraction prompt is ~4,000 tokens — smaller models will hallucinate or mix examples with real data.\n\n| Model | Parameters | Works? |\n|-------|-----------|--------|\n| `llama3.1:8b` | 8B | Yes |\n| `mistral:7b` | 7B | Yes |\n| `gemma2:9b` | 9B | Yes |\n| `llama3.1:70b` | 70B | Best |\n| `phi4-mini:3.8b` | 3.8B | No — context too small |\n\n## API Reference\n\n| Endpoint | Description |\n|---|---|\n| `POST /v1/add` | Add memories (auto-extracts all 3 types) |\n| `POST /v1/add_text` | Add memories from plain text |\n| `POST /v1/add_file` | Upload file (PDF, DOCX, TXT, MD) — vision AI extraction |\n| `POST /v1/search` | Semantic search |\n| `POST /v1/search/all` | Unified search (semantic + episodic + procedural) |\n| `GET /v1/episodes/search` | Search events and decisions |\n| `GET /v1/procedures/search` | Search workflows |\n| `PATCH /v1/procedures/{id}/feedback` | Report outcome — triggers evolution |\n| `GET /v1/procedures/{id}/history` | Version history + evolution log |\n| `GET /v1/profile` | Cognitive Profile |\n| `GET /v1/triggers` | Smart Triggers (reminders, contradictions, patterns) |\n| `POST /v1/agents/run` | Memory agents (Curator, Connector, Digest) |\n| `GET /v1/me` | Account info |\n\nFull interactive docs: **[mengram.io/docs](https://mengram.io/docs)**\n\n### Quota Headers\n\nEvery authenticated response includes usage headers:\n\n| Header | Description |\n|--------|-------------|\n| `X-Quota-Add-Used` | Add calls used this month |\n| `X-Quota-Add-Limit` | Add calls allowed this month |\n| `X-Quota-Search-Used` | Search calls used this month |\n| `X-Quota-Search-Limit` | Search calls allowed this month |\n\nSDKs expose this via `.quota`:\n\n```python\nm.search(\"test\")\nprint(m.quota)  # {\"add\": {\"used\": 5, \"limit\": 30}, \"search\": {\"used\": 12, \"limit\": 100}}\n```\n\n## Community\n\n- **[GitHub Issues](https://github.com/alibaizhanov/mengram/issues)** — bug reports, feature requests\n- **[API Docs](https://mengram.io/docs)** — interactive Swagger UI\n- **[Examples](examples/)** — ready-to-run agent templates\n\n## License\n\nApache 2.0 — free for commercial use.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**[Get your free API key](https://mengram.io/#signup)** · Built by **[Ali Baizhanov](https://github.com/alibaizhanov)** · **[mengram.io](https://mengram.io)**\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falibaizhanov%2Fmengram","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falibaizhanov%2Fmengram","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falibaizhanov%2Fmengram/lists"}