pi-agent-memory

extensionmaintained

Persistent memory for pi-agents, powered by claude-mem (55k+ stars). Cross-session, cross-engine memory with hybrid search.

by · v0.3.4 · published 3mo ago

$ pi install npm:pi-agent-memory
downloads/mo
240
stars
14
last push
3mo ago
open issues
13

Signals

license: AGPL-3.0testspi manifest: missinginstall size: —deps: 0peer deps: 0

Download trend

541 downloads · last 12 weeks (weekly)

README

pi-agent-memory

Pi-agent-memory banner

GitHub Stars GitHub Forks npm version License

Fork & adaptation of claude-mem (55k+ stars, 4.4k+ forks) — the most popular persistent memory system for AI coding agents — now available as a native pi-mono extension.

Gives pi-coding-agent and any pi-mono-based runtime cross-session, cross-engine memory by connecting to claude-mem's battle-tested worker service. Same compressed memory, same hybrid search (FTS5 + Chroma vector embeddings), same cross-engine sharing — built for pi-agents.

Why pi-agent-memory?

  • Backed by claude-mem — the #1 memory system for AI coding agents, trusted by 55k+ developers
  • Cross-engine memory — your pi-agent shares memory with Claude Code, Cursor, Codex, and OpenClaw sessions
  • Hybrid search — FTS5 full-text + Chroma vector embeddings for precise memory recall
  • Zero config — installs with one command, auto-connects to the claude-mem worker
  • Battle-tested — built on the same worker API powering thousands of daily sessions

Installation

Requires the claude-mem worker running on localhost:37777. Install claude-mem first via npx claude-mem install or run the worker from source.

From npm (recommended)

pi install npm:pi-agent-memory

From git

pi install git:github.com/thedotmack/claude-mem

Manual

cp extensions/pi-mem.ts ~/.pi/agent/extensions/pi-mem.ts

Verify

# Start pi — the extension auto-loads
pi

# Check connectivity
/memory-status

What It Does

  • Captures observations — every tool call your pi-agent makes is recorded to claude-mem's database
  • Injects context — relevant past observations are automatically injected into the LLM context each turn
  • Memory search — a memory_recall tool is registered for the LLM to explicitly search past work
  • Cross-engine sharing — pi-agent observations live alongside Claude Code, Cursor, Codex, and OpenClaw memories in the same database

Architecture

Pi-Agent (pi-coding-agent / OpenClaw / custom)
    │
    ├── pi-mem extension (this package)
    │   ├── session_start      ──→  (local state init only)
    │   ├── before_agent_start ──→  POST /api/sessions/init (with prompt)
    │   ├── context            ──→  GET  /api/context/inject
    │   ├── tool_result        ──→  POST /api/sessions/observations
    │   ├── agent_end          ──→  POST /api/sessions/summarize
    │   │                           POST /api/sessions/complete
    │   ├── session_compact    ──→  (preserve session state)
    │   └── session_shutdown   ──→  (cleanup)
    │
    └── memory_recall tool     ──→  GET  /api/search
                                         │
                                         ▼
                            claude-mem worker (port 37777)
                            SQLite + FTS5 + Chroma
                            Shared across all engines

Event Mapping

Pi-Mono EventWorker APIPurpose
session_start— (local state only)Derive project name, generate session ID
before_agent_startPOST /api/sessions/initCapture user prompt for privacy filtering
contextGET /api/context/injectInject past observations into LLM context
tool_resultPOST /api/sessions/observationsRecord what tools did (fire-and-forget)
agent_endPOST /api/sessions/summarize + completeAI-compress the session
session_compactPreserve session ID across context compaction
session_shutdownClean up local state

Derived from the OpenClaw plugin (claude-mem/openclaw/src/index.ts), which is a proven integration of claude-mem into a pi-mono-based runtime.

Configuration

VariableDefaultDescription
CLAUDE_MEM_PORT37777Worker service port
CLAUDE_MEM_HOST127.0.0.1Worker service host
PI_MEM_PROJECT(derived from cwd)Project name for scoping observations
PI_MEM_DISABLEDSet to 1 to disable the extension

Cross-Engine Memory

All engines write to the same ~/.claude-mem/claude-mem.db, tagged by platform_source:

EnginePlatform Source
Claude Codeclaude
OpenClawopenclaw
Pi-Agentpi-agent
Cursorcursor
Codexcodex

Context injection returns observations from all engines for the same project by default. Pass platformSource to filter by engine.

Related Packages

Other independent claude-mem adapters published to npm:

Other pi memory extensions (standalone, not claude-mem based):

Development

# Edit the extension
vim extensions/pi-mem.ts

# Test locally
pi -e ./extensions/pi-mem.ts

# Or install from local path
pi install ./pi-agent

Credits

This package is a fork and adaptation of claude-mem by @thedotmack — the leading persistent memory system for AI coding agents. All core memory infrastructure (worker service, SQLite + FTS5 database, Chroma vector embeddings, AI-powered compression) is provided by claude-mem.

License

AGPL-3.0 — same as claude-mem.