Raw schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"description": "A stable name for this thread of work that you can reproduce from what you can see right now, for example \"acme-api/auth-refactor\" or a repository path plus the task. Reuse it for every save about the same work; that is what makes this an update rather than a duplicate. 1 to 120 characters of letters, numbers, spaces and . _ : @ / # -"
},
"content": {
"type": "string",
"description": "The complete memory as it stands now. It replaces the current content; the previous copy is preserved in version history."
},
"title": {
"type": "string",
"description": "A short, stable title. Keep it the same across saves of the same memory so the history reads as one thing changing. Defaults to the session name."
},
"language": {
"type": "string",
"description": "Syntax-highlighting language. Defaults to \"markdown\", which is usually right for conversation memory."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 20 short labels for later retrieval, e.g. [\"auth\", \"postgres\"]. Lowercase letters, digits and single hyphens; other spellings are rejected rather than silently dropped."
},
"kind": {
"type": "string",
"enum": [
"conversation",
"decision",
"code",
"research",
"note",
"log"
],
"description": "What this memory IS, so recall can filter by it. Defaults to \"conversation\"."
},
"pile": {
"type": "string",
"description": "Optional named collection to file this memory into, created on first use, e.g. \"architecture-decisions\". Lets a set of related memories be opened and shared with one link."
}
},
"required": [
"session",
"content"
],
"additionalProperties": false
}