Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Add persistent memory to Claude Code that survives across sessions. Use when: maintaining continuity across Claude Code sessions, building agents with persistent project memory, avoiding repeated context setup. Covers claude-mem (AI-compressed session logs) and Claude Subconscious (Letta-based background agent).
.claude/skills/terminalskills-claude-mem/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -12% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -47% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -5% | 0% |
Claude Code forgets everything between sessions. Two open-source tools solve this by automatically capturing context and injecting it into future sessions:
Both eliminate the need to re-explain context when returning to a project.
GitHub: thedotmack/claude-mem
bashnpm install -g claude-mem cd your-project claude-mem init claude-mem setup-hooks
This creates .claude-mem/ with config, compressed memories, and an index. Hooks auto-capture after each session and auto-inject before the next.
.claude-mem/ directorybashclaude-mem capture # Capture current session claude-mem inject # Inject memories into context claude-mem search "auth flow" # Semantic search through memories claude-mem list # List all memories claude-mem stats # Show memory stats claude-mem compress # Reduce storage for old memories
json{ "compression": { "model": "claude-sonnet-4-20250514", "strategy": "smart" }, "inject": { "maxMemories": 10, "relevanceThreshold": 0.7, "strategy": "semantic" } }
Strategies: smart (AI picks what's important), full (captures everything), minimal (only decisions and errors).
GitHub: letta-ai/claude-subconscious
bash/plugin marketplace add letta-ai/claude-subconscious /plugin install claude-subconscious@claude-subconscious export LETTA_API_KEY="your-api-key"
Get your API key from app.letta.com. Or self-host:
bashpip install letta letta server --port 8283 export LETTA_BASE_URL="http://localhost:8283"
| Mode | Behavior | Token Cost | |------|----------|------------| | whisper (default) | Short guidance before each prompt | Low | | full | Full memory blocks + message history | Higher | | off | Disabled | None |
| | claude-mem | Claude Subconscious | |---|-----------|-------------------| | Storage | Local files (.claude-mem/) | Letta cloud or self-hosted | | Cost | Uses your Claude API for compression | Requires Letta API key (free tier) | | Latency | Near-zero (local) | ~1-2s per whisper | | Memory style | Compressed session summaries | Continuous learning agent | | Best for | Local-first, privacy-sensitive | Rich cross-session context |
bash# Session 1: Work on auth module $ claude-mem stats Memories: 12 | Storage: 45KB | Last capture: 2 hours ago # Session 2: Return to project — auto-injected context # Claude already knows: "You implemented JWT auth with RS256, refresh tokens in Redis"
After discussing a REST-to-GraphQL migration, you start a new session:
[subconscious] Last session you decided to switch from REST to GraphQL for the
user service. Migration is 60% done — resolvers for User and Project are complete,
Order and Payment still need conversion. You preferred code-first schema with TypeGraphQL.relevanceThreshold higher (0.8+) if too much context is injectedwhisper mode gives 90% of the value at lower token cost.claude-mem/memories/ to .gitignore for private projects| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | fail→pass | 10,736 | 2,442 | -77% | 1 | 1 | 0% | 1,798 | 1,576 | -12% | 0 | 0 | — |
case-02 | fail→pass | 27,530 | 17,194 | -38% | 1 | 1 | 0% | 3,273 | 3,717 | +14% | 0 | 0 | — |
case-03 | fail→fail | 12,655 | 7,850 | -38% | 1 | 1 | 0% | 2,761 | 2,666 | -3% | 0 | 0 | — |
case-01 | fail→pass | 15,286 | 8,449 | -45% | 1 | 1 | 0% | 2,723 | 2,745 | +1% | 0 | 0 | — |
case-05 | pass→pass | 9,286 | 3,356 | -64% | 1 | 1 | 0% | 1,715 | 1,844 | +8% | 0 | 0 | — |
case-06 | fail→pass | 14,961 | 1,616 | -89% | 1 | 1 | 0% | 2,646 | 1,410 | -47% | 0 | 0 | — |
case-07 | fail→pass | 9,931 | 2,102 | -79% | 1 | 1 | 0% | 1,618 | 1,538 | -5% | 0 | 0 | — |
case-08 | pass→pass | 5,272 | 2,713 | -49% | 1 | 1 | 0% | 925 | 1,537 | +66% | 0 | 0 | — |
case-09 | fail→pass | 7,362 | 3,391 | -54% | 1 | 1 | 0% | 1,168 | 1,765 | +51% | 0 | 0 | — |
case-10 | fail→pass | 11,263 | 1,978 | -82% | 1 | 1 | 0% | 1,944 | 1,448 | -26% | 0 | 0 | — |
case-11 | fail→pass | 11,200 | 3,398 | -70% | 1 | 1 | 0% | 1,724 | 1,686 | -2% | 0 | 0 | — |
case-12 | fail→pass | 13,858 | 8,954 | -35% | 1 | 1 | 0% | 2,324 | 2,686 | +16% | 0 | 0 | — |
case-13 | pass→pass | 14,216 | 7,865 | -45% | 1 | 1 | 0% | 2,082 | 2,508 | +20% | 0 | 0 | — |
case-14 | fail→pass | 9,498 | 5,069 | -47% | 1 | 1 | 0% | 1,597 | 1,559 | -2% | 0 | 0 | — |
case-15 | fail→pass | 14,225 | 1,894 | -87% | 1 | 1 | 0% | 2,539 | 1,504 | -41% | 0 | 0 | — |
case-16 | fail→pass | 10,805 | 3,668 | -66% | 1 | 1 | 0% | 2,154 | 1,837 | -15% | 0 | 0 | — |
case-17 | fail→pass | 13,342 | 2,515 | -81% | 1 | 1 | 0% | 1,512 | 1,597 | +6% | 0 | 0 | — |
case-18 | fail→pass | 6,208 | 2,925 | -53% | 1 | 1 | 0% | 1,020 | 1,447 | +42% | 0 | 0 | — |
case-19 | fail→pass | 17,515 | 9,403 | -46% | 1 | 1 | 0% | 2,597 | 2,606 | +0% | 0 | 0 | — |
case-20 | pass→pass | 3,943 | 3,401 | -14% | 1 | 1 | 0% | 766 | 1,679 | +119% | 0 | 0 | — |
case-21 | pass→pass | 3,433 | 3,115 | -9% | 1 | 1 | 0% | 500 | 1,638 | +228% | 0 | 0 | — |
case-22 | pass→pass | 4,032 | 2,896 | -28% | 1 | 1 | 0% | 693 | 1,655 | +139% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +68 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.