pi-mem
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 42 GitHub stars
Code Basarisiz
- process.env — Environment variable access in index.ts
- process.env — Environment variable access in lib.ts
- fs.rmSync — Destructive file system operation in tests/helpers.ts
Permissions Gecti
- Permissions — No dangerous permissions requested
This tool provides a persistent, plain-Markdown memory system for AI coding agents. It allows agents to read, write, and search long-term facts, daily logs, and notes, primarily serving as a customized context manager for the development workflow.
Security Assessment
Overall Risk: Low. The tool stores data locally in plain Markdown files and does not request any dangerous system permissions. It does not appear to make external network requests or execute arbitrary shell commands, and no hardcoded secrets were found. The code reads environment variables (e.g., `PI_MEMORY_DIR`) to configure file paths, which is standard practice but requires minor awareness of what you configure. The only notable flag is a destructive file system operation (`fs.rmSync`), but the audit confirms this is safely isolated within test helpers and poses no threat to your actual runtime environment.
Quality Assessment
Overall Quality: Good. The repository is under active development, with its most recent push happening just today. It is properly licensed under the permissive MIT license. While the project is relatively new and small, it has accumulated 42 GitHub stars, indicating a baseline level of community validation and trust.
Verdict
Safe to use.
Plain-Markdown persistent memory for AI coding agents. Long-term facts, daily logs, scratchpad, and semantic search — works with pi, Claude Code, and any LLM agent.
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.mdSCRATCHPAD.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
Settings can be configured via environment variables or a .pi-mem.json file in the memory directory. Environment variables take precedence over file values.
.pi-mem.json
Place a .pi-mem.json in your memory directory (default ~/.pi/agent/memory/.pi-mem.json):
{
"searchDirs": ["catchup", "projects"],
"contextFiles": ["SOUL.md", "AGENTS.md"],
"autocommit": true
}
Environment variables
Environment variables override .pi-mem.json values when set.
| 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_SEARCH_DIRS |
(empty) | Comma-separated list of subdirectories (relative to PI_MEMORY_DIR) to include in memory_search. Searched recursively one level deep. (e.g. catchup,projects) |
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 — Self-improving reflection engine for pi. Analyzes recent conversations and iterates on memory, behavioral rules, and identity files. Pairs naturally with pi-mem.
Installation
pi install git:github.com/jo-inc/pi-mem
License
MIT
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi