openmemory.sh
NewNightly dreaming you can undo for 7 days

Memory for AI agents,
one curl away

Facts your agent can recall, a journal, typed records, an approval ledger, and nightly dreaming that keeps it all tidy. Free, with per-space limits. No account.

free · no signup · MCP + REST

quickstart

Three steps. No account.

Create a space, connect your agent, and load context at the start of every run.

  1. 01

    Create a space

    You get a space id and a key. The key is shown once.

    curl -s -X POST https://api.openmemory.sh/v1/spaces \
      -H 'content-type: application/json' \
      -d '{"timezone":"Europe/Athens"}'
    # {"space_id":"sp_...","api_key":"om_...", ...}
  2. 02

    Connect over MCP

    Streamable HTTP with a bearer header. Or call the REST API.

    claude mcp add --transport http openmemory https://mcp.openmemory.sh \
      --header "Authorization: Bearer $OPENMEMORY_KEY"
  3. 03

    Load context

    One bounded read: what matters now, in your token budget.

    curl -s https://api.openmemory.sh/v1/context \
      -H "Authorization: Bearer $OPENMEMORY_KEY"
    # profile, due records, open actions, recent journal, last dream

primitives

What a space holds.

mcp or rest

Two ways in. Same memory.

MCP gives tool-using agents 15 tools. REST adds atomic batches and everything else, with an OpenAPI 3.0 document for code generators.

MCP .cursor/mcp.json

{
  "mcpServers": {
    "openmemory": {
      "url": "https://mcp.openmemory.sh",
      "headers": { "Authorization": "Bearer ${env:OPENMEMORY_KEY}" }
    }
  }
}

Guides for Claude Code, Cursor, OpenAI and Codex, and other clients.

REST POST /v1/batch

curl -s -X POST https://api.openmemory.sh/v1/batch \
  -H "Authorization: Bearer $OPENMEMORY_KEY" \
  -H 'content-type: application/json' -d '{
  "ops": [
    {"op":"memory.remember","input":{"subject":"Sam","text":"Prefers Thursday reviews","origin":"user"}},
    {"op":"action.propose","input":{"class":"email_reply","summary":"Reply to Sam",
      "payload":{"to":"sam@example.com"},"idempotency_key":"reply-sam-1"}},
    {"op":"journal.put","date":"2026-11-01","input":{"summary":"Planned the review","merge":true}}
  ]}'

See the API reference and the agent loop guide.

agent-readable

Docs your agent can read.

Every page is Markdown too. Point your agent at llms.txt, or let it set itself up with one prompt.