BeClaude

mem9

New
1.1kCommunity RegistryGeneralby mem9-ai · Apache-2.0

Persistent cloud memory for Claude Code with automatic recall, transcript ingest, and on-demand setup, recall, and store skills.

First seen 5/22/2026

Overview

<p align="center"> <img src="site/public/mem9-wordmark-square.svg" alt="mem9" width="180" /> </p> <p align="center"> <strong>Persistent Memory for AI Agents.</strong><br/> 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. </p>

<p align="center"> For OpenClaw and ClawHub installs, start here: <a href="https://mem9.ai/openclaw-memory">mem9.ai/openclaw-memory</a> <br/> Hermes Agent, Claude Code, OpenCode, Codex, and Dify guides are below. </p>

<p align="center"> <a href="https://tidbcloud.com"><img src="https://img.shields.io/badge/Powered%20by-TiDB%20Cloud%20Starter-E60C0C?style=flat&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj48cGF0aCBkPSJNMTEuOTk4NCAxLjk5OTAyTDMuNzE4NzUgNy40OTkwMkwzLjcxODc1IDE3TDExLjk5NjQgMjIuNUwyMC4yODE0IDE3VjcuNDk5MDJMMTEuOTk4NCAxLjk5OTAyWiIgZmlsbD0id2hpdGUiLz48L3N2Zz4=" alt="Powered by TiDB Cloud Starter"></a> <a href="https://goreportcard.com/report/github.com/mem9-ai/mem9/server"><img src="https://goreportcard.com/badge/github.com/mem9-ai/mem9/server" alt="Go Report Card"></a> <a href="https://github.com/mem9-ai/mem9/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License"></a> <a href="https://github.com/mem9-ai/mem9"><img src="https://img.shields.io/github/stars/mem9-ai/mem9?style=social" alt="Stars"></a> </p>


Quick Start

  1. Choose your mem9 endpoint.

- Hosted API: https://api.mem9.ai - Self-hosted: apply the matching control-plane schema, then start mnemo-server:

``bash 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.

  1. Pick your integration guide.

- OpenClaw / ClawHub - Hermes Agent - Claude Code - OpenCode - Codex - Dify - Any HTTP client / custom runtime

  1. Set your credentials.

