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
- Open the Chrome Web Store listing.
- Click Add to Chrome.
- Approve the browser install prompt.
- Pin the extension if you want faster access from the toolbar.
- 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 install2. Configure environment
Copy .env.example to .env.local and fill in your values:
cp .env.example .env.localRequired variables:
VITE_SUPABASE_URL- Your Supabase project URLVITE_SUPABASE_ANON_KEY- Your Supabase anon/public keyVITE_API_BASE_URL- Backend API URL (e.g.,http://localhost:3000or your Vercel URL)
3. Build the extension
npm run build4. Load in Chrome
- Open Chrome and go to
chrome://extensions - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked"
- Select the
distfolder in this repo
Using the Extension
Dashboard (Extension Popup)
- Click the EchoMemory icon in your browser toolbar
- Sign in with your EchoMemory account
- 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:
- Extract Memories / Save Source - Capture the current conversation
- Optimize Query - Enhance your typed message with relevant memory context
- 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 devThen 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:localThis 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.jsonUsing 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 setupThis 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 buildManual 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
- Go to Cursor Settings -> Features -> MCP Servers -> + Add new MCP server
- 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.jsif developing locally)
- Type:
- Add the following Environment Variables necessary for the
npxscript:ECHO_API_TOKEN: (Paste your generatedec_API Key here)ECHO_API_BASE_URL:https://echo-mem-chrome.vercel.app(Optional. Defaults to this production URL)
For Windsurf
- Open your global Windsurf MCP configuration file:
- Mac/Linux:
~/.codeium/windsurf/mcp_config.json - Windows:
%USERPROFILE%\.codeium\windsurf\mcp_config.json
- Mac/Linux:
- Add the
echomemserver, entering your Remote Base URL and API Key in theenvobject:
{
"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"
}
}
}
}- 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.
- Open Claude.ai in your browser.
- Go to Settings -> Connectors -> Add custom connector.
- Under the fields, enter the following:
- Name:
EchoMemory - Remote MCP server URL:
https://echo-mem-chrome.vercel.app/api/extension/mcp
- Name:
- Leave Advanced Settings (OAuth Client ID / Secret) BLANK. Claude will use Dynamic Client Registration automatically.
- Click Add. Claude will redirect you to an EchoMem authorization page.
- Enter your
ec_...API key on the authorization page and click Authorize. - 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:
- 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
- Mac:
- Add the
echomemserver configuration to themcpServersobject, ensuring you include the token in theenvobject:
{
"mcpServers": {
"echomem": {
"command": "node",
"args": ["/absolute/path/to/EchoMem-Chrome/packages/mcp-server/dist/index.js"],
"env": {
"ECHO_API_TOKEN": "ec_1234567890abcdef..."
}
}
}
}- 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.
