independent research lab
ZBS GG
zbs·gg·no reset. no amnesia.

memory that knows what matters right now.

Pulse is a state-aware memory engine for agents: it retrieves the right remembered episode for this moment — not the closest text match — and shows why it surfaced. local-first, structured memories; raw transcript capture off by default.

install Pulse Local Preview — then pulse doctor, then pulse demo
npx @zbs-gg/pulse@preview init claude-code

● live on npm · v0.6.4 developer preview · doctor-gated demo, no fake results · backend LLM off by default · raw capture off by default

the prompt at the top of this page makes your agent audit Pulse before it installs anything: read the repo, explain what gets written, ask confirmation, run doctor, then run the demo — honestly.

what your agent will check

  • what files Pulse writes
  • whether backend API keys are required
  • whether raw transcript capture is off
  • where memory is stored
  • how to wipe and disconnect
  • whether setup is project-local

trust boundary — off by default

  • no backend OpenAI, Anthropic, or Cohere key is required
  • no raw full transcript capture is enabled
  • archive import is optional, never part of the first proof
  • memory can be deleted or wiped locally

safe mode — fallback, not the product

  • for machines that can't run the engine: structured local memory, inspect, wipe — keyword recall only
  • no benchmark claim applies to this mode, and pulse doctor will say so
requires only Node 18+
claude mcp add pulse -- npx -y @zbs-gg/pulse@preview mcp

Pulse is an MCP server — it runs anywhere a host can start a local stdio command with npx. the preview proves the Claude Code path first; the same MCP tools (pulse_remember, pulse_recall, pulse_resume, pulse_status, pulse_wipe and friends) answer any compatible host. statuses mirror the Compatible Harnesses table in the repo.

not "it remembers across sessions" — everyone has that. the demo proves the part others don't show: same query, different state, different memory — with the reason visible on every line. and friction is signal: a tense session, a hard week — when state and salience signals are present, Pulse can rank which memory matters now (shown in the demo on a labeled simulated corpus).

  1. pulse demo seeds an isolated, labeled SIMULATED corpus — never your data.
  2. One question runs in three user states: drained, restored, angry.
  3. Different episodes surface — each line shows why: state x1.15 · anchor x1.05 · emotion x1.15.
  4. An old structural anchor outranks this week's noise, and the breakdown proves it.
  5. The continuity pack shows exactly what your next agent session receives.
  6. pulse demo --clean erases the whole demo store.

your first memory will read something like "You installed Pulse MCP and connected it to Claude Code." Pulse may guess an emotion (maybe curiosity?) — curious / relieved / skeptical / skip — but no emotion is stored until you choose one. silence is not consent. Pulse works quietly even if you never import old chats.

a real run of pulse demo on the real engine (local MLX embeddings): simulated labeled corpus seeds in, one question runs in three user states, three different answers come back with their reasons — then the continuity pack, then the wipe.

if the embedded player does not start, open the demo video directly.

start with one memory first. old chats can wait — import is opt-in, previewed before anything enters memory.

this is a technical preview — not a broad consumer installer, not Pulse Cloud, not a ChatGPT Store or Claude Directory connector. it is the Claude Code-first path for technical friends, partners, and early reviewers. leaving is one command:

wipe local memory
ask your agent: pulse_wipe, confirm "wipe pulse memory"
disconnect this project
claude mcp remove pulse
remove the store
rm -rf ~/.pulse/standalone

pulse memory wiped. quiet again.