npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

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.

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 serversmemorysync (the full memory tool set; API-key auth when MEMORYSYNC_API_KEY is set, OAuth otherwise) and memorysync-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