Openpaw c-memory
Persistent memory across Claude Code sessions — remember facts, preferences, and context
install
source · Clone the upstream repo
git clone https://github.com/daxaur/openpaw
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/daxaur/openpaw "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/c-memory" ~/.claude/skills/daxaur-openpaw-c-memory && rm -rf "$T"
manifest:
skills/c-memory/SKILL.mdsource content
Memory — Persistent Context
Store and recall facts, preferences, and context across Claude Code sessions.
How It Works
Memory lives in
~/.claude/memory/ as plain markdown files. Read them at session start, write to them when you learn something important.
Directory Structure
~/.claude/memory/ ├── MEMORY.md # Key facts — always read this first ├── people.md # People the user mentions (names, roles, preferences) ├── preferences.md # User preferences (tools, workflows, habits) ├── projects.md # Active projects and their context └── journal.md # Session log — append-only, dated entries
Session Start
At the beginning of every session, read
~/.claude/memory/MEMORY.md to load context. This file should be concise — under 100 lines.
When to Save
Save to memory when the user:
- Shares their name, role, or preferences
- Mentions people they work with
- Describes a project or recurring task
- Says "remember this" or "don't forget"
- Corrects you about something
Writing Rules
- MEMORY.md: Key facts only. Keep under 100 lines. Update, don't append.
- people.md: Name, role, relationship, preferences. One section per person.
- preferences.md: Tools, workflows, communication preferences.
- projects.md: Project name, status, key files, context.
- journal.md: Append a dated entry at the end of each session summarizing what was done.
Commands
# Read memory cat ~/.claude/memory/MEMORY.md # List memory files ls ~/.claude/memory/ # Append to journal echo "## $(date +%Y-%m-%d)" >> ~/.claude/memory/journal.md
Example MEMORY.md
# Memory ## User - Name: Alex - Role: Frontend developer - Prefers TypeScript, uses Neovim - Timezone: PST ## Active Projects - ctrl.build — DeFi workflow automation (Next.js + Solidity) - openpaw — CLI tool for Claude Code setup ## Preferences - Concise responses, no emoji unless asked - Always use bun instead of npm - Dark mode everything
Guidelines
- Never store passwords, API keys, or secrets in memory files
- Always ask before overwriting existing memory entries
- If memory files don't exist, create them on first write
- Keep MEMORY.md focused — move details to topic-specific files
Obsidian Sync (Auto)
If
c-obsidian is also installed (check ls ~/.claude/skills/c-obsidian/), automatically sync memory to Obsidian:
On Memory Write
When saving to any memory file, also mirror to Obsidian in an
AI/ folder:
obsidian-cli create "AI/Memory" --content "$(cat ~/.claude/memory/MEMORY.md)" obsidian-cli create "AI/People" --content "$(cat ~/.claude/memory/people.md)" obsidian-cli create "AI/Preferences" --content "$(cat ~/.claude/memory/preferences.md)" obsidian-cli create "AI/Projects" --content "$(cat ~/.claude/memory/projects.md)"
Journal → Daily Note
Append session logs to both
journal.md and Obsidian's daily note:
obsidian-cli append "$(date +%Y-%m-%d)" "### Claude Session $(date +%H:%M)\n- [summary]" echo "## $(date +%Y-%m-%d %H:%M)\n- [summary]" >> ~/.claude/memory/journal.md
On Session Start
After reading
~/.claude/memory/MEMORY.md, check Obsidian for newer content:
obsidian-cli search --folder "AI" "Memory"
If the Obsidian version has additional facts, merge them into
~/.claude/memory/MEMORY.md.
Conflict Resolution
is the authoritative quick-access cache~/.claude/memory/- Obsidian is the long-term archive and rich knowledge base
- When in doubt, prefer the most recently modified version