# remember

Write durable memory only after capture policy, scope, and secret-redaction boundaries are satisfied.

- Canonical: https://docs.xmemo.dev/docs/tools/remember
- Locale: en-US
- Content-Locale: en-US
- Canonical-Content-Digest: b5d03421cd10a63875746f6339e99b93d92fcef8443db7176726d5aea32edd65
- Edition-Digest: b3f388b93becfe22c2d31abac5164e23431e49437fa01a6c8135371e7596ae2c
- Source-Revision: sha256:9a04d6faf83e5b7c52876a378ff80d66a4b9561a8bd8f786716b130083cffebb

## Tool Reference: `remember`

### Purpose

Persist durable information that an approved agent should be able to recall later. This is the direct durable-write API; event streams should pass through capture policy before calling it.

### Parameters

- `content` (string, required): Durable memory body. Keep it factual, bounded, and free of secrets.
- `path` (string, required): Logical location used to attach the memory to a project or durable namespace.
- `create_project` (boolean, optional, default: false): Generic public profile only: create the owning project if the path implies one. Not accepted on the ChatGPT or Claude plugin profiles.

### Returns

Success text includes the stored memory reference/ID, logical path, writer identity, account, and device label. Public clients should treat the reference as an opaque identifier.

### Errors

- 401/403: the MCP token is missing or does not include memory:write.
- Validation failure: content or path is empty, malformed JSON is supplied, or a value violates the storage contract.
- Authorization failure: the caller cannot write the requested scope, project, or team.
- Safety rejection: secret-like content or reserved identity metadata is blocked or sanitized.

### Examples

#### Save an explicit durable decision



```typescript
remember({
  content: "Use OAuth for hosted ChatGPT connections.",
  path: "projects/memory-os/decisions"
})
```

### Related Tools

- [recall](/docs/tools/recall): Fetch a few relevant memories after storing a durable fact.
- [recall_context](/docs/tools/recall-context): Build a bounded context pack before a later task.
- [ledger](/docs/tools/ledger): Store governed financial records instead of generic memory.

## Confirm the write landed

Read the memory back through a scoped search rather than trusting the write response alone.

```ts
search_memory({
  query: "OAuth for hosted ChatGPT connections",
  limit: 3
})
```

