pi-heartbeat
Configure periodic health checks via HEARTBEAT.md and the /heartbeat command.
Manage persistent memory across sessions. Use when asked to remember, recall, forget, or review what was stored. Covers long-term facts (MEMORY.md), daily session logs, search, and memory housekeeping.
$ npx -y skills add espennilsen/pi --skill pi-memory --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/pi-memoryContext preview
The summary Claude sees to decide when to auto-load this skill.
Manage persistent memory across sessions. Use when asked to remember, recall, forget, or review what was stored. Covers long-term facts (MEMORY.md), daily session logs, search, and memory housekeeping.
name: pi-memory description: Manage persistent memory across sessions. Use when asked to remember, recall, forget, or review what was stored. Covers long-term facts (MEMORY.md), daily session logs, search, and memory housekeeping.
A file-based memory system that persists knowledge across sessions using plain Markdown.
<base-path>/
├── MEMORY.md # Long-term curated memory (facts, preferences, decisions)
└── memory/
├── 2026-02-11.md # Daily log — append-only session notes
├── 2026-02-10.md
└── ...The base path defaults to cwd. Override with settings.json:
{ "pi-memory": { "path": "/path/to/memory/dir" } }Read memory contents.
| target | description | |--------|-------------| | `long_term` | Read full MEMORY.md | | `daily` | Read a specific date's log (default: today). Pass `date: "YYYY-MM-DD"` for other dates. | | `list` | List all available daily log files |
Write to memory.
| target | description | |--------|-------------| | `daily` | Append a timestamped entry to today's log. Used for session notes, progress, decisions. | | `long_term` | Update MEMORY.md. Pass `section` to replace a specific `## Section`, or omit to append. |
**Long-term memory sections** — use `section` parameter to target:
memory_write target=long_term section="Preferences" content="- Prefers dark theme\n- Terminal-first tools"
This replaces the content under `## Preferences`. If the section doesn't exist, it's created.
**Daily log entries** — auto-timestamped:
memory_write target=daily content="Completed the auth refactor. Using JWT with RS256."
Creates `### HH:MM` entry in today's file.
Full-text search across MEMORY.md and all daily logs.
memory_search query="JWT" limit=10
Returns matching lines with ±1 line of context, grouped by file.
Keep MEMORY.md well-organized with clear sections:
# Long-Term Memory ## About [User] - Key facts, role, location, interests ## Preferences - Communication style, tool preferences, conventions ## Active Focus - Current projects and priorities (update as they shift) ## Decisions & Conventions - Coding conventions, workflow rules, architectural decisions ## People & Relationships - Key contacts and collaborators ## Recurring Patterns - Things frequently asked about or worked on
Periodically review and clean up memory:
1. **Deduplicate** — Check for repeated sections in MEMORY.md (use `memory_read target=long_term`) 2. **Archive stale info** — Remove outdated decisions or completed project references 3. **Consolidate daily logs** — Important patterns from daily logs should be promoted to MEMORY.md 4. **Keep sections focused** — Each `## Section` should have a clear purpose
At each agent turn, the extension automatically injects into the system prompt:
This means the agent always has recent context without needing to call `memory_read`.
This repository is my Pi coding agent home directory. I keep it under version control and symlink it to ~/.pi/agent so Pi loads configuration, extensions, skills, and runtime state from here.
Configure periodic health checks via HEARTBEAT.md and the /heartbeat command.
Track and manage projects with git status via dashboard and tool.
Delegate tasks to specialized subagents for parallel or sequential execution.
Audit, generate, update, and lint AGENTS.md files across all projects. Use when asked to check project context files, scaffold…
Draft, edit, and publish blog posts for e9n.dev. Use when creating new posts, editing drafts, or refining existing content.…