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

agentsmd-memory

v1.4.0

Published

Zero-dependency MCP server that gives AI agents a self-updating project memory in AGENTS.md. Returns merge instructions instead of mutating state, so every change is a reviewable diff.

Readme

agentsmd-memory

npm ci license

MCP server for keeping project memory in AGENTS.md. Zero dependencies.

The tools don't edit files. They resolve the nearest memory file and return instructions the agent carries out with its own Write/Edit tools, so every change — even creating the file — shows up as a reviewable git diff.

Tools

  • memory_save — record a durable fact (decision, convention, gotcha, non-obvious command).
  • memory_forget — remove a stale fact.

Install

Published on npm as agentsmd-memory. Runs via npx — no global install needed. The config schema differs per client; expand yours below. On Windows, wrap the command as cmd /c npx -y agentsmd-memory.

Installs the MCP tools and a per-turn nudge in one step (see why the nudge helps; Claude Code delivers it via a UserPromptSubmit hook):

claude plugin marketplace add jryom/agentsmd-memory
claude plugin install agentsmd-memory@agentsmd-memory

Override the reminder text with the MEMORY_NUDGE env var. No file config needed: the tools prefer AGENTS.md and fall back to CLAUDE.md, which Claude Code auto-loads (see Config).

Tools without the nudge:

claude mcp add --transport stdio memory -- npx -y agentsmd-memory

claude_desktop_config.json or .cursor/mcp.json:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "agentsmd-memory"]
    }
  }
}

~/.config/opencode/opencode.json. Note the differences: top-level mcp (not mcpServers), command is a single array, env goes in environment (not env).

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "memory": {
      "type": "local",
      "command": ["npx", "-y", "agentsmd-memory"],
      "enabled": true
    }
  },
  "plugin": ["agentsmd-memory"]
}

The plugin line is recommended — see opencode plugin. It loads from npm by name, so it requires agentsmd-memory >= 1.2.0; restart opencode after editing.

.vscode/mcp.json (project) or your user mcp.json. Top-level key is servers and the type is stdio:

{
  "servers": {
    "memory": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "agentsmd-memory"]
    }
  }
}
copilot mcp add memory -- npx -y agentsmd-memory

Or edit ~/.copilot/mcp-config.json directly. Copilot CLI requires type: "local" and a tools field:

{
  "mcpServers": {
    "memory": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "agentsmd-memory"],
      "tools": ["*"]
    }
  }
}

Repo → Settings → Copilot → MCP servers. Same shape as the CLI (type: "local", tools required). Any env vars must be prefixed COPILOT_MCP_.

{
  "mcpServers": {
    "memory": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "agentsmd-memory"],
      "tools": ["*"]
    }
  }
}

opencode plugin (recommended)

The tools are prompt-driven — the agent only calls them if it decides to, which rarely happens mid-task. The package ships plugins for opencode and Claude Code that inject a short reminder every turn (opencode via the system prompt, Claude Code via a UserPromptSubmit hook), so the agent reliably reaches for memory_save/memory_forget. The opencode plugin is enabled via the "plugin": ["agentsmd-memory"] line in the config above. Override the reminder text with the MEMORY_NUDGE env var.

Config

| Env | Default | Purpose | | --- | --- | --- | | MEMORY_FILE | (unset) | Pin the target to a single file name, e.g. GEMINI.md. Bare name only. When set, disables the auto fallback below. | | MEMORY_NUDGE | built-in reminder | opencode/Claude Code plugin only. Overrides the per-turn reminder text. To skip injection, don't load the plugin. |

When MEMORY_FILE is unset the tools prefer AGENTS.md, then fall back to CLAUDE.md. So a Claude Code repo that only has CLAUDE.md (which Claude auto-loads; it doesn't read AGENTS.md) is found without any config, while AGENTS.md stays preferred for cross-tool sharing when present.

Notes

  • Workspace dir is resolved from MCP roots, else a cwd arg, else process.cwd(). From there it walks up to the git root; the nearest existing file wins, and at a given level AGENTS.md beats the CLAUDE.md fallback. When nothing exists, AGENTS.md is created at the git root.
  • The tools never write files. When no memory file exists, memory_save returns instructions to create one; the agent authors it with its own Write tool, so even bootstrapping shows up as a reviewable diff.
  • Saves are prompt-driven; the agent decides when to call them. The bundled opencode plugin nudges it every turn.

Develop

npm test
npx @modelcontextprotocol/inspector npx -y agentsmd-memory

Source: github.com/jryom/agentsmd-memory.

License

MIT