docs/public/usage/folder-context.mdx
Claude-mem automatically generates CLAUDE.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.
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:
CLAUDE.md in that folder (inside <claude-mem-context> tags)Each folder's CLAUDE.md contains a "Recent Activity" section showing:
<claude-mem-context>
# Recent Activity
### Jan 4, 2026
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #1234 | 4:30 PM | 🔵 | Implemented user authentication | ~250 |
| #1235 | " | 🔴 | Fixed login redirect bug | ~180 |
</claude-mem-context>
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:
# Authentication Module
This folder contains all authentication-related code.
Follow the established patterns for new auth providers.
<claude-mem-context>
... auto-generated content ...
</claude-mem-context>
## Manual Notes
- OAuth providers go in /providers/
- Session handling uses Redis
The project root (folders containing a .git directory) is excluded from auto-generation. This is intentional:
CLAUDE.md files typically contain project-wide instructions you've written manuallyTo enable folder CLAUDE.md generation, edit your settings file:
1. Open ~/.claude-mem/settings.json
2. Add or update this setting:
{
"CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED": "true"
}
3. Save the file - changes take effect immediately (no restart needed)
| Value | Behavior |
|---|---|
"false" (default) | Folder CLAUDE.md generation disabled |
"true" | Auto-generate folder CLAUDE.md files |
The regenerate script includes a --clean mode for removing auto-generated content:
# Preview what would be cleaned (dry run)
bun scripts/regenerate-claude-md.ts --clean --dry-run
# Actually clean files
bun scripts/regenerate-claude-md.ts --clean
What cleanup does:
CLAUDE.md files recursively<claude-mem-context>...</claude-mem-context> sectionsThis is useful for:
This is your choice based on your workflow. Here are the trade-offs:
<Tabs> <Tab title="Commit 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**Cons:**
- 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
**Cons:**
- Team doesn't share folder context
- Context is lost when switching machines
- New team members don't benefit from existing context
To exclude folder CLAUDE.md files from git:
# Ignore auto-generated folder context files
**/CLAUDE.md
# But keep the root CLAUDE.md if you want
!CLAUDE.md
Or to ignore all CLAUDE.md files everywhere:
**/CLAUDE.md
For Solo Developers:
For Teams:
--clean before PRs if you prefer clean diffsBefore Merging PRs:
# Clean up generated files before merge
bun scripts/regenerate-claude-md.ts --clean
git add -A
git commit -m "chore: clean up generated CLAUDE.md files"
To manually regenerate all folder CLAUDE.md files from the database:
# Preview what would be regenerated
bun scripts/regenerate-claude-md.ts --dry-run
# Regenerate all folders
bun scripts/regenerate-claude-md.ts
# Regenerate for a specific project only
bun scripts/regenerate-claude-md.ts --project=my-project
This is useful after:
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:
This means observations about shared code are visible regardless of which worktree you're in, giving you a complete picture of recent activity across all related directories.
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) |
| Emoji | Type |
|---|---|
| 🔴 | Bug fix |
| 🟣 | Feature |
| 🔄 | Refactor |
| ✅ | Change |
| 🔵 | Discovery |
| ⚖️ | Decision |
| 🎯 | Session |
| 💬 | Prompt |
Files are written atomically using a temp file + rename pattern. This prevents partial writes if the process is interrupted.