Claude Code memory plugin built on OpenViking Session memory.
Stop hook).SessionEnd, plugin calls session.commit() to trigger OpenViking memory extraction.memory-recall skill.ov.conf server.host + server.port, health check /health)./ov.conf in project root first~/.openviking/ov.conf if project config missing./.openviking/memory/examples/claude-memory-plugin/
├── .claude-plugin/
│ └── plugin.json
├── hooks/
│ ├── hooks.json
│ ├── common.sh
│ ├── session-start.sh
│ ├── user-prompt-submit.sh
│ ├── stop.sh
│ └── session-end.sh
├── scripts/
│ ├── ov_memory.py
│ └── run_e2e_claude_session.sh
└── skills/
└── memory-recall/
└── SKILL.md
This plugin requires an OpenViking configuration file. Choose one:
Option 1: Project-local config (recommended)
# Create ov.conf in your project root
cp $HOME/path-to-openviking/ov.conf ./ov.conf
Option 2: Global config (used for all projects)
# Set up global config (checked if project ov.conf missing)
mkdir -p ~/.openviking
cp $HOME/path-to-openviking/ov.conf ~/.openviking/ov.conf
The plugin will look for configuration in this order:
./ov.conf (project root) — takes precedence~/.openviking/ov.conf (global) — fallbackSessionStart
./ov.confUserPromptSubmit
Stop (async)
claude -p --model haiku when available; fallback to local summary)SessionEnd
memory-recall runs bridge command:
python3 .../ov_memory.py recall --query "<query>" --top-k 5
It searches:
viking://user/memories/viking://agent/memories/Then returns concise, source-linked memory summaries.
Run a real Claude headless session end-to-end. The script auto-detects paths relative to its location:
bash ./scripts/run_e2e_claude_session.sh
Or provide custom source config and prompt (useful if your OpenViking setup is elsewhere):
bash ./scripts/run_e2e_claude_session.sh \
$HOME/path-to-openviking/ov.conf \
"Custom prompt here"
Example with absolute paths:
bash /path/to/ov-claude/scripts/run_e2e_claude_session.sh \
$HOME/projects/OpenViking/ov.conf \
"Test prompt"
What the script does:
/tmp (one-time dependency install)../ov.conf from source config and injects HTTP server fields.claude -p session with this plugin, then triggers deterministic Stop + SessionEnd validation.session_state.json, ingested_turns >= 1, and session archive file creation../ov.conf when done../ov.conf nor ~/.openviking/ov.conf exists, hooks degrade safely and report status in systemMessage../.openviking/memory/session_state.jsonOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub jimfm/ov-claude --plugin openviking-memoryLong-term semantic memory for Claude Code, powered by OpenViking. Auto-recall relevant memories at session start and capture important information during conversations.
Memory compression system for Claude Code - persist context across sessions
Claude Mind - Give Claude photographic memory in ONE portable file. Share, version, and transfer your Claude's brain.
Continuous memory for Claude Code. Extracts, summarizes, and compresses conversations into tiered daily logs. Claude remembers what you did yesterday.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.