md-first memory extraction framework for AI agents. Markdown is the single source of truth; SQLite holds state and LanceDB provides the rebuildable vector + BM25 + scalar index. The codebase follows a single-direction DDD layering (entrypoints -> service -> memory -> infra, with component / core / config cross-cutting) enforced by import-linter. Engineering surface: - Coding conventions in .claude/rules/ (path-scoped) and workflows in .claude/skills/ (/commit, /new-branch, /pr). - GitHub Actions CI runs make lint + test + integration; pre-commit mirrors the gates locally (ruff, hygiene hooks, gitlint commit-msg). - Commit messages follow Conventional Commits, enforced by gitlint. - make lint also enforces datetime two-zone discipline and OpenAPI drift.
2.1 KiB
2.1 KiB
description
| description |
|---|
| View your Claude Code projects tracked by EverMem |
EverMem Projects
View all Claude Code projects that have been tracked by EverMem.
Instructions
Show the user their projects stored in the local groups.jsonl file.
- Read the groups file from the plugin's data directory
- Aggregate entries by groupId (count sessions, find first/last seen)
- Display the project table with statistics
- If no groups file exists, explain that projects are tracked automatically
Actions
Check and read the groups data file:
GROUPS_FILE="${CLAUDE_PLUGIN_ROOT}/data/groups.jsonl"
if [ -f "$GROUPS_FILE" ] && [ -s "$GROUPS_FILE" ]; then
cat "$GROUPS_FILE"
else
echo "NO_GROUPS_FILE"
fi
Note: The file uses JSONL format (one JSON object per line). Each line is a session start event.
Entry format: {"keyId":"...","groupId":"...","name":"...","path":"...","timestamp":"..."}
keyId: SHA-256 hash (first 12 chars) of the API key - associates projects with accountsgroupId: Short identifier (9 chars: project name prefix + path hash)
Aggregate by keyId + groupId when displaying:
- Count occurrences = sessionCount
- Earliest timestamp = firstSeen
- Latest timestamp = lastSeen
Output Format
If projects exist:
📁 Claude Code Projects
| Project | Group ID | Sessions | Last Active |
|---------------------|------------|----------|-------------|
| evermem-claude-code | ever8d8d5 | 42 | just now |
| my-react-app | myrea1b2c3 | 12 | 2h ago |
Total: 2 projects
If no projects file:
📁 Claude Code Projects
No projects tracked yet. Projects are automatically recorded when you start Claude Code sessions.
Each project directory creates a unique group ID for organizing memories.
Notes
- Projects are identified by working directory path (hashed to 9-char ID)
- Each project has its own memory namespace in EverMem Cloud
- The groups.jsonl file is appended by the SessionStart hook
- Same project used with different API keys will appear as separate entries
keyIdis a SHA-256 hash (first 12 chars) of the API key - secure and unique