# Browser-Memory

> Source: <https://github.com/browser-memory/bmem>
> Published: 2026-07-09 15:57:04+00:00

**Open catalog of web skills for AI agents.**

[browser-memory.com](https://browser-memory.com)

**Open catalog of web skills for AI agents.** Search reusable, battle-tested browser
recipes, add them as native agent skills, and run them with **whatever browser your
agent already has** — Playwright MCP, claude-in-chrome, browser-memory's `bm_*`

, …

`bmem`

is a thin, consume-only CLI (Node, no browser). It searches the catalog and
registers skills into your agent's native skill framework. It never drives a browser
and never sees your cookies — the agent runs the skill with its own browser, so the
session stays put.

This is the public CLI. The skill catalog lives behind a separate read-only API: a light search endpoint plus a file manifest that points at blob storage. See

[for the API contract.]`SERVER.md`

```
npm i -g bmem-cli
bmem search <query>              # search the catalog, e.g. bmem search linkedin people
bmem search --site linkedin.com  # filter by site
bmem list [--limit 50]           # list the whole catalog
bmem show linkedin.com/search-people  # print a skill's SKILL.md without installing
bmem add linkedin.com/search-people   # download + register a skill natively
bmem install                     # register the bundled bmem meta-skill (bootstrap)
```

Start with `bmem install`

— it registers a **meta-skill** that teaches your agent the
command surface plus how to map each skill's capabilities (`navigate`

, `evaluate`

, …)
to its own browser tools. After that, `bmem add <name>`

makes a skill show up in the
agent's native skill list, and the agent invokes it directly.

`add`

and `install`

register skills by delegating to the standalone
[ skills](https://www.npmjs.com/package/skills) installer (

`npx skills add …`

), which
detects your agent (Claude Code, Cursor, …) and writes to the right place — so `npx`

must be available.A skill is a `SKILL.md`

: YAML frontmatter (machine) + a browser-agnostic recipe. It
declares the **capabilities** it needs and ships the exact selectors — and, when
possible, the direct in-page XHR — so the agent skips reading a full DOM. Execution is
one path:

`navigate`

to establish the session,`evaluate`

the skill's extractor (an in-page authenticated`fetch`

+ parse),- get back the JSON.

Cookies never leave the browser.

| Env var | Default | Purpose |
|---|---|---|
`BMEM_SKILLS_API_BASE_URL` |
`https://browser-memory.com` |
Skills API base (self-host) |
`BMEM_HOME` |
`~/.config/bmem` |
Local cache of added skills |

``` php
npm install
npm run build      # tsup -> dist/
npm run typecheck
node dist/index.js search linkedin
```

MIT
