Overview
Claude-mem automatically generatesCLAUDE.md files in your project folders to provide Claude with directory-level context. These files contain a summary of recent activity in each folder, helping Claude understand what work has been done and where.
This feature is disabled by default. Enable it via settings if you want automatic folder-level context generation.
How It Works
When you work with Claude Code in a project, claude-mem tracks which files are read and modified. After each observation is saved, it automatically:- Identifies unique folder paths from touched files
- Queries recent observations relevant to each folder
- Generates a formatted timeline of activity
- Writes it to
CLAUDE.mdin that folder (inside<claude-mem-context>tags)
What Gets Generated
Each folder’sCLAUDE.md contains a “Recent Activity” section showing:
- Observation IDs for reference
- Timestamps of when work occurred
- Type indicators (bug fixes, features, discoveries, etc.)
- Brief titles describing the work
- Estimated token counts
User Content Preservation
The auto-generated content is wrapped in<claude-mem-context> tags. Any content you write outside these tags is preserved when the file is regenerated. This means you can:
- Add your own documentation above or below the generated section
- Write folder-specific instructions for Claude
- Include architectural notes or conventions
Project Root Exclusion
The project root (folders containing a.git directory) is excluded from auto-generation. This is intentional:
- Root
CLAUDE.mdfiles typically contain project-wide instructions you’ve written manually - Auto-generating at the root could overwrite important project documentation
- Subfolders are where folder-level context is most useful
Git submodules (which have a
.git file instead of directory) are correctly detected and not excluded, so they receive auto-generated context.Configuration
Enabling the Feature
To enable folder CLAUDE.md generation, edit your settings file: 1. Open~/.claude-mem/settings.json
2. Add or update this setting:
| Value | Behavior |
|---|---|
"false" (default) | Folder CLAUDE.md generation disabled |
"true" | Auto-generate folder CLAUDE.md files |
Cleanup Mode
The regenerate script includes a--clean mode for removing auto-generated content:
- Finds all
CLAUDE.mdfiles recursively - Strips
<claude-mem-context>...</claude-mem-context>sections - Deletes files that become empty after stripping
- Preserves files that have user content outside the tags
- Preparing a branch for PR (removing generated files)
- Resetting folder context to start fresh
- Removing context before sharing code
Git Integration
Should You Commit These Files?
This is your choice based on your workflow. Here are the trade-offs:- Commit Them
- Gitignore Them
Pros:
- Team members see folder-level context and recent activity
- New contributors can understand what happened where
- Code reviewers get additional context about changes
- Historical record of work patterns in the repo
- Adds files to your repository
- Files change frequently during development
- May create noise in diffs and commit history
- Different team members may generate different content
Gitignore Pattern
To exclude folder CLAUDE.md files from git:Recommended Workflows
For Solo Developers:- Keep them local (gitignore) for personal context
- Or commit them if you work across multiple machines
- Discuss with your team which approach works best
- Consider committing them if onboarding is frequent
- Use
--cleanbefore PRs if you prefer clean diffs
Regenerating Context
To manually regenerate all folder CLAUDE.md files from the database:- Importing observations from another machine
- Database recovery
- Wanting to refresh all folder context
Worktree Support
New in v9.0: Claude-mem now supports git worktrees with unified context. When you’re working in a git worktree, context is automatically gathered from both:- The parent repository (where the worktree was created)
- The worktree directory itself
How It Works
- When generating context, claude-mem detects if your project is a worktree
- It identifies the parent repository automatically
- Timeline queries include both locations
- Results are interleaved chronologically
No configuration needed - worktree detection is automatic. If you’re not using worktrees, this feature has no effect.
Technical Details
File Format
Generated content uses a consistent markdown table format:| Column | Description |
|---|---|
| ID | Observation ID (e.g., #1234) or session ID (#S123) |
| Time | 12-hour format with AM/PM, ditto marks (") for repeated times |
| T | Type emoji indicator |
| Title | Brief description of the observation |
| Read | Estimated token count (e.g., ~250) |
Type Indicators
| Emoji | Type |
|---|---|
| 🔴 | Bug fix |
| 🟣 | Feature |
| 🔄 | Refactor |
| ✅ | Change |
| 🔵 | Discovery |
| ⚖️ | Decision |
| 🎯 | Session |
| 💬 | Prompt |
Atomic Writes
Files are written atomically using a temp file + rename pattern. This prevents partial writes if the process is interrupted.Performance
- Updates happen asynchronously (fire-and-forget)
- Failures are logged but don’t block the main workflow
- Only folders with actual file activity are updated
- Deduplication prevents redundant updates for the same folder

