{"id":48974227,"url":"https://github.com/mem9-ai/mem9","last_synced_at":"2026-04-18T08:01:42.892Z","repository":{"id":342973143,"uuid":"1175756746","full_name":"mem9-ai/mem9","owner":"mem9-ai","description":"Unlimited memory for OpenClaw","archived":false,"fork":false,"pushed_at":"2026-04-15T05:01:58.000Z","size":26650,"stargazers_count":960,"open_issues_count":60,"forks_count":98,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-04-15T06:33:31.049Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/mem9-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-08T05:52:21.000Z","updated_at":"2026-04-15T04:57:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mem9-ai/mem9","commit_stats":null,"previous_names":["mem9-ai/mem9"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mem9-ai/mem9","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mem9-ai%2Fmem9","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mem9-ai%2Fmem9/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mem9-ai%2Fmem9/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mem9-ai%2Fmem9/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mem9-ai","download_url":"https://codeload.github.com/mem9-ai/mem9/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mem9-ai%2Fmem9/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31887139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T11:36:10.202Z","status":"ssl_error","status_checked_at":"2026-04-16T11:36:09.652Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":[],"created_at":"2026-04-18T08:00:52.240Z","updated_at":"2026-04-18T08:01:42.886Z","avatar_url":"https://github.com/mem9-ai.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"site/public/mem9-wordmark-square.svg\" alt=\"mem9\" width=\"180\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003ePersistent Memory for AI Agents.\u003c/strong\u003e\u003cbr/\u003e\n  Your agents forget everything between sessions. mem9 fixes that with persistent memory across sessions and machines, shared memory for multi-agent workflows, and hybrid recall with a visual dashboard.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  For OpenClaw and ClawHub installs, start here: \u003ca href=\"https://mem9.ai/openclaw-memory\"\u003emem9.ai/openclaw-memory\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://tidbcloud.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/Powered%20by-TiDB%20Cloud%20Starter-E60C0C?style=flat\u0026logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj48cGF0aCBkPSJNMTEuOTk4NCAxLjk5OTAyTDMuNzE4NzUgNy40OTkwMkwzLjcxODc1IDE3TDExLjk5NjQgMjIuNUwyMC4yODE0IDE3VjcuNDk5MDJMMTEuOTk4NCAxLjk5OTAyWiIgZmlsbD0id2hpdGUiLz48L3N2Zz4=\" alt=\"Powered by TiDB Cloud Starter\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://goreportcard.com/report/github.com/mem9-ai/mem9/server\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/mem9-ai/mem9/server\" alt=\"Go Report Card\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/mem9-ai/mem9/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache_2.0-blue.svg\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/mem9-ai/mem9\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/mem9-ai/mem9?style=social\" alt=\"Stars\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## 🚀 Quick Start\n\n**Server-based memory via mem9-server.**\n\n1. **Deploy mnemo-server.**\n\n    ```bash\n    cd server \u0026\u0026 MNEMO_DSN=\"user:pass@tcp(host:4000)/mnemos?parseTime=true\" go run ./cmd/mnemo-server\n    ```\n\n2. **Install the plugin for your agent (pick one).**\n\n    | Platform | Install |\n    |----------|---------|\n    | **Claude Code** | `/plugin marketplace add mem9-ai/mem9` then `/plugin install mem9@mem9` |\n    | **OpenCode** | Add `\"plugin\": [\"@mem9/opencode\"]` to `opencode.json` |\n    | **OpenClaw** | Add `mnemo` to `openclaw.json` plugins (see [openclaw-plugin/README](openclaw-plugin/README.md)) |\n\n3. **Provision a tenant and set credentials.**\n\n    ```bash\n    curl -s -X POST localhost:8080/v1alpha1/mem9s\n    # → {\"id\":\"...\"}\n\n    export MEM9_API_URL=\"http://localhost:8080\"\n    export MEM9_API_KEY=\"...\"\n    ```\n\n    All agents pointing at the same tenant ID share one memory pool.\n\n---\n\n## The Problem\n\nAI coding agents — Claude Code, OpenCode, OpenClaw, and others — often maintain separate local memory files. As a result:\n\n- 🧠 **Amnesia** — Agents forget everything when a session ends\n- 🏝️ **Silos** — One agent can't access what another learned yesterday\n- 📁 **Local files** — Memory is tied to a single machine, lost when you switch devices\n- 🚫 **No team sharing** — Your teammate's agent can't benefit from your agent's discoveries\n\n**mnemos** gives every agent a shared, cloud-persistent memory with hybrid vector + keyword search — powered by [TiDB Cloud Starter](https://tidbcloud.com).\n\n## Why TiDB Cloud Starter?\n\nmnemos uses [TiDB Cloud Starter](https://tidbcloud.com) (formerly TiDB Cloud Serverless) as the backing store for mnemo-server:\n\n| Feature | What it means for you |\n|---|---|\n| **Free tier** | 25 GiB storage, 250M Request Units/month — enough for most individual and small team use |\n| **TiDB Cloud Zero** | Instant database provisioning via API — no signup required for first 30 days |\n| **Native VECTOR type** | Hybrid search (vector + keyword) without a separate vector database |\n| **Auto-embedding (`EMBED_TEXT`)** | TiDB generates embeddings server-side — no OpenAI key needed for semantic search |\n| **Zero ops** | No servers to manage, no scaling to worry about, automatic backups |\n| **MySQL compatible** | Migrate to self-hosted TiDB or MySQL anytime |\n\nThis architecture keeps agent plugins **stateless** — all state lives in mnemo-server, backed by TiDB.\n\n## Supported Agents\n\nmnemos provides native plugins for major AI coding agent platforms:\n\n| Platform | Plugin | How It Works | Install Guide |\n|---|---|---|---|\n| **Claude Code** | Hooks + Skills | Auto-loads memories on session start, auto-saves on stop | [`claude-plugin/README.md`](claude-plugin/README.md) |\n| **OpenCode** | Plugin SDK | `system.transform` injects memories, `session.idle` auto-captures | [`opencode-plugin/README.md`](opencode-plugin/README.md) |\n| **OpenClaw** | Memory Plugin | Replaces built-in memory slot (`kind: \"memory\"`), framework manages lifecycle | [`openclaw-plugin/README.md`](openclaw-plugin/README.md) |\n| **Any HTTP client** | REST API | `curl` to mnemo-server | [API Reference](#api-reference) |\n\nAll plugins expose the same 5 tools: `memory_store`, `memory_search`, `memory_get`, `memory_update`, `memory_delete`.\n\n\u003e [!NOTE]\n\u003e\n\u003e **🤖 For AI Agents**: Use the [Quick Start](#-quick-start) above to deploy mnemo-server and provision an API key, then follow the platform-specific README for configuration details.\n\n## Stateless Agents, Cloud Memory\n\nA key design principle: **agent plugins carry zero state.** All memory lives in mnemo-server, backed by TiDB/MySQL. This means:\n\n- **Agent plugins stay stateless** — deploy any number of agent instances freely; they all share the same memory pool via mnemo-server\n- **Switch machines freely** — your agent's memory follows you, not your laptop\n- **Multi-agent collaboration** — Claude Code, OpenCode, OpenClaw, and any HTTP client share memories when pointed at the same server\n- **Centralized control** — rate limits and audit live in one place\n\n## Related Repositories\n\nThe broader mem9 product surface is split across a few repositories and workstreams:\n\n| Repo / Name | Where | What it owns |\n|---|---|---|\n| `mem9` | current repo | Core Go memory API, agent plugins, CLI, website, docs site, dashboard frontend, benchmark harnesses |\n| `mem9-node` | sibling repo, commonly `../mem9-node` | Node/Nest backend for dashboard analysis workflows, async jobs, and workers |\n| `mem9-benchmark` | benchmark-focused repo / workstream name you may hear internally | Benchmark-heavy evaluation work; the benchmark harnesses that currently ship with `mem9` live under [`benchmark/`](benchmark/) in this repo |\n| `mem9-tester` | private repo, often checked out as `../mem9-tester` | Automated OpenClaw install / verification harness for `SKILL.md` flows, smoke tests, and artifact capture |\n\nNotes:\n\n- [`dashboard/app/`](dashboard/app/) in this repo is the frontend half of the dashboard product. The backend half for async analysis lives in `mem9-node`, especially its `apps/api` and `apps/worker`.\n- `mem9-tester` is not part of the production runtime. It exists to validate installation / reconnect behavior and reduce fragile manual testing.\n- If someone says `mem9-benchmark`, they usually mean the benchmark work around mem9 evaluation. In this repo, that work currently starts in [`benchmark/`](benchmark/).\n\n## API Reference\n\nAgent identity: `X-Mnemo-Agent-Id` header.\n\n| Method | Path | Description |\n|--------|------|-------------|\n| `POST` | `/v1alpha1/mem9s` | Provision tenant (no auth). Returns `{ \"id\" }`. Accepts optional `utm_*` query params for attribution logging. |\n| `POST` | `/v1alpha1/mem9s/{tenantID}/memories` | Legacy unified write endpoint. Tenant key travels in the URL path. |\n| `GET` | `/v1alpha1/mem9s/{tenantID}/memories` | Legacy search endpoint for `tenantID`-configured clients. |\n| `GET` | `/v1alpha1/mem9s/{tenantID}/memories/:id` | Legacy get-by-id endpoint. |\n| `PUT` | `/v1alpha1/mem9s/{tenantID}/memories/:id` | Legacy update endpoint. Optional `If-Match` for version check. |\n| `DELETE` | `/v1alpha1/mem9s/{tenantID}/memories/:id` | Legacy delete endpoint. |\n| `POST` | `/v1alpha2/mem9s/memories` | Preferred unified write endpoint. Requires `X-API-Key` header. |\n| `GET` | `/v1alpha2/mem9s/memories` | Preferred search endpoint. Requires `X-API-Key` header. |\n| `GET` | `/v1alpha2/mem9s/memories/:id` | Preferred get-by-id endpoint. Requires `X-API-Key` header. |\n| `PUT` | `/v1alpha2/mem9s/memories/:id` | Preferred update endpoint. Requires `X-API-Key` header. |\n| `DELETE` | `/v1alpha2/mem9s/memories/:id` | Preferred delete endpoint. Requires `X-API-Key` header. |\n\n## Self-Hosting\n\n### Environment Variables\n\nMinimal runtime config is `MNEMO_DSN`. Everything else is optional or only applies to specific deployment modes.\n\n#### Core Server\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `MNEMO_DSN` | Yes | — | Database connection string |\n| `MNEMO_PORT` | No | `8080` | HTTP listen port |\n| `MNEMO_DB_BACKEND` | No | `tidb` | Database backend: `tidb`, `postgres`, or `db9` |\n| `MNEMO_RATE_LIMIT` | No | `100` | Requests/sec per IP |\n| `MNEMO_RATE_BURST` | No | `200` | Burst size |\n| `MNEMO_UPLOAD_DIR` | No | `./uploads` | Directory used for uploaded file storage |\n| `MNEMO_WORKER_CONCURRENCY` | No | `5` | Parallelism for async upload ingest workers |\n\n#### Embedding And Ingest\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `MNEMO_EMBED_AUTO_MODEL` | No | — | TiDB/db9 `EMBED_TEXT()` model name. When set, it takes precedence over client-side embeddings |\n| `MNEMO_EMBED_AUTO_DIMS` | No | `1024` | Vector dimensions for `MNEMO_EMBED_AUTO_MODEL` |\n| `MNEMO_EMBED_API_KEY` | No | — | Client-side embedding provider API key. Optional for local OpenAI-compatible endpoints when `MNEMO_EMBED_BASE_URL` is set |\n| `MNEMO_EMBED_BASE_URL` | No | `https://api.openai.com/v1` when client-side embeddings are enabled | Custom OpenAI-compatible embedding endpoint |\n| `MNEMO_EMBED_MODEL` | No | `text-embedding-3-small` | Client-side embedding model name |\n| `MNEMO_EMBED_DIMS` | No | `1536` | Client-side embedding vector dimensions |\n| `MNEMO_LLM_API_KEY` | No | — | LLM provider API key. If unset, smart ingest falls back to raw ingest behavior |\n| `MNEMO_LLM_BASE_URL` | No | `https://api.openai.com/v1` when LLM ingest is enabled | Custom OpenAI-compatible chat endpoint |\n| `MNEMO_LLM_MODEL` | No | `gpt-4o-mini` | LLM model for smart ingest |\n| `MNEMO_LLM_TEMPERATURE` | No | `0.1` | LLM temperature for smart ingest |\n| `MNEMO_INGEST_MODE` | No | `smart` | Ingest mode: `smart` or `raw` |\n| `MNEMO_FTS_ENABLED` | No | `false` | Enable TiDB full-text search path. Only set this on clusters that support TiDB FTS |\n\n#### Provisioning And Pooling\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `MNEMO_TIDB_ZERO_ENABLED` | No | `true` | Enable TiDB Zero auto-provisioning for `tidb` backend. When enabled, it takes precedence over TiDB Cloud Pool provisioning |\n| `MNEMO_TIDB_ZERO_API_URL` | No | `https://zero.tidbapi.com/v1alpha1` | TiDB Zero API base URL |\n| `MNEMO_TIDBCLOUD_API_URL` | No | `https://serverless.tidbapi.com` | TiDB Cloud Pool API base URL |\n| `MNEMO_TIDBCLOUD_POOL_ID` | No | `2` | TiDB Cloud Pool ID used for cluster takeover |\n| `MNEMO_TIDBCLOUD_API_KEY` | No | — | TiDB Cloud Pool API key. Used only when `MNEMO_TIDB_ZERO_ENABLED=false`, `MNEMO_DB_BACKEND=tidb`, and pool takeover is desired |\n| `MNEMO_TIDBCLOUD_API_SECRET` | No | — | TiDB Cloud Pool API secret for digest auth. Same conditions as `MNEMO_TIDBCLOUD_API_KEY` |\n| `MNEMO_TENANT_POOL_MAX_IDLE` | No | `5` | Max idle tenant database connections kept in the in-process tenant pool |\n| `MNEMO_TENANT_POOL_MAX_OPEN` | No | `10` | Max open connections per tenant database handle |\n| `MNEMO_TENANT_POOL_CONNECT_TIMEOUT` | No | `3s` | Timeout for tenant pool cold-connect ping/open attempts |\n| `MNEMO_TENANT_POOL_IDLE_TIMEOUT` | No | `10m` | Idle timeout for tenant database handles |\n| `MNEMO_TENANT_POOL_TOTAL_LIMIT` | No | `200` | Total tenant database handles allowed across the process |\n| `MNEMO_CLUSTER_BLACKLIST` | No | — | Comma-separated TiDB cluster IDs whose spend-limit errors should be translated to HTTP 429 instead of 503 |\n\n#### Security And Debugging\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `MNEMO_ENCRYPT_TYPE` | No | `plain` | Encryption type for tenant DB passwords: `plain`, `md5`, or `kms`. ⚠️ **One-time deployment decision — cannot be changed without re-provisioning all tenants.** |\n| `MNEMO_ENCRYPT_KEY` | No | — | Encryption key (for `md5`) or KMS key ID (for `kms`). Required when `MNEMO_ENCRYPT_TYPE` is not `plain`. |\n| `MNEMO_DEBUG_LLM` | No | `false` | Log raw LLM responses for debugging parse errors. ⚠️ **Dev/test only — responses may contain user data.** |\n\n#### AWS KMS Environment\n\nThese are only relevant when `MNEMO_ENCRYPT_TYPE=kms`. The server uses the AWS SDK default config chain; the common environment-based inputs referenced in code are:\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `AWS_ACCESS_KEY_ID` | No | — | AWS access key ID for KMS auth when using environment-based AWS credentials |\n| `AWS_SECRET_ACCESS_KEY` | No | — | AWS secret access key for KMS auth when using environment-based AWS credentials |\n| `AWS_REGION` | No | — | AWS region used to create the KMS client |\n\n#### Test-Only\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `MNEMO_TEST_DSN` | No | Falls back to `MNEMO_DSN` | Integration-test DSN used by server repository tests |\n\n### Build \u0026 Run\n\n```bash\nmake build\ncd server\nMNEMO_DSN=\"user:pass@tcp(host:4000)/mnemos?parseTime=true\" ./bin/mnemo-server\n```\n\n### Docker\n\n```bash\ndocker build -t mnemo-server ./server\ndocker run -e MNEMO_DSN=\"...\" -p 8080:8080 mnemo-server\n```\n\n## Repository Map\n\n| Path | Role |\n|---|---|\n| [`server/`](server/) | Core Go REST API and source of truth for spaces, memories, search, ingest, and tenant provisioning |\n| [`cli/`](cli/) | Standalone Go CLI for exercising the mem9 API and import / ingest flows |\n| [`openclaw-plugin/`](openclaw-plugin/) | OpenClaw memory plugin |\n| [`opencode-plugin/`](opencode-plugin/) | OpenCode plugin |\n| [`claude-plugin/`](claude-plugin/) | Claude Code hooks + skills integration |\n| [`site/`](site/) | Public mem9.ai site. This includes the marketing site, docs page, and published onboarding documents like `site/public/SKILL.md` and `site/public/beta/SKILL.md` |\n| [`dashboard/`](dashboard/) | Dedicated home for dashboard work: product docs plus the frontend app |\n| [`dashboard/app/`](dashboard/app/) | `Your Memory` frontend SPA served under `/your-memory` |\n| [`dashboard/app/src/pages/connect.tsx`](dashboard/app/src/pages/connect.tsx) | Dashboard connect / onboarding page |\n| [`dashboard/app/src/pages/space.tsx`](dashboard/app/src/pages/space.tsx) | Main `Your Memory` page for browsing, filtering, importing, exporting, and analyzing memories |\n| [`dashboard/app/src/pages/pixel-farm.tsx`](dashboard/app/src/pages/pixel-farm.tsx) | `Memory Farm`, the lab-style interactive memory experience exposed at `/your-memory/labs/memory-farm` |\n| [`dashboard/app/src/pages/pixel-farm-editor.tsx`](dashboard/app/src/pages/pixel-farm-editor.tsx) | Dev-only editor for Memory Farm world / mask work |\n| [`dashboard/app/src/lib/pixel-farm/`](dashboard/app/src/lib/pixel-farm/) | Memory Farm world generation, memory-to-world transforms, rendering, tiles, and runtime logic |\n| [`dashboard/app/src/components/pixel-farm/`](dashboard/app/src/components/pixel-farm/) | Memory Farm UI components |\n| [`dashboard/docs/`](dashboard/docs/) | Dashboard product specs, information architecture, data contract, and implementation plans |\n| [`benchmark/`](benchmark/) | Benchmark harnesses and datasets for comparing OpenClaw native memory against mem9, including MR-NIAH and LoCoMo adapters |\n| [`e2e/`](e2e/) | Live end-to-end scripts against a running mem9 server |\n| [`docs/`](docs/) | Architecture notes, design docs, and feature / experiment specs |\n| [`docs/superpowers/specs/`](docs/superpowers/specs/) | Feature-level specs and experiments, including Pixel / Memory Farm design work |\n| [`skills/`](skills/) | Shared setup / onboarding skills |\n\n## Roadmap\n\n| Phase | What | Status |\n|-------|------|--------|\n| **Phase 1** | Core server + CRUD + auth + hybrid search + upsert + plugins | ✅ Done |\n| **Phase 3** | LLM-assisted conflict merge, auto-tagging | 🔜 Planned |\n| **Phase 4** | Web dashboard, bulk import/export, CLI wizard | 📋 Planned |\n\nVector Clock CRDT was deferred and removed from the roadmap.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.\n\n## License\n\n[Apache-2.0](LICENSE)\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://tidbcloud.com\"\u003e\u003cimg src=\"assets/tidb-logo.png\" alt=\"TiDB Starter\" height=\"36\" /\u003e\u003c/a\u003e\n  \u003cbr/\u003e\n  \u003csub\u003eBuilt with \u003ca href=\"https://tidbcloud.com\"\u003eTiDB Starter\u003c/a\u003e — zero-ops database with native vector search.\u003c/sub\u003e\n\u003c/p\u003e\n","funding_links":[],"categories":["📦 Resource","Trending Repos — 19 March 2026"],"sub_categories":["🔌 OpenClaw Memory Plugins"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmem9-ai%2Fmem9","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmem9-ai%2Fmem9","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmem9-ai%2Fmem9/lists"}