pi-simple-memory
Simple persistent file-based memory for pi agents.
Package details
Install pi-simple-memory from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-simple-memory- Package
pi-simple-memory- Version
0.3.1- Published
- Apr 23, 2026
- Downloads
- 880/mo · 880/wk
- Author
- tuan_son.dinh
- License
- MIT
- Types
- extension
- Size
- 34.4 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-simple-memory
Simple persistent file-based memory for pi agents. Ported from the LSD memory extension.
Install
pi install npm:pi-simple-memory
How it works
Memories are markdown files with YAML frontmatter stored at:
~/.pi-memory/projects/<project-name>-<hash>/memory/
MEMORY.md ← index, injected into every session
<topic>.md ← individual memory files
Each project gets its own isolated memory dir, keyed by the git root path.
System prompt injection
Once per session (on the first agent turn), the extension injects a # Memory section into the system prompt containing:
- A short header pointing at the memory dir
- Guidance on memory types, what to save / not save, how to save, when to recall, and how much to trust recalled memories
- The full
MEMORY.mdindex (truncated to 200 lines / 25 KB if larger)
After that, it stays in context for the whole session — no re-injection on later turns. The agent reads individual topic files on demand with the read tool.
The agent writes and updates memory files directly using the built-in write and edit tools — no dedicated "remember" tool. Each memory is a markdown file with frontmatter, and gets a one-line pointer in MEMORY.md.
Memory types
| Type | When to save |
|---|---|
user |
Preferences, conventions, workflow habits |
feedback |
Corrections or praise about agent behaviour |
project |
Architecture decisions, repo conventions, domain knowledge |
reference |
Useful facts, links, documentation pointers |
Commands
| Command | Description |
|---|---|
/memory:list |
List all saved memory files |
/memory:remember <text> |
Ask the agent to save something now |
/memory:forget <topic> |
Ask the agent to find and remove a memory |
/memory:dream |
Ask the agent to consolidate and prune memories inline |
/memory:extract |
Ask the agent to extract durable memories from this conversation |
All commands except list work by sending a user message to the agent, which then performs the action with its normal file tools.
Memory file format
---
name: My memory
description: one-line description used to decide relevance in future conversations
type: user
---
Memory content here. For feedback/project types, structure as:
rule/fact, then **Why:** and **How to apply:** lines.
MEMORY.md format
- [My memory](my-memory.md) — one-line hook
- [Another thing](another-thing.md) — another hook
Keep entries concise — the whole file is truncated to 200 lines / 25 KB when injected.