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

engram-ai-mcp

v1.0.1

Published

🧠 The AI's memory trace. Persistent context, checkpoints & skills for every AI tool β€” zero dependencies.

Readme

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β• β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ•‘
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•”β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β–ˆβ–ˆβ–ˆβ–ˆβ•”β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β•šβ•β• β–ˆβ–ˆβ•‘
β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•β•šβ•β•     β•šβ•β•

The AI's Persistent Memory Trace

Give your AI a memory it doesn't deserve.

npm version License: MIT MCP Compatible Platform Node

GitHub Β· npm Β· Report a Bug


What is ENGRAM?

enΒ·gram /ˈenΙ‘ram/ noun β€” A memory trace. The physical change in the brain that represents a stored memory.

ENGRAM is a zero-dependency MCP server that gives any AI tool a persistent second brain. It stores checkpoints, notes, rules, and skills as plain files β€” surviving across sessions, context resets, and tool switches.

The problem: You're 3 hours into a coding session. The AI knows everything about your project. Then the context window fills up β€” and it forgets everything. You start from zero. Again.

ENGRAM fixes this.


Why You Need This

Without ENGRAM (New Session):

You: "Hey, I need to add a new route to my API." AI: "Sure! What framework are you using? Where are your routes located? Are you using JWT for auth?" You: (Sighs, pastes 5 files and explains the architecture again)

With ENGRAM (New Session):

You: "Call wake_up(). Then add a new route to my API." AI: "Memory loaded. I see we're using Express with the zod validation middleware from yesterday. I'll place the route in src/routes/ and protect it with your JWT guard. Here's the code." You: 🀯


Works With Every AI Tool

| Tool | Status | |------|--------| | Claude Desktop | βœ… | | Claude Code (CLI) | βœ… | | Cursor | βœ… | | Windsurf | βœ… | | Antigravity | βœ… | | Zed | βœ… | | Any MCP-compatible client | βœ… |


Quick Start

Requires: Node.js v18+ β€” Windows 10/11, macOS 12+, Linux

# Run instantly without installing
npx engram-ai-mcp

# Or install globally for faster startup
npm install -g engram-ai-mcp
engram-mcp

Setup by Tool

Claude Desktop

Edit your Claude Desktop config file:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "engram": {
      "command": "npx",
      "args": ["engram-ai-mcp"]
    }
  }
}

Restart Claude Desktop β†’ look for the πŸ”Œ icon β†’ ENGRAM is live.

First time only: Say to Claude β€” "Call init_session with our conversation history."