```bash # 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.

Why mem9

mem9 gives coding agents one shared memory layer instead of separate local notebooks and one-off prompt files.

What mem9 gives youWhy it matters
Persistent memory across sessions and machinesYour context survives restarts, laptop switches, and long-running projects
Shared memory across agents and workflow platformsOpenClaw, Hermes Agent, Claude Code, OpenCode, Codex, Dify apps, and custom clients can recall the same facts
Stateless integrationsRuntime plugins stay thin because storage, search, ingest, and policy live in the server
Hybrid recall and a visual dashboardSemantic search, keyword search, and inspection workflows stay in one system

Supported Platforms and Agent Runtimes

PlatformIntegration shapeInstall / docs
OpenClawkind: "memory" plugin for server-backed shared memoryOpenClaw / ClawHub install guide
Hermes AgentMemory provider plugin with setup and activation flowmem9-hermes-plugin README
Claude CodeMarketplace plugin with hooks and skills`claude-plugin/README.md`
OpenCodePlugin SDK integration loaded from opencode.json`opencode-plugin/README.md`
CodexMarketplace plugin with managed hooks and project overrides`codex-plugin/README.md`
DifyTool plugin for Dify Agent apps and Workflow apps, with single-space and multi-space authorizationmem9-dify-plugin README
Any HTTP client / custom runtimeDirect REST API integrationAPI Reference

All supported runtimes and platform integrations expose the same core memory flow: store, search, get, update, and delete against the mem9 server API.

Why the Hosted 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 capabilityWhy teams start here
Hosted mem9 API with instant space provisioningYou can install an agent integration first and skip standing up infrastructure on day one
Shared memory across runtimes and platformsOne space can serve OpenClaw, Hermes Agent, Claude Code, OpenCode, Codex, Dify apps, and custom clients together
Managed search and storageHybrid recall works out of the box without a separate vector stack or sync layer
TiDB Cloud Starter foundationThe 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 mem9Moving to your own deployment is a base-URL and credential change, not a plugin rewrite
Visual dashboard and product onboardingTeams 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.

API Reference

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.

Provisioning

Use this endpoint when you want mem9 to auto-provision a new TiDB-backed space.

MethodPathDescription
POST/v1alpha1/mem9sTiDB 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.

Preferred API (v1alpha2)

MethodPathDescription
POST/v1alpha2/mem9s/memoriesPreferred unified write endpoint. Requires X-API-Key header
GET/v1alpha2/mem9s/memoriesPreferred 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/webhooksSpace 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}/testQueue a signed test delivery
POST/v1alpha2/mem9s/webhooks/{webhookID}/rotate-secretRotate the webhook signing secret. The new secret is returned once
GET/v1alpha2/mem9s/webhook-deliveriesList recent Space webhook deliveries
GET/POST/v1alpha2/space-chains/{chainID}/webhooksSpace Chain webhook management. Requires the chain_ management key in X-API-Key
GET/v1alpha2/space-chains/{chainID}/webhook-deliveriesList 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. Use the chain_ management key returned at creation time as the X-API-Key for all management endpoints below. Read nodes via their own Space X-API-Key.

MethodPathDescription
POST/v1alpha2/space-chainsCreate a Space Chain. No X-API-Key required — the management key (chain_ prefix) is returned in the response body. All subsequent management endpoints require this key
GET/v1alpha2/space-chains/by-keyLook up a Space Chain by its management key. Requires the chain_ key in X-API-Key
GET/v1alpha2/space-chains/{chainID}Get Space Chain details. Requires chain_ management key
PATCH/v1alpha2/space-chains/{chainID}Update Space Chain name/description. Requires chain_ management key
DELETE/v1alpha2/space-chains/{chainID}Soft-delete a Space Chain. Requires chain_ management key
GET/v1alpha2/space-chains/{chainID}/nodesList all nodes in the chain (ordered by position). Requires chain_ management key
PUT/v1alpha2/space-chains/{chainID}/nodesReplace all nodes in the chain (full replacement). Requires chain_ management key
PUT/v1alpha2/space-chains/{chainID}/nodes/{nodeID}/routing-policyUpdate routing policy for a specific chain node. Requires chain_ management key
GET/v1alpha2/space-chains/{chainID}/bindingsList all API key bindings for the chain. Requires chain_ management key
POST/v1alpha2/space-chains/{chainID}/bindingsCreate a new API key binding for the chain. Requires chain_ management key
PATCH/v1alpha2/space-chains/{chainID}/bindings/{bindingID}Disable an API key binding. Requires chain_ management key
MethodPathDescription
POST/v1alpha2/mem9s/memories/batch-deleteBulk soft-delete memories (max 1000). Accepts {"ids": ["..."]}. Requires X-API-Key
GET/v1alpha2/mem9s/session-messagesList persisted session messages. Requires X-API-Key. Query: session_id, limit_per_session
POST/v1alpha2/mem9s/importsUpload a JSON file for async ingest (multipart, 50MB max). file_type: memory or session. Requires X-API-Key
GET/v1alpha2/mem9s/importsList upload tasks with aggregate status. Requires X-API-Key
GET/v1alpha2/mem9s/imports/{id}Get single upload task detail. Requires X-API-Key
GET/v1alpha2/statusValidate the X-API-Key header. Returns key status (active/inactive) without resolving a tenant

Legacy Tenant-Path API (v1alpha1)

Use these endpoints only when you need compatibility with older tenant-ID-in-path clients.

MethodPathDescription
POST/v1alpha1/mem9s/{tenantID}/memoriesLegacy unified write endpoint. Tenant key travels in the URL path
GET/v1alpha1/mem9s/{tenantID}/memoriesLegacy search endpoint for tenantID-configured clients
GET/v1alpha1/mem9s/{tenantID}/memories/{id}Legacy get-by-id endpoint
PUT/v1alpha1/mem9s/{tenantID}/memories/{id}Legacy update endpoint. Optional If-Match for version check
DELETE/v1alpha1/mem9s/{tenantID}/memories/{id}Legacy delete endpoint

Self-Hosting

Before first start, apply the control-plane schema that matches your backend: server/schema.sql, server/schema_pg.sql, or server/schema_db9.sql.

mem9 server supports multiple storage backends. Set MNEMO_DB_BACKEND to tidb, postgres, or db9, point MNEMO_DSN at that backend, and the rest of the runtime contract stays the same for your agents. TiDB supports three tenant flows: TiDB Zero auto-provisioning is enabled by default on tidb; TiDB Cloud Pool auto-provisioning uses MNEMO_TIDB_ZERO_ENABLED=false with MNEMO_TIDBCLOUD_API_KEY and MNEMO_TIDBCLOUD_API_SECRET; manual bootstrap uses pre-existing tenants mode. postgres and db9 use the advanced manual-bootstrap path, which requires an active tenant row in the control-plane DB plus a live tenant database and schema behind it. In v1alpha2, X-API-Key resolves tenants by ID lookup.

Build & Run

bash
make build
cd server
MNEMO_DSN="user:pass@tcp(host:4000)/mnemos?parseTime=true" ./bin/mnemo-server

For local development with automatic rebuild and restart on server source changes:

bash
MNEMO_DSN="user:pass@tcp(host:4000)/mnemos?parseTime=true" make dev

For PostgreSQL or db9 deployments, export MNEMO_DB_BACKEND=postgres or MNEMO_DB_BACKEND=db9 before launching the server.

Docker

make docker tags the image as ${REGISTRY}/mnemo-server:${COMMIT}. This local example builds local/mnemo-server:dev:

bash
make docker REGISTRY=local COMMIT=dev
docker run -e MNEMO_DSN="..." -e MNEMO_DB_BACKEND="tidb" -p 8080:8080 local/mnemo-server:dev

Environment Variables

Minimal runtime config is MNEMO_DSN. Everything else is optional or only applies to specific deployment modes.

VariableRequiredDefaultDescription
MNEMO_DSNYesDatabase connection string
MNEMO_PORTNo8080HTTP listen port
MNEMO_DB_BACKENDNotidbDatabase backend: tidb, postgres, or db9
MNEMO_RATE_LIMITNo100Requests/sec per IP
MNEMO_RATE_BURSTNo200Burst size
MNEMO_UPLOAD_DIRNo./uploadsDirectory used for uploaded file storage
MNEMO_WORKER_CONCURRENCYNo5Parallelism for async upload ingest workers
MNEMO_UTM_ENABLEDNofalseEnable UTM campaign tracking. When enabled, utm_* query params on provisioning requests are stored in the control-plane DB. Requires the tenant_utm table to exist
MNEMO_ENVNodevelopmentDeployment environment. Controls the default CORS origin set (https://mem9.ai in production; https://mem9.ai,http://localhost:4321,http://127.0.0.1:4321 in development). Also settable via APP_ENV
MNEMO_CORS_ALLOWED_ORIGINSNohttps://mem9.ai in production; https://mem9.ai,http://localhost:4321,http://127.0.0.1:4321 in developmentComma-separated allowed CORS origins. Overrides the MNEMO_ENV-based defaults
VariableRequiredDefaultDescription
MNEMO_EMBED_AUTO_MODELNoTiDB/db9 EMBED_TEXT() model name. When set, it takes precedence over client-side embeddings
MNEMO_EMBED_AUTO_DIMSNo1024Vector dimensions for MNEMO_EMBED_AUTO_MODEL
MNEMO_EMBED_API_KEYNoClient-side embedding provider API key. Optional for local OpenAI-compatible endpoints when MNEMO_EMBED_BASE_URL is set
MNEMO_EMBED_BASE_URLNohttps://api.openai.com/v1 when client-side embeddings are enabledCustom OpenAI-compatible embedding endpoint
MNEMO_EMBED_MODELNotext-embedding-3-smallClient-side embedding model name
MNEMO_EMBED_DIMSNo1536Client-side embedding vector dimensions
MNEMO_LLM_API_KEYNoLLM provider API key. If unset, smart ingest falls back to raw ingest behavior
MNEMO_LLM_BASE_URLNohttps://api.openai.com/v1 when LLM ingest is enabledCustom OpenAI-compatible chat endpoint
MNEMO_LLM_MODELNogpt-4o-miniLLM model for smart ingest
MNEMO_LLM_TEMPERATURENo0.1LLM temperature for smart ingest
MNEMO_INGEST_MODENosmartIngest mode: smart or raw
MNEMO_DISABLE_SESSION_SAVENofalseDisable raw session row persistence for message ingest while still extracting and reconciling facts
MNEMO_FTS_ENABLEDNofalseEnable TiDB full-text search path. Only set this on clusters that support TiDB FTS

The MEM9_SOURCE_TURN_* variables control how many source turn conversations are attached to search results as contextual decorations.

VariableRequiredDefaultDescription
MEM9_SOURCE_TURN_MIN_SCORENo2Minimum term-frequency relevance score for a source turn to be included in search result decorations
MEM9_SOURCE_TURN_PER_MEMORY_LIMITNo2Maximum source turns attached to a single memory in search results
MEM9_SOURCE_TURN_TOTAL_LIMITNo12Maximum total source turns across all memories in a single search response
VariableRequiredDefaultDescription
MNEMO_CHAIN_RECALL_STOP_SCORENo0.8Stop querying later Space Chain nodes only when an eligible query has a top normalized confidence at or above this threshold. Raw search score values do not trigger chain stop. Must be between 0 and 1
VariableRequiredDefaultDescription
MNEMO_TIDB_ZERO_ENABLEDNotrueEnable TiDB Zero auto-provisioning for tidb backend. When enabled, it takes precedence over TiDB Cloud Pool provisioning
MNEMO_TIDB_ZERO_API_URLNohttps://zero.tidbapi.com/v1alpha1TiDB Zero API base URL
MNEMO_TIDBCLOUD_API_URLNohttps://serverless.tidbapi.comTiDB Cloud Pool API base URL
MNEMO_TIDBCLOUD_POOL_IDNo2TiDB Cloud Pool ID used for cluster takeover
MNEMO_TIDBCLOUD_API_KEYNoTiDB Cloud Pool API key. Used only when MNEMO_TIDB_ZERO_ENABLED=false, MNEMO_DB_BACKEND=tidb, and pool takeover is desired
MNEMO_TIDBCLOUD_API_SECRETNoTiDB Cloud Pool API secret for digest auth. Same conditions as MNEMO_TIDBCLOUD_API_KEY
MNEMO_TENANT_POOL_MAX_IDLENo5Max idle tenant database connections kept in the in-process tenant pool
MNEMO_TENANT_POOL_MAX_OPENNo10Max open connections per tenant database handle
MNEMO_TENANT_POOL_CONNECT_TIMEOUTNo3sTimeout for tenant pool cold-connect ping/open attempts
MNEMO_TENANT_POOL_IDLE_TIMEOUTNo10mIdle timeout for tenant database handles
MNEMO_TENANT_POOL_TOTAL_LIMITNo200Total tenant database handles allowed across the process
MNEMO_CLUSTER_BLACKLISTNoComma-separated TiDB cluster IDs whose spend-limit errors should be translated to HTTP 429 instead of 503

These variables control automatic spend-limit increases for TiDB Cloud clusters that hit their cap. The feature progressively raises the limit up to MNEMO_AUTO_SPEND_LIMIT_MAX with a configurable cooldown between increments.

VariableRequiredDefaultDescription
MNEMO_AUTO_SPEND_LIMIT_ENABLEDNofalseEnable automatic spend-limit increases for TiDB Cloud clusters. Requires valid MNEMO_TIDBCLOUD_API_KEY and MNEMO_TIDBCLOUD_API_SECRET
MNEMO_AUTO_SPEND_LIMIT_INCREMENTNo500Amount to increase the spend limit by each step (in USD cents: 500 = $5.00)
MNEMO_AUTO_SPEND_LIMIT_MAXNo10000Maximum spend limit allowed (in USD cents: 10000 = $100.00). Must be greater than the increment
MNEMO_AUTO_SPEND_LIMIT_COOLDOWNNo1hMinimum time between consecutive spend-limit increases for the same cluster

These variables configure the legacy server-side API metering writer. It emits mem9-api events for successful recall and ingest operations and is separate from runtime usage quota metering.

Metering location is configured as a single destination URL. Supported schemes are:

  • s3://<bucket>/<prefix>/ for compressed JSON batches in S3
  • http://... or https://... for JSON batch webhooks
VariableRequiredDefaultDescription
MNEMO_METERING_ENABLEDNofalseEnable the metering writer. When false, the writer is a no-op
MNEMO_METERING_URLNoMetering destination URL. Supported forms: s3://<bucket>/<prefix>/, http://..., or https://.... If empty, the writer stays disabled even when MNEMO_METERING_ENABLED=true
MNEMO_METERING_FLUSH_INTERVALNo10sIn-memory batch flush interval for the metering writer

Runtime usage is disabled by default. When enabled, the server reserves quota before memory recall/write operations, releases reservations after failed operations, commits reservations after successful operations, and sends console metering events to the runtime usage service. This path uses MNEMO_RUNTIME_USAGE_BASE_URL and does not use MNEMO_METERING_URL.

The runtime usage outbox uses the control-plane runtime_usage_outbox table for pending reservation finalization and metering delivery. It is enabled by default when runtime usage is enabled.

VariableRequiredDefaultDescription
MNEMO_RUNTIME_USAGE_ENABLEDNofalseEnable runtime usage quota gating and console metering for memory recall/write operations
MNEMO_RUNTIME_USAGE_BASE_URLYes when enabledRuntime usage service base URL. Must be http or https; query and fragment are rejected
MNEMO_RUNTIME_USAGE_INTERNAL_SECRETYes when enabledBearer token for internal runtime usage service calls
MNEMO_RUNTIME_USAGE_TIMEOUTNo3sTimeout for quota reservation and finalization requests
MNEMO_RUNTIME_USAGE_METERING_TIMEOUTNo5sTimeout for console metering event delivery requests
MNEMO_RUNTIME_USAGE_RESERVATION_TTLNo30mParsed into server config, but currently not sent to reservation requests; changing it does not alter reservation lifetimes
MNEMO_RUNTIME_USAGE_OPERATION_TTLNo30mParsed into server config, but currently not used to expire runtime usage outbox rows; changing it does not alter outbox lifetimes
MNEMO_RUNTIME_USAGE_FAIL_OPENNofalseAllow operations when quota reservation fails with a retryable runtime usage service error. Quota denials and operation conflicts still fail closed
MNEMO_RUNTIME_USAGE_OUTBOX_ENABLEDNosame as MNEMO_RUNTIME_USAGE_ENABLEDPersist pending reservation and metering steps for retry. If explicitly set to false while runtime usage is enabled, MNEMO_RUNTIME_USAGE_FAIL_OPEN must be true
VariableRequiredDefaultDescription
MNEMO_ENCRYPT_TYPENoplainEncryption type for tenant DB passwords: plain, md5, or kms. One-time deployment decision.
MNEMO_ENCRYPT_KEYNoEncryption key for md5 or KMS key ID for kms. Required when MNEMO_ENCRYPT_TYPE is not plain
MNEMO_DEBUG_LLMNofalseLog raw LLM responses for debugging parse errors. Use only in dev/test because responses may contain user data

These 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:

VariableRequiredDefaultDescription
AWS_ACCESS_KEY_IDNoAWS access key ID for KMS auth when using environment-based AWS credentials
AWS_SECRET_ACCESS_KEYNoAWS secret access key for KMS auth when using environment-based AWS credentials
AWS_REGIONNoAWS region used to create the KMS client
VariableRequiredDefaultDescription
MNEMO_TEST_DSNNoFalls back to MNEMO_DSNIntegration-test DSN used by server repository tests

Repository Map

PathRole
`server/`Core Go REST API and source of truth for spaces, memories, search, ingest, and tenant provisioning
`cli/`Standalone Go CLI for exercising mem9 API and ingest flows
`openclaw-plugin/`OpenClaw memory plugin
`opencode-plugin/`OpenCode plugin
`claude-plugin/`Claude Code hooks and skills integration
`codex-plugin/`Codex marketplace plugin and managed hooks
`site/`Public mem9.ai site and published onboarding assets
`dashboard/`Dashboard product frontend and supporting product docs
`benchmark/`Benchmark harnesses and datasets for mem9 evaluation
`e2e/`Live end-to-end scripts against a running mem9 server
`docs/`Architecture notes, design docs, and feature specs

Related Repositories

RepositoryWhat it ownsWhen to look there
`mem9`Core Go API server, agent plugins, CLI, site, dashboard frontend, benchmark harnesses, and docsYou are working on the shared memory server, plugin integrations, or the main product docs
`mem9-node`Dashboard analysis backend, async jobs, and worker flowsA dashboard feature depends on backend APIs, background jobs, or analysis pipelines
`mem9-hermes-plugin`Hermes Agent plugin packaging, setup flow, and Hermes-specific docsYou are changing Hermes installation, activation, or runtime-specific behavior
`mem9-dify-plugin`Dify tool plugin, memory tools, authorization modes, and Dify-specific docsYou are changing Dify Agent app, Workflow app, or multi-space plugin behavior

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

Apache-2.0


<p align="center"> <a href="https://tidbcloud.com"> <img src="assets/tidb-logo.png" alt="TiDB Cloud Starter" height="28" /> </a> <br/> <sub>Built on <a href="https://tidbcloud.com">TiDB Cloud Starter</a> for shared memory, vector search, and managed cloud provisioning.</sub> </p>

Install & Usage

1
Create the skills directory
mkdir -p .claude/skills
2
Download the skill file
mkdir -p .claude/skills && curl -o .claude/skills/mem9.md https://raw.githubusercontent.com/mem9-ai/mem9/main/SKILL.md
3
Invoke in Claude Code
/mem9
View source on GitHub

Security Audits

LicensePassSourceWarnRepositoryPass

Frequently Asked Questions

What is mem9?

Persistent cloud memory for Claude Code with automatic recall, transcript ingest, and on-demand setup, recall, and store skills.

How to install mem9?

To install mem9: create the skills directory (mkdir -p .claude/skills), then run: mkdir -p .claude/skills && curl -o .claude/skills/mem9.md https://raw.githubusercontent.com/mem9-ai/mem9/main/SKILL.md. Finally, /mem9 in Claude Code.

What is mem9 best for?

mem9 is a skill categorized under General. Created by mem9-ai.