Searchable journal
Every observation, decision, and learning the agent needs to remember gets appended to a date-partitioned JSONL journal — searchable, never truncated, never pruned.
A searchable journal, always-on state, semantic search across every past session, a background daemon, scheduled reminders, overnight self-maintenance — everything your agent needs to remember. Plain markdown and JSON on disk — nothing phones home, the whole system runs inside your existing agent permissions.
"plugin": ["@geoql/mdr@latest"]Every session starts with context injection — identity, projects, daily focus. Every session can write back. Nothing is lost between runs, nothing phones home, nothing needs an account.
Every observation, decision, and learning the agent needs to remember gets appended to a date-partitioned JSONL journal — searchable, never truncated, never pruned.
People, projects, and researched topics live as markdown under entities/. New agents discover them on first read; old agents extend them in place. A filing system that grows.
identity.md, human.md, today.md, workspace.md. Small, byte-capped, injected every session. The agent knows who you are and what you are on before you type.
A Vectra vector index over the journal, entities, and past conversations. Embeddings run locally and offline with all-MiniLM-L6-v2; opt into an OpenAI-compatible endpoint if you want.
A cron runner supervises the agent. Hung children can no longer wedge the daemon (PR #34); a heartbeat lets a stale daemon self-heal on the next session.
Reminders, morning prep, distillation, and overnight dream-time reflection — through the same agent instance with the same permissions. Cron or one-shot.
OpenCode or Claude Code loads the plugin; the plugin reads from state/, journal/, entities/, and the .index/. The daemon supervises scheduled agent children with a heartbeat so a stale process can self-heal on the next session.
~/.config/macrodata/ ├── identity.md ├── state/ │ ├── human.md │ ├── today.md │ ├── workspace.md │ └── flags.md ├── entities/ │ ├── people/ │ ├── projects/ │ └── topics/ ├── journal/ # date-partitioned JSONL ├── .index/ # Vectra · 384-dim └── reminders/
All state stays on your disk. Nothing phones home. Switch to a remote embedding endpoint any time — the local model is never loaded when one is configured.
Restart your agent and ask it to set up Macrodata. The onboarding skill takes it from there — identity, human profile, first project, first journal entry — without touching the network.
{ "plugin": ["@geoql/mdr@latest"] }The layered-memory architecture, the tools, the skills, and the design are Matt Kane's work. @geoql/mdr stands entirely on that foundation — Node runtime, hardened daemon, full coverage, geoql release automation. The data directory, MCP server id, and tool names are unchanged from upstream, so an existing install keeps its memories.