Windows (if npx doesn't work)

{
  "mcpServers": {
    "engram": {
      "command": "cmd",
      "args": ["/c", "npx", "engram-ai-mcp"]
    }
  }
}

After npm install -g engram-ai-mcp:

{
  "mcpServers": {
    "engram": {
      "command": "engram-mcp"
    }
  }
}

Cursor / Windsurf / Zed

Open MCP settings and add:

{
  "engram": {
    "command": "npx",
    "args": ["engram-ai-mcp"]
  }
}

Antigravity

  1. Find Antigravity's MCP config (usually in app settings under "MCP Servers")
  2. Add a new server entry:
{
  "engram": {
    "command": "npx",
    "args": ["engram-ai-mcp"]
  }
}
  1. Restart Antigravity
  2. At the start of your session, tell Antigravity: "Call wake_up() to load ENGRAM memory"

Team tip: Set ENGRAM_HOME to a shared folder so the whole team shares the same project brain.


Claude Code (CLI)

claude --mcp-config '{"engram": {"command": "npx", "args": ["engram-ai-mcp"]}}'

Or save permanently at ~/.claude/mcp.json:

{
  "mcpServers": {
    "engram": {
      "command": "npx",
      "args": ["engram-ai-mcp"]
    }
  }
}

The 10 Tools

Session Tools

| Tool | When | What | |------|------|------| | wake_up | Start of EVERY session | Loads checkpoint + brain + skills instantly | | init_session | First time only | Scans conversation history, builds project brain | | save_checkpoint | Context ~70% full / milestone | Saves state with auto-generated funny name | | check_pulse | Every ~20 messages | Context health check + 4th-wall-breaking warnings | | debrief | End of session | Permanently extracts dos, don'ts, rules to brain |

Memory Tools

| Tool | What | |------|------| | jot | Write a note, rule, warning, or discovery | | brain_dump | Get everything ENGRAM knows in one shot |

Skills Tools

| Tool | What | |------|------| | make_skill | Create an instruction skill or template skill | | get_skill | Load a skill (fills template variables) | | list_skills | Discover all available skills |


How It Works

SESSION START
    β”‚
    β–Ό
wake_up("my-project")
    └─ Returns: last checkpoint + brain (rules, dos, don'ts) + all skills
    β”‚
    β–Ό
[Working...]
    β”‚
    β”œβ”€β”€ Every ~20 messages
    β”‚   └─ check_pulse() β†’ "🎬 Context is sweating. Save a checkpoint or I become a movie with no ending."
    β”‚
    β”œβ”€β”€ Found something important
    β”‚   └─ jot("Never mutate state directly", "rule")
    β”‚
    β”œβ”€β”€ Context getting full (~70%)
    β”‚   └─ save_checkpoint(what, status, next_steps)
    β”‚       └─ Saved as: "legendary-before-everything-broke" πŸ˜„
    β”‚
    β–Ό
SESSION END
    β”‚
    β–Ό
debrief("built JWT auth", dos=[...], donts=[...])
    └─ Brain permanently updated. Next session starts smarter.

Checkpoint Names

ENGRAM auto-generates dramatically funny checkpoint names. You'll see these in your file system:

βœ“ legendary-before-everything-broke
βœ“ calm-dont-touch-it-it-works
βœ“ heroic-pre-yolo-deploy
βœ“ accidental-rubber-duck-session
βœ“ glorious-when-it-finally-worked
βœ“ doomed-npm-install-succeeded
βœ“ peaceful-works-on-my-machine

These will end up in your git history. You're welcome.


Skills System

Two types of skills β€” user decides which:

Instruction Skills

AI reads and follows step-by-step instructions (like a mini system prompt).

User: "Make a skill for debugging TypeScript" AI calls:

make_skill("Debug TypeScript", "instruction",
  instructions="1. Check tsconfig.json first. 2. Look for missing type annotations...")

Template Skills

Reusable prompts with {{variable}} placeholders.

User: "Make a skill for writing unit tests" AI calls:

make_skill("Write Tests", "template",
  template="Write tests for {{component}} using {{framework}}. Focus on: {{focus_areas}}",
  variables=["component", "framework", "focus_areas"])

Load anytime:

get_skill("Write Tests", variables={"component": "AuthForm", "framework": "Vitest", "focus_areas": "edge cases"})

Storage

All data lives as plain files β€” no database, no API key, no internet required.

~/.engram/                                  ← default (override with $ENGRAM_HOME)
└── projects/
    └── my-project/
        β”œβ”€β”€ brain.json                      ← machine-readable project intelligence
        β”œβ”€β”€ brain.md                        ← human-readable (looks great on GitHub)
        β”œβ”€β”€ pulse.json                      ← session context health tracking
        β”œβ”€β”€ checkpoints/
        β”‚   β”œβ”€β”€ legendary-before-everything-broke.json
        β”‚   └── legendary-before-everything-broke.md
        └── skills/
            β”œβ”€β”€ debug-typescript.json
            └── debug-typescript.md

Team setup: Point everyone to a shared folder:

export ENGRAM_HOME="/shared/team/.engram"
# or inside a monorepo:
export ENGRAM_HOME="$(pwd)/.engram"

System Prompt (Copy-Paste This)

Add to your AI tool's system prompt for automatic ENGRAM usage:

You have access to ENGRAM (engram-mcp), your persistent memory system.

RULES β€” ALWAYS FOLLOW:
1. Call wake_up() at the START of every session, before anything else.
2. If wake_up() returns "no_memory_yet" β†’ call init_session() with conversation history.
3. Call save_checkpoint() when context reaches ~70% capacity.
4. Call jot() the moment you discover something important.
5. Call check_pulse() every ~20 messages.
6. Call debrief() at the end of every session.
7. Skills: list_skills() to discover, get_skill(name) to load, make_skill() to create.

Build From Source

git clone https://github.com/aslam-devloper/ENGRAM-MCP.git
cd ENGRAM-MCP
npm install
npm run build
node dist/index.js

Development (hot reload):

npm run dev

Troubleshooting

npx engram-ai-mcp not found β†’ Check Node.js version: node --version (needs β‰₯ 18)

Tools not showing in Claude Desktop β†’ Restart Claude Desktop after editing config. Check the πŸ”Œ toolbar icon.

Permission error on Windows β†’ Use cmd /c npx engram-ai-mcp in your config, or install globally first.

Where is my data? β†’ ~/.engram/ on all platforms, or wherever $ENGRAM_HOME points.

Reset everything:

# Remove a project's memory
rm -rf ~/.engram/projects/my-project

# Nuclear option β€” wipe all ENGRAM data
rm -rf ~/.engram

Why ENGRAM?

An engram is the biological memory trace stored in your neurons. Every experience physically changes your brain β€” that changed state IS the memory.

ENGRAM does the same for AI: every session physically writes to files. The changed state IS the memory. The AI reads it next time and picks up exactly where it left off.

Also the name wasn't taken. That matters.


Contributing

PRs welcome. Keep it:

  • Simple β€” no new runtime dependencies
  • Funny β€” the checkpoint names must stay dramatic
  • Fast β€” startup under 200ms
  1. Fork β†’ Branch β†’ Code β†’ npm run build β†’ PR
  2. Add new tools in src/tools/, register in src/server.ts
  3. Update this README for any new tools

License

MIT β€” use it, fork it, build on it, star it ⭐


⭐ Star on GitHub · Report Bug · npm

"The AI remembered. For once."

Made with 🧠 and genuine frustration with context windows.