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

echomemory

v0.4.5

Published

Chrome extension for memory extraction and management

Readme

EchoMemory Chrome Extension

A Chrome extension for capturing, managing, and reusing memories from your AI conversations. The current public release is cloud-first and account-backed.

Features

Core Features

  • 🔐 Account Sign-In - Sign in securely with your EchoMemory account
  • 📝 Extract Memories - Automatically save key information from AI conversations
  • Optimize Queries - Enhance your messages with relevant context from your memory library
  • 📚 Load Context - Inject past conversation history as context for new chats (with smart compression for long contexts)
  • 🗂️ Memory & Source Management - Browse, edit, export, and delete your memories and sources

Supported AI Platforms

  • ChatGPT (chat.openai.com, chatgpt.com)
  • Claude (claude.ai)
  • Google Gemini (gemini.google.com)
  • Grok (grok.com, x.com/i/grok)
  • Perplexity (perplexity.ai)
  • DeepSeek (chat.deepseek.com)
  • Qwen (chat.qwen.ai)
  • Microsoft Copilot (copilot.microsoft.com)
  • Mistral Le Chat (chat.mistral.ai)

Current Release Model

| Property | Current Behavior | |---------|------------------| | Login Required | Yes | | Storage | Cloud-backed EchoMemory account | | Best For | Reusing memories across supported browser AI surfaces | | Cross-Device Sync | Yes |

Installation

Recommended for users: Chrome Web Store

Install the extension from the official Chrome Web Store listing:

EchoMemory on Chrome Web Store

  1. Open the Chrome Web Store listing.
  2. Click Add to Chrome.
  3. Approve the browser install prompt.
  4. Pin the extension if you want faster access from the toolbar.
  5. Open the extension popup and sign in to your EchoMemory account.

Internal team / development install

Use this path only if you are actively developing or testing an unreleased build.

1. Clone and install dependencies

cd EchoMem-Chrome
npm install

2. Configure environment

Copy .env.example to .env.local and fill in your values:

cp .env.example .env.local

