Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Jan 2, 2026. It is now read-only.
/ git-notes-memory Public archive

Git-native, semantically-searchable memory storage for Claude Code. Captures decisions, learnings, and context as git notes with vector search.

License

Notifications You must be signed in to change notification settings

zircote/git-notes-memory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

git-notes-memory

Git-native, semantically-searchable memory storage for Claude Code.

Git Notes Memory Architecture

CI PyPI version PyPI Downloads Python 3.11+ Coverage Code style: ruff License: MIT Claude Code Plugin

Overview

git-notes-memory provides a memory capture and recall system that stores memories as git notes with semantic search capabilities via sqlite-vec embeddings. It's designed to work as both a standalone Python library and a Claude Code plugin.

Features

  • Git-native storage: Memories stored as git notes that sync with push/pull
  • Semantic search: Find relevant memories via sentence-transformer embeddings
  • 10 memory namespaces: inception, elicitation, research, decisions, progress, blockers, reviews, learnings, retrospective, patterns
  • Progressive hydration: Load memory content incrementally (SUMMARY -> FULL -> FILES)
  • Concurrent-safe: File locking prevents corruption from parallel captures
  • XDG-compliant: Standard paths on all platforms

Installation

# Using uv (recommended)
uv add git-notes-memory

# Using pip
pip install git-notes-memory

Quick Start

from git_notes_memory import get_capture_service, get_recall_service

# Capture a memory
capture = get_capture_service()
result = capture.capture(
    namespace="decisions",
    summary="Chose PostgreSQL for persistence",
    content="Evaluated SQLite vs PostgreSQL. PostgreSQL wins for concurrency."
)

# Recall memories
recall = get_recall_service()
memories = recall.search("database choice", namespace="decisions", limit=5)

Claude Code Plugin

When used as a Claude Code plugin, the following slash commands are available:

Command Description
/memory:capture <namespace> <summary> Capture a memory
/memory:recall <query> Search memories semantically
/memory:search <query> Advanced search with filters
/memory:sync [full|verify|repair] Synchronize or repair the index
/memory:status [--verbose] Show index statistics

Hooks Integration

The plugin includes hooks that integrate with Claude Code's hook system for automatic memory context:

Hook Description
SessionStart Injects relevant project memories and response guidance at session start
UserPromptSubmit Detects capture markers like [remember] and @memory in prompts
PostToolUse Surfaces related memories after file operations (Read/Write/Edit)
PreCompact Auto-captures high-confidence content before context compaction
Stop Prompts for uncaptured content and syncs the search index

See User Guide for configuration options.

Development

# Clone the repository
git clone https://github.com/zircote/git-notes-memory.git
cd git-notes-memory

# Install with dev dependencies
uv sync

# Run tests
make test

# Run all quality checks
make quality

Configuration

Environment variables (see .env.example for all options):

Variable Description Default
MEMORY_PLUGIN_DATA_DIR Data directory path ~/.local/share/memory-plugin/
MEMORY_PLUGIN_GIT_NAMESPACE Git notes namespace refs/notes/mem
MEMORY_PLUGIN_EMBEDDING_MODEL Embedding model name all-MiniLM-L6-v2
MEMORY_PLUGIN_AUTO_CAPTURE Enable auto-capture hook false

Hook Configuration

Variable Description Default
HOOK_ENABLED Master switch for hooks true
HOOK_SESSION_START_ENABLED Enable SessionStart context injection true
HOOK_USER_PROMPT_ENABLED Enable signal detection in prompts false
HOOK_POST_TOOL_USE_ENABLED Enable file-contextual memory injection true
HOOK_PRE_COMPACT_ENABLED Enable auto-capture before compaction true
HOOK_STOP_ENABLED Enable Stop hook processing true
HOOK_DEBUG Enable debug logging to stderr false

Requirements

  • Python 3.11+
  • Git 2.25+ (for git notes features)
  • ~500MB disk space (for embedding model on first use)

Documentation

License

MIT

About

Git-native, semantically-searchable memory storage for Claude Code. Captures decisions, learnings, and context as git notes with vector search.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages