paddleocr
Reads text from scanned pages, photos and PDFs and returns it as structured Markdown or JSON, so you can pull tables, formulas and headers out of a document without retyping them. Covers many languages and works as input for AI tools.
Unlimited memory for OpenClaw.
Claude Code
> /plugin marketplace add mem9-ai/mem9> /plugin install mem9@mem9
Codex
$ npx skills add mem9-ai/mem9 -a codex
Cursor
$ npx skills add mem9-ai/mem9 -a cursor
Gemini CLI
$ npx skills add mem9-ai/mem9 -a gemini-cli
GitHub Copilot
$ copilot plugin marketplace add mem9-ai/mem9$ copilot plugin install mem9@mem9
OpenCode
$ npx skills add mem9-ai/mem9 -a opencode
Windsurf
$ npx skills add mem9-ai/mem9 -a windsurf
Persistent Memory for AI Agents. 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.
For OpenClaw and ClawHub installs, start here: mem9.ai/openclaw-memory
Hermes Agent, Claude Code, OpenCode, Codex, DeepSeek Harness, and Dify guides are below.
Choose your mem9 endpoint.
Hosted API: https://api.mem9.ai
Self-hosted: apply the matching control-plane schema, then start mnemo-server:
cd server
MNEMO_DSN="user:pass@tcp(host:4000)/mnemos?parseTime=true" go run ./cmd/mnemo-server
See Self-Hosting for backend-specific setup details, and API Reference for provisioning.
Pick your integration guide.
Set your credentials.
# Hosted API
export MEM9_API_URL="https://api.mem9.ai"
export MEM9_API_KEY="<mem9-api-key>"
# Self-hosted
export MEM9_API_URL="http://localhost:8080"
export MEM9_API_KEY="<mem9-api-key>"
For self-hosted deployments, use your server URL and the mem9 API key returned or configured by your provisioning flow.
mem9 gives coding agents one shared memory layer instead of separate local notebooks and one-off prompt files.
| What mem9 gives you | Why it matters |
|---|---|
| Persistent memory across sessions and machines | Your context survives restarts, laptop switches, and long-running projects |
| Shared memory across agents and workflow platforms | OpenClaw, Hermes Agent, Claude Code, OpenCode, Codex, DeepSeek Harness, Dify apps, and custom clients can recall the same facts |
| Stateless integrations | Runtime plugins stay thin because storage, search, ingest, and policy live in the server |
| Hybrid recall and a visual dashboard | Semantic search, keyword search, and inspection workflows stay in one system |
| Platform | Integration shape | Install / docs |
|---|---|---|
| OpenClaw | kind: "memory" plugin for server-backed shared memory | OpenClaw / ClawHub install guide |
| Hermes Agent | Memory provider plugin with setup and activation flow | mem9-hermes-plugin README |
| Claude Code | Marketplace plugin with hooks and skills | claude-plugin/README.md |
| OpenCode | Plugin SDK integration loaded from opencode.json | opencode-plugin/README.md |
| Codex | Marketplace plugin with managed hooks and project overrides | codex-plugin/README.md |
| DeepSeek Harness | Native DSH/Cordis bundle with recall, smart ingest, and memory tools | dsh-plugin/README.md |
| Dify | Tool plugin for Dify Agent apps and Workflow apps, with single-space and multi-space authorization | mem9-dify-plugin README |
| Any HTTP client / custom runtime | Direct REST API integration | API Reference |
All supported runtimes and platform integrations expose the same core memory flow: store, search, get, update, and delete against the mem9 server API.
The hosted mem9 API is the fastest way to put persistent memory behind an agent fleet while keeping the option to self-host later.
| Hosted API capability | Why teams start here |
|---|---|
| Hosted mem9 API with instant space provisioning | You can install an agent integration first and skip standing up infrastructure on day one |
| Shared memory across runtimes and platforms | One space can serve OpenClaw, Hermes Agent, Claude Code, OpenCode, Codex, DeepSeek Harness, Dify apps, and custom clients together |
| Managed search and storage | Hybrid recall works out of the box without a separate vector stack or sync layer |
| TiDB Cloud Starter foundation | The hosted path benefits from instant provisioning, native vector search, full-text search, server-side auto-embedding, hybrid search, and MySQL-compatible operational semantics |
| Same API contract as self-hosted mem9 | Moving to your own deployment is a base-URL and credential change, not a plugin rewrite |
| Visual dashboard and product onboarding | Teams can inspect and manage memory without building internal tooling first |
Under the hood, the hosted mem9 API runs the same mem9 server model surfaced in this repository, with TiDB Cloud Starter providing managed provisioning, native vector search, full-text search, server-side auto-embedding, hybrid search, and MySQL-compatible storage semantics.
Set X-Mnemo-Agent-Id on authenticated memory, import, and session-message requests when you want the server to distinguish which runtime or agent instance is writing and recalling memories inside the same mem9 space. This works on both the tenant-path v1alpha1 routes and the v1alpha2 API-key routes.
Use this endpoint when you want mem9 to auto-provision a new TiDB-backed space.
| Method | Path | Description |
|---|---|---|
POST | /v1alpha1/mem9s | TiDB auto-provision endpoint when a provisioner is configured. TiDB Zero enables this path by default on tidb; TiDB Cloud Pool uses MNEMO_TIDB_ZERO_ENABLED=false with MNEMO_TIDBCLOUD_API_KEY and MNEMO_TIDBCLOUD_API_SECRET. Manual-bootstrap deployments use pre-existing tenants instead of this path. Returns { "id" }. Accepts optional utm_* query params for attribution logging |
Prefer v1alpha2 for all new integrations. It uses X-API-Key and is the primary API surface for current runtimes.
v1alpha2)| Method | Path | Description |
|---|---|---|
POST | /v1alpha2/mem9s/memories | Preferred unified write endpoint. Requires X-API-Key header |
GET | /v1alpha2/mem9s/memories | Preferred search endpoint. Requires X-API-Key header |
GET | /v1alpha2/mem9s/memories/{id} | Preferred get-by-id endpoint. Requires X-API-Key header |
PUT | /v1alpha2/mem9s/memories/{id} | Preferred update endpoint. Requires X-API-Key header |
DELETE | /v1alpha2/mem9s/memories/{id} | Preferred delete endpoint. Requires X-API-Key header |
GET/POST | /v1alpha2/mem9s/webhooks | Space webhook management. Requires a Space X-API-Key |
GET/PATCH/DELETE | /v1alpha2/mem9s/webhooks/{webhookID} | Get, update, or delete a Space webhook |
POST | /v1alpha2/mem9s/webhooks/{webhookID}/test | Queue a signed test delivery |
POST | /v1alpha2/mem9s/webhooks/{webhookID}/rotate-secret | Rotate the webhook signing secret. The new secret is returned once |
GET | /v1alpha2/mem9s/webhook-deliveries | List recent Space webhook deliveries |
GET/POST | /v1alpha2/space-chains/{chainID}/webhooks | Space Chain webhook management. Requires the chain_ management key in X-API-Key |
GET | /v1alpha2/space-chains/{chainID}/webhook-deliveries | List recent Space Chain webhook deliveries |
Webhook events and delivery behavior are documented in docs/webhooks-api-design.md. v1 emits memory.added, memory.deleted, and space_chain.fact_routed.
Space Chains let you compose ordered multi-space recall and routing pipelines. Every Space Chain has two kinds of chain_ key, and the server decides which kind a key is. The management key can change the chain (nodes, keys, webhooks, deletion) and can also read and write memory. The memory key can only read and write memory; it gets 401 on every endpoint below except creating a chain. Use the management key as the X-API-Key for all management endpoints below, and give the memory key to anything that only needs to read and write memory. Read nodes via their own Space X-API-Key.
| Method | Path | Description |
|---|---|---|
POST | /v1alpha2/space-chains | Create a Space Chain. No X-API-Key required. The 201 response has exactly three fields: chain (the chain, with masked keys), management_binding and memory_binding. Each binding has id, role and chain_api_key; these are the only plaintext keys you will ever get, so store them now. If the server has its create gate switched on, the request must also carry Authorization: Bearer <create secret>, otherwise it gets 401 |
GET | /v1alpha2/space-chains/by-key | Look up a Space Chain by its management key. Requires the management key in X-API-Key; a memory key gets 401 |
GET | /v1alpha2/space-chains/{chainID} | Get Space Chain details. Requires the management key |
PATCH | /v1alpha2/space-chains/{chainID} | Update Space Chain name/description. Requires the management key |
DELETE | /v1alpha2/space-chains/{chainID} | Soft-delete a Space Chain. Requires the management key |
GET | /v1alpha2/space-chains/{chainID}/nodes | List all nodes in the chain (ordered by position). Requires the management key |
PUT | /v1alpha2/space-chains/{chainID}/nodes | Replace all nodes in the chain (full replacement). Requires the management key |
PUT | /v1alpha2/space-chains/{chainID}/nodes/{nodeID}/routing-policy | Update routing policy for a specific chain node. Requires the management key |
GET | /v1alpha2/space-chains/{chainID}/bindings | List all keys (bindings) of the chain, each with its role and a masked key. Requires the management key |
POST | /v1alpha2/space-chains/{chainID}/bindings | Issue another key for the chain. It is always a memory key; a role in the body is ignored. The body is optional: it may carry chain_api_key to supply your own key (it must start with chain_) and created_by_user_id. The 201 response is the new binding: id, chain_id, role, chain_api_key (shown only now), disabled and created_at. Requires the management key |
PATCH | /v1alpha2/space-chains/{chainID}/bindings/{bindingID} | Disable a key. The last active management key cannot be disabled (400); memory keys can all be disabled. Requires the management key |
| Method | Path | Description |
|---|
Reads text from scanned pages, photos and PDFs and returns it as structured Markdown or JSON, so you can pull tables, formulas and headers out of a document without retyping them. Covers many languages and works as input for AI tools.
Gives your AI assistant a memory that persists across sessions, so it remembers your preferences and earlier work in this repository instead of starting fresh. Search, forget, pause and resume memories with simple commands.
Gives AI agents a library of ready-made skills for scientific work such as metabolic flux analysis, protein experiment design, time series modeling, and analytical method validation, so research tasks need less hand-built code. It works with any agent that supports the open Agent Skills standard.
Gives Claude Code skills, agents, and commands for PostHog analytics, session replay, feature flags, error tracking, and LLM observability. Includes MCP server setup and project access checks.
Install it with the command on its page. It includes recall, setup, store. Its skills do not fire on their own yet. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it