https://github.com/jo-inc/pi-mem
Pi coding agent extension for plain-Markdown memory system
https://github.com/jo-inc/pi-mem
Last synced: 3 months ago
JSON representation
Pi coding agent extension for plain-Markdown memory system
- Host: GitHub
- URL: https://github.com/jo-inc/pi-mem
- Owner: jo-inc
- Created: 2026-02-11T23:24:18.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-03-05T06:59:50.000Z (4 months ago)
- Last Synced: 2026-03-05T11:42:24.279Z (4 months ago)
- Language: TypeScript
- Size: 12.8 MB
- Stars: 17
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-cli-coding-agents - pi-mem - Markdown persistent memory for coding agents; long-term, daily, scratchpad, and searchable notes with zero dependencies on vector DBs. MIT. (Harnesses & orchestration / Agent infrastructure)
README
pi-mem
surprisingly useful daily memory for the pi coding agent
---
Inspired by OpenClaw's approach to agent memory.
## Layout
Memory files live under `~/.pi/agent/memory/` (override with `PI_MEMORY_DIR`):
| Path | Purpose |
|------|---------|
| `MEMORY.md` | Curated long-term memory (decisions, preferences, durable facts) |
| `SCRATCHPAD.md` | Checklist of things to keep in mind / fix later |
| `daily/YYYY-MM-DD.md` | Daily append-only log (today + yesterday loaded at session start) |
| `notes/*.md` | LLM-created files (lessons, self-review, reference material, etc.) |
Identity and behavioral files (e.g. `SOUL.md`, `AGENTS.md`, `HEARTBEAT.md`) can also live in the memory directory and be injected into context via `PI_CONTEXT_FILES`.
## Tools
| Tool | Description |
|------|-------------|
| `memory_write` | Write to `long_term` (MEMORY.md), `daily` (today's log), or `note` (notes/filename). Supports `append` and `overwrite` modes. |
| `memory_read` | Read MEMORY.md (`long_term`), SCRATCHPAD.md (`scratchpad`), daily logs (`daily`), notes (`note`), any root file (`file`), or list everything (`list`). |
| `memory_search` | Search across all files — filenames and content. Case-insensitive keyword search across root, notes/, and daily/. |
| `scratchpad` | Manage a checklist: `add`, `done`, `undo`, `clear_done`, `list`. |
## Context Injection
The following are automatically injected into the system prompt before every agent turn:
- Files listed in `PI_CONTEXT_FILES` (e.g. `SOUL.md,AGENTS.md,HEARTBEAT.md`)
- `MEMORY.md`
- `SCRATCHPAD.md` (open items only)
- Today's and yesterday's daily logs
Files in `notes/` and older daily logs are **not** injected — they're accessible on-demand via `memory_search` and `memory_read`.
## Configuration
| Env Var | Default | Description |
|---------|---------|-------------|
| `PI_MEMORY_DIR` | `~/.pi/agent/memory/` | Root directory for all memory files |
| `PI_DAILY_DIR` | `$PI_MEMORY_DIR/daily/` | Directory for daily logs |
| `PI_CONTEXT_FILES` | *(empty)* | Comma-separated list of extra files to inject into context (e.g. `SOUL.md,AGENTS.md,HEARTBEAT.md`) |
| `PI_AUTOCOMMIT` | `false` | When `1` or `true`, auto-commit to git after every write |
## Dashboard Widget
An auto-generated "Last 24h" summary is shown on session start and switch:
- Scans recent session files for titles, costs, and sub-agent counts
- Groups by topic using an LLM call (falls back to flat list)
- Rebuilt every 15 minutes in the background
- Also shows open scratchpad items
## Related
- **[pi-reflect](https://github.com/jo-inc/pi-reflect)** — Self-improving reflection engine for pi. Analyzes recent conversations and iterates on memory, behavioral rules, and identity files. Pairs naturally with pi-mem.
## Installation
```bash
pi install git:github.com/jo-inc/pi-mem
```
## License
MIT