Persistent knowledge management plugin for Claude Code
npx claudepluginhub popoffvg/claude-plugin-memory-keeperPersistent knowledge management — automatic insight extraction, context injection, and memory search/save across sessions.
Persistent knowledge management plugin for Claude Code. Automatically extracts insights from sessions, injects relevant context on startup, and provides search/save commands for cross-session memory.
claude plugin install popoffvg/claude-plugin-memory-keeper
Create ~/.claude/memory-keeper.local.md with your configuration:
---
insights_root: ~/my/insights/path
log_level: DEBUG
---
This file is required. The plugin will not function without it — hooks will skip and skills will prompt you to create it.
mkdir -p ~/my/insights/path
Start a new Claude Code session. The SessionStart hook should load without errors. Run /context find — it should read your insights root.
| Setting | Required | Description |
|---|---|---|
insights_root | Yes | Root directory for all saved knowledge (e.g. ~/ctx/insights) |
log_level | No | Logging verbosity for SessionStart hook (DEBUG, INFO, WARN). Default: DEBUG |
| Command | Description |
|---|---|
/context find <query> | Search saved knowledge by keyword or topic |
/context find | Show full knowledge index |
/context save <note> | Persist a specific insight or fact |
/context check | Analyze current session for insights worth saving |
/context research <topic> | Search memory + web, then persist results |
/context scan [timeframe] | Scan recent session logs for missed insights (fallback for failed Stop hooks) |
/context done [task-name] | Complete active task — summarize insights and distribute to repo folders |
To enable automatic scanning for missed insights during a session, run:
/context scan cron
This sets up a session-scoped hourly cron that runs /context scan automatically. The cron lives only in the current Claude session and auto-expires after 3 days.
insights_root from ~/.claude/memory-keeper.local.md<insights_root>/_summary.md (or INDEX.md fallback) into session contextProject name is derived from the git repo name (git rev-parse --show-toplevel | basename), falling back to the working directory basename.
insights_root from settings — skips if not configured_tasks/pending.mdinsight | task | agent_edit | none<insights_root>/_tasks/<task-slug>/notes.md (tagged with repo name)<insights_root>/<project>/insights.md<insights_root>/_tasks/pending.md + creates _tasks/<task-slug>/ directory<insights_root>/claude-config/behavior.md/context done)_tasks/<task-slug>/notes.md<insights_root>/<repo>/insights.mddone in pending.mdmcp__qmd__search (keyword) on ctx collectionmcp__qmd__deep_search (semantic) if results are sparsez-core collection (Obsidian vault)<insights_root>/
INDEX.md # Global knowledge index
<project>/ # project = git repo name or folder name
_summary.md # Project summary (loaded on session start)
insights.md # Auto-captured insights + task summaries
_tasks/
pending.md # Task list (status: active | done)
<task-slug>/ # Per-task directory
notes.md # Insights collected during task (tagged with repo names)
claude-config/
behavior.md # Agent behavior corrections
MIT