feat: Git hooks for team collaboration (sync observations via repo) #301

Closed
opened 2026-01-25 17:53:23 +00:00 by jack · 0 comments
Owner

Summary

Add git hooks to sync observations between team members without changing the storage architecture.

Concept

Keep database in ~/.claude-mem/ as-is. Add two git hooks:

1. Pre-commit hook

Export new observations from local DB → repo/.claude-mem/observations.jsonl

2. Post-pull / Post-merge hook

Import new records from JSONL → local DB

Why This Approach

Layer Format Location Purpose
Local work Database ~/.claude-mem/ Fast queries, indexes
Team sync JSONL repo/.claude-mem/ Git-friendly, mergeable

Benefits:

  • No architectural changes to current storage
  • Database stays fast for daily operations
  • JSONL is text-based, git merges naturally
  • UUID-based observation IDs prevent conflicts
  • Simple implementation — just export/import tooling

Use Cases

  • Team collaboration: Share learned patterns, decisions, context
  • Onboarding: New team members get project history on first pull
  • Code review: See what observations led to certain decisions

Implementation Sketch

# Pre-commit: export project observations to repo
claude-mem export --project=$(pwd) --output=.claude-mem/observations.jsonl

# Post-pull: import team observations to local DB
claude-mem import --input=.claude-mem/observations.jsonl

Prerequisites

  • We already have Import/Export API (/api/export, /api/import)
  • Need CLI wrapper for hooks
  • Need git hook installation script

Inspired by: https://github.com/thedotmack/claude-mem/issues/805

## Summary Add git hooks to sync observations between team members without changing the storage architecture. ## Concept Keep database in `~/.claude-mem/` as-is. Add two git hooks: ### 1. Pre-commit hook Export new observations from local DB → `repo/.claude-mem/observations.jsonl` ### 2. Post-pull / Post-merge hook Import new records from JSONL → local DB ## Why This Approach | Layer | Format | Location | Purpose | |-------|--------|----------|---------| | Local work | Database | `~/.claude-mem/` | Fast queries, indexes | | Team sync | JSONL | `repo/.claude-mem/` | Git-friendly, mergeable | **Benefits:** - No architectural changes to current storage - Database stays fast for daily operations - JSONL is text-based, git merges naturally - UUID-based observation IDs prevent conflicts - Simple implementation — just export/import tooling ## Use Cases - **Team collaboration**: Share learned patterns, decisions, context - **Onboarding**: New team members get project history on first pull - **Code review**: See what observations led to certain decisions ## Implementation Sketch ```bash # Pre-commit: export project observations to repo claude-mem export --project=$(pwd) --output=.claude-mem/observations.jsonl # Post-pull: import team observations to local DB claude-mem import --input=.claude-mem/observations.jsonl ``` ## Prerequisites - We already have Import/Export API (`/api/export`, `/api/import`) - Need CLI wrapper for hooks - Need git hook installation script --- Inspired by: https://github.com/thedotmack/claude-mem/issues/805
jack closed this issue 2026-01-25 20:11:09 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
customable/claude-mem#301
No description provided.