Give your AI agent a reusable memory of web actions.
Requires Node.js ≥ 18 and Google Chrome installed.
One command configures every supported agent it finds on the machine — Codex, Cursor, VS Code (Copilot) and Claude Code:
npx -y browser-memory@latest installThen restart the app: MCP servers are negotiated when the session starts, so a new chat isn't enough. It's idempotent (never overwrites an existing entry).
To install into a single host, name it (codex · cursor · vscode · claude):
npx -y browser-memory@latest install cursorThose run the agent in a sandbox, where npx … install can't reach your machine's config. Paste
this instead — the agent fetches the doc, downloads the bundle and tells you the two clicks:
Install browser-memory by following https://raw.githubusercontent.com/browser-memory/browser-memory/main/docs/install.md — keep your reply short: only the steps I have to do myself.
Or skip the agent: download the bundle, double-click it, install, and restart the app. Same result.
The entry written above runs browser-memory@latest, so new releases are picked up on their own
when the app starts a session. If the server was installed before v0.1.22 — or ever seems
stuck on an old version — rewrite the entry once:
npx -y browser-memory@latest update…and restart the app. Takes the same optional host as install.
npx -y browser-memory@latest uninstall…and restart the app. This is the only way to remove it — an MCP server cannot unload itself from a live session. It takes the same optional host as install, and it only touches the host's config: your learned tools (~/.tool-memory) and the Chrome profile are left alone.
Any other MCP host — drop this into its config (most clients use the mcpServers key; VS Code uses servers):
{ "mcpServers": { "browser-memory": { "command": "npx", "args": ["-y", "browser-memory@latest"] } } }On by default — it pulls ready-made tools from the hosted registry (https://api.browser-memory.com), anonymously: no account, no sign-up, no login prompt. If the registry refuses the request, you're told once and everything keeps working with your local tools.
Signing in is optional, and only if the backend asks for a key:
npx -y browser-memory@latest login(or set TOOL_MEMORY_REGISTRY_KEY yourself). The server never starts a login flow on its own.
Turn it off to run 100% local:
npx browser-memory config server offTurn it back on:
npx browser-memory config server onPoint it at another backend:
npx browser-memory config set-url https://your-registry.example.com