Required variables:

  • VITE_SUPABASE_URL - Your Supabase project URL
  • VITE_SUPABASE_ANON_KEY - Your Supabase anon/public key
  • VITE_API_BASE_URL - Backend API URL (e.g., http://localhost:3000 or your Vercel URL)

3. Build the extension

npm run build

4. Load in Chrome

  1. Open Chrome and go to chrome://extensions
  2. Enable "Developer mode" (toggle in top right)
  3. Click "Load unpacked"
  4. Select the dist folder in this repo

Using the Extension

Dashboard (Extension Popup)

  1. Click the EchoMemory icon in your browser toolbar
  2. Sign in with your EchoMemory account
  3. Use tabs to navigate:
    • Add Source - Paste text or upload files for memory extraction
    • My Memories - Browse, search, and manage extracted memories
    • Sources - View and export your conversation sources

Floating Icon (On AI Chat Sites)

On supported platforms, a floating EchoMemory icon appears in the bottom-right corner:

  1. Extract Memories / Save Source - Capture the current conversation
  2. Optimize Query - Enhance your typed message with relevant memory context
  3. Load Context - Select a past conversation to inject as context for your new chat

Load Context Feature

The Load Context feature allows you to continue conversations across different AI platforms:

  • Select from your saved conversation sources
  • Long contexts (>20k characters) are automatically compressed using the "Claude Code Compact" strategy
  • Context is wrapped in a template to guide the LLM

Development

For the normal extension-only Vite dev server:

npm run dev

Then load the dist folder in Chrome as described above. The extension will automatically reload when you make changes.

For local test mode, where the extension calls a locally editable Next.js backend:

cp .env.local.example .env.local
npm run dev:check
npm run dev:local

This runs the API at http://localhost:3000 and the extension HMR server at http://localhost:5173. See docs/local-test-environment.md for the full workflow.

This section is intended for internal contributors or anyone testing unreleased builds. End users should install from the Chrome Web Store.

Project Structure

.
├── src/
│   ├── views/              # Main view components
│   │   ├── AuthView.tsx
│   │   ├── IngestionView.tsx
│   │   ├── MemoryListView.tsx      # Current account-backed memory list
│   │   ├── LocalMemoryListView.tsx # Legacy local implementation
│   │   ├── SourceListView.tsx      # Current account-backed source list
│   │   └── LocalSourceListView.tsx # Legacy local implementation
│   ├── content/            # Content scripts for AI platforms
│   │   ├── content-script.ts
│   │   ├── floating-icon.css
│   │   └── extractors/     # Platform-specific extractors
│   ├── background/         # Service worker
│   │   └── service-worker.ts
│   ├── lib/                # Libraries and utilities
│   │   ├── api.ts          # Cloud API client
│   │   ├── supabase.ts     # Supabase client
│   │   └── storage/        # Local storage (IndexedDB, embeddings, pollinations)
│   ├── components/         # Reusable UI components
│   ├── hooks/              # React hooks (useAuth)
│   ├── App.tsx             # Main app component
│   └── index.tsx           # Entry point
├── packages/
│   └── mcp-server/         # Node.js MCP Server for IDEs
├── manifest.json           # Chrome extension manifest (V3)
└── package.json

Using the MCP Server (IDE & AI Chat Integration)

EchoMem includes a standalone, cloud-first Model Context Protocol (MCP) server. This allows AI IDEs (Cursor, Windsurf, VS Code) and desktop agents (Claude Desktop) to read your memories or save important code conversations directly into your cloud vault!

Quick Start

npm i -g @echomem/mcp@latest && echomem-mcp setup

This installs the latest EchoMem MCP bridge, writes your MCP client config, and opens the browser login flow. It also keeps echomem-mcp available for later status, update, and unlock commands. Credentials stay out of the MCP config; secrets live locally in ~/.echomem/credentials.json.

Build the MCP Server Locally

cd packages/mcp-server
npm install
npm run build

Manual IDE Config (fallback)

IDEs generally do not yet support Remote SSE connections like the Claude Web App. Instead, they use stdio (Standard I/O CLI) to run MCP servers. To run the EchoMem bridge instantly without cloning this repo, use the public NPX command.

For Cursor

  1. Go to Cursor Settings -> Features -> MCP Servers -> + Add new MCP server
  2. Configure it as follows:
    • Type: command
    • Name: echomem
    • Command: npx
    • Args: -y @echomem/mcp@latest (Alternatively: /absolute/path/to/EchoMem-Chrome/packages/mcp-server/dist/index.js if developing locally)
  3. Add the following Environment Variables necessary for the npx script:
    • ECHO_API_TOKEN: (Paste your generated ec_ API Key here)
    • ECHO_API_BASE_URL: https://echo-mem-chrome.vercel.app (Optional. Defaults to this production URL)

For Windsurf

  1. Open your global Windsurf MCP configuration file:
    • Mac/Linux: ~/.codeium/windsurf/mcp_config.json
    • Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
  2. Add the echomem server, entering your Remote Base URL and API Key in the env object:
{
  "mcpServers": {
    "echomem": {
      "command": "npx",
      "args": ["-y", "@echomem/mcp@latest"],
      "env": {
        "ECHO_API_TOKEN": "ec_YOUR_API_KEY_HERE",
        "ECHO_API_BASE_URL": "https://echo-mem-chrome.vercel.app"
      }
    }
  }
}
  1. Save the file and reload Windsurf.

4. Add Custom Connector to Claude Web App (claude.ai)

You can directly connect Claude.ai to your remote EchoMem backend using custom connectors. Claude.ai uses OAuth 2.1 with PKCE to authenticate — when you add the connector, you'll be redirected to an authorization page where you enter your EchoMem API key.

  1. Open Claude.ai in your browser.
  2. Go to Settings -> Connectors -> Add custom connector.
  3. Under the fields, enter the following:
    • Name: EchoMemory
    • Remote MCP server URL: https://echo-mem-chrome.vercel.app/api/extension/mcp
  4. Leave Advanced Settings (OAuth Client ID / Secret) BLANK. Claude will use Dynamic Client Registration automatically.
  5. Click Add. Claude will redirect you to an EchoMem authorization page.
  6. Enter your ec_... API key on the authorization page and click Authorize.
  7. You'll be redirected back to Claude.ai and the connector will show as Connected.

Now Claude AI on the web can securely interface directly with your memories using the search_memories and save_conversation tools!

5. Add to Claude Desktop (Mac/Windows)

If you prefer running the MCP bridge locally using the packages/mcp-server Node.js daemon rather than connecting directly to the cloud connector:

  1. Open your Claude Desktop App setting file (claude_desktop_config.json):
    • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add the echomem server configuration to the mcpServers object, ensuring you include the token in the env object:
{
  "mcpServers": {
     "echomem": {
       "command": "node",
       "args": ["/absolute/path/to/EchoMem-Chrome/packages/mcp-server/dist/index.js"],
       "env": {
         "ECHO_API_TOKEN": "ec_1234567890abcdef..."
       }
     }
  }
}
  1. Save the file and completely restart the Claude Desktop Application.

Your AI assistant can now use tools like search_memories to recall your previous work and save_conversation to save context straight to EchoMem!

Backend API Endpoints

The current release calls these endpoints on the EchoMemory backend:

| Method | Endpoint | Description | |--------|----------|-------------| | POST | /api/extension/memories/ingest | Submit text for memory extraction | | POST | /api/extension/memories/search | Search for relevant memories | | POST | /api/extension/memories/optimize | Optimize a query using memories | | POST | /api/extension/context/compress | Compress long context (for Load Context) | | GET | /api/extension/memories | List user's memories | | GET | /api/extension/sources | List user's sources | | GET | /api/extension/sources/[id] | Get source details | | PATCH | /api/extension/memories/[id] | Update a memory | | DELETE | /api/extension/memories/[id] | Delete a memory |

Privacy

The extension values your privacy:

  • Data is stored in your account-backed EchoMemory cloud workflow
  • Memory extraction and query optimization use secure API calls
  • No conversation data is shared with third parties

For more details, see the Privacy Policy.