opencode-memorysync
v1.0.1
Published
Automatic long-term memory for OpenCode: recalled context injected per session, every exchange captured, the MemorySync MCP servers and slash commands registered — one plugin line, session-safe by contract.
Maintainers
Readme
opencode-memorysync
Automatic long-term memory for OpenCode, powered by MemorySync. One line in your config and every session starts already briefed on you and your project — recalled context is injected into the system prompt, every exchange is captured as it happens, and the MemorySync MCP servers and slash commands are registered for you.
Install
Add one line to ~/.config/opencode/opencode.json (or a project's
.opencode.json); OpenCode installs the plugin from npm on next start:
{ "plugin": ["opencode-memorysync"] }Then set your API key (get one at app.memorysync.io):
# macOS/Linux
export MEMORYSYNC_API_KEY=ms_...
# Windows
setx MEMORYSYNC_API_KEY ms_...Without a key, the MemorySync MCP server falls back to OAuth — OpenCode signs
you in on first tool use (opencode mcp auth).
What runs when
| Moment | What happens |
| --- | --- |
| First LLM call of a session | Your profile and this project's context are recalled once and injected into the system prompt; every later call in the session replays the identical block from a bounded cache. |
| You send a message | The text persists with a content-hash seed under the opencode:: transcript scope. Slash-command template expansions are recognised and skipped. |
| The reply completes | The assistant text persists the same way; a failed persist forgets its seed so the next event can retry. |
| Session compaction | Memory context is re-supplied to what survives the compact. |
| Any failure — no key, network down, monthly quota exhausted | Silent skip. Every hook is wrapped: a thrown hook would break your OpenCode session, so none can throw. |
What gets registered
- MCP servers —
memorysync(the full memory tool set; API-key auth whenMEMORYSYNC_API_KEYis set, OAuth otherwise) andmemorysync-docs(zero-auth documentation search). - Slash commands —
/memorysync-recall <query>,/memorysync-remember <fact>,/memorysync-status.
Registration is non-destructive: MCP or command entries you configured yourself are never overwritten.
Configuration
| Variable | Effect |
| --- | --- |
| MEMORYSYNC_API_KEY | Authenticates capture, recall and the MCP server. |
| MEMORYSYNC_USER_ID | Memory identity (default: OS username). |
| MEMORYSYNC_PROJECT | Project scope override (default: git remote, worktree-aware). |
| MEMORYSYNC_BASE_URL | Point at a different MemorySync deployment. |
| MEMORYSYNC_PROMPT_RECALL=off | Disable system-prompt injection; capture and tools keep working. |
| MEMORYSYNC_DISABLE=1 | Switch the plugin off without uninstalling. |
Docs
Full guide: docs.memorysync.io/guides/opencode
