The memory file is a JSON document with a version, update timestamp, and sectioned arrays of facts. Facts can be plain strings or compact structured facts.
{
  "version": 5,
  "updated": "2025-01-15T10:30:00.000Z",
  "sections": {
    "work": ["Fact 1", "Fact 2"],
    "personal": ["Lives in Berlin"],
    "top_of_mind": [],
    "history": ["Completed project X"],
    "instructions": ["Be concise"],
    "user_preferences": [
      {
        "key": "answer_style",
        "value": "Prefers concise answers",
        "confidence": "high",
        "source": "user_explicit",
        "createdAt": "2025-01-15T10:30:00.000Z",
        "updatedAt": "2025-01-15T10:30:00.000Z"
      }
    ]
  }
}

Sections

SectionPurpose
workProfessional context, projects, colleagues, tools
personalLocation, preferences, interests, personal facts
top_of_mindCurrent focus and active tasks
historyPast events and completed work
instructionsStanding rules and behavioral preferences
user_profileStable user profile facts
user_preferencesDurable preferences
eyra_projectEyra-specific product and architecture facts
devices_environmentDurable local environment facts
workflowsRepeated workflow preferences
writing_styleWriting and tone preferences
long_term_tasksDurable task context
do_not_forgetExplicitly requested durable reminders

Limits

LimitValue
Facts per section30
Characters per fact300
Characters per structured key80

Normalization

Older or partial documents are normalized when loaded:
  • Missing known sections are added as empty arrays
  • Facts are trimmed
  • Structured facts are normalized to compact keys and values
  • A missing updated timestamp is replaced with the current time
  • Unknown sections are ignored by the active schema
The schema is intentionally narrow so context stays predictable across clients and restarts.