This repository implements a plugin for OpenCode, an AI coding assistant, providing persistent, self-editable memory blocks and an optional journal feature. The plugin injects structured memory instructions into the agent's system prompt and exposes dedicated tools (memory_list, memory_get, memory_set, memory_replace, memory_oversized) for the agent to manage its own long-term memory. Memory blocks are stored as markdown files with YAML frontmatter on disk, split into global and project scopes. An optional journal system offers append-only entries with semantic search via local embeddings (all-MiniLM-L6-v2), tags, and metadata tracking. The architecture is cleanly modular: the plugin entry point (src/plugin.ts) orchestrates a configurable memory store (src/memory.ts), a journal store (src/journal.ts), a snapshot caching layer (src/snapshot.ts), and tool definitions (src/tools.ts). The snapshot store is particularly notable for its careful handling of concurrent renders, invalidation, and persistence across process restarts, making it a reusable caching pattern. The codebase is well-tested, uses modern TypeScript with strict mode, and follows OpenCode v2 plugin API conventions. While some components are coupled to the OpenCode ecosystem, the frontmatter utilities, embedding wrapper, and snapshot store are self-contained and could be extracted for use in other projects.