total-recall

作者 davegoldblatt已验证

Persistent memory plugin for Claude Code. Tiered memory system with write gates, correction propagation, and slash commands.

201
Stars
14
Forks
Shell
语言
2026/8/23
添加时间

⚠️ 第三方软件声明

本 Skill 为第三方开源软件,独立托管于 GitHub。SkillTip 仅为信息目录,不控制或维护底层仓库。所显示的安全检查为自动化且范围有限,安装前请自行审查源码。

阅读服务条款

安装

添加到你的 Claude Code skills 目录:

# Add to your Claude Code skills
git clone https://github.com/davegoldblatt/total-recall

快速入门

使用 total-recall 等 Skills 的指南。

安全报告

已验证

上次扫描:—

{
  "status": "PASSED",
  "issues": []
}

README.md

Total Recall

A memory system for Claude Code that remembers what matters and forgets what doesn't.

The Problem

Claude Code forgets everything between sessions. Every time you start a new conversation, it's like talking to someone with amnesia. You end up repeating yourself:

  • "We already tried that approach, it didn't work."
  • "Don't touch the auth file."
  • "I prefer tabs over spaces."
  • "The client's name is Sarah, not Sara."

This gets old fast.

What Total Recall Does

It gives Claude Code a notepad that carries over between sessions, but a picky notepad. Not everything goes in. Before anything gets saved permanently, it has to pass a simple test: will this matter tomorrow?

A preference you'll have for months? Saved. A decision you made and why? Saved. The fact that you ran a test five minutes ago? Not saved. The system keeps itself clean so Claude isn't wading through junk to find what's relevant.

How It Works

Think of it like a kitchen with four storage areas:

Counter (CLAUDE.local.md): The stuff you reach for every day. Loads automatically, every session. Kept small on purpose, around a page of text.

Pantry (memory/registers/): Organized by category. Your preferences, key decisions, project details, people you work with. Claude checks here when it needs something specific.

Daily notebook (memory/daily/): Timestamped scratch notes from each day. Everything gets written here first. You decide later what's worth keeping permanently.

Storage closet (memory/archive/): Old stuff that's done or outdated. Still searchable, but never loaded automatically.

The key idea: notes hit the daily notebook first, then you promote the keepers. Claude doesn't get to decide on its own what's important enough to remember permanently. You do.

Quick Start

Install as a plugin (recommended)

/plugin marketplace add davegoldblatt/recall-marketplace
/plugin install recall@recall-marketplace

Or install standalone

git clone https://github.com/davegoldblatt/total-recall.git
cd total-recall
./install.sh /path/to/your/project

After installing, restart Claude Code or run /hooks to activate.

Using It

Here's your day-to-day:

Claude notices something worth remembering. It writes to your daily notebook and tells you. You don't have to do anything.

You want Claude to remember something. Just say "remember this" or use the write command:

/recall-write Dave prefers concise error messages, no stack traces in prod

End of day (or whenever). Review what piled up and promote the good stuff:

/recall-promote

Find something from last week. Search across everything:

/recall-search authentication decision

You correct Claude. The correction updates everywhere at once: daily notebook, registers, and the counter. The same mistake won't happen again.

All Commands

CommandWhat it does
/recall-initSet up the memory folders for the first time
/recall-write <note>Save a note (checks if it's worth keeping, suggests where)
/recall-log <note>Quick note to the daily notebook, no questions asked
/recall-search <query>Search everything
/recall-promoteReview daily notes, move the keepers to registers
/recall-statusHealth check. Is everything working?
/recall-maintainClean up stale or duplicate entries
/recall-forget <query>Mark something as outdated
/recall-contextShow what memory Claude has loaded right now

If installed as a plugin, commands are namespaced: /recall:recall-write instead of /recall-write.

The Write Gate

This is the core idea. Before anything gets promoted to permanent memory, it has to pass at least one of these checks:

  1. Will it change how Claude behaves next time? (a preference, a boundary, a pattern)
  2. Is it a commitment someone's counting on? (a deadline, a deliverable, a follow-up)
  3. Is it a decision worth remembering the reasoning for? (why you picked X over Y)
  4. Is it a stable fact that'll come up again? (not something that'll be different tomorrow)
  5. Did you explicitly say "remember this"?

If none of those are true, it stays in the daily notebook and eventually ages out. This keeps memory lean. No junk drawer.

When Corrections Happen

If you tell Claude it got something wrong, it doesn't just say "sorry" and move on. It updates the daily notebook, the relevant register, and the counter, all in one shot. The old information gets marked as superseded (not deleted) so there's a trail of what changed and when.

What Loads Automatically

Only two things, every session:

WhatWhereHow
The rules (write gate, correction protocol)rules/total-recall.mdClaude Code loads all rules files automatically
Counter / working memoryCLAUDE.local.mdClaude Code loads this automatically

Everything else loads on demand: when you search, when it's relevant, or at session start via hooks.

Hooks

Two things happen automatically in the background:

When a session starts: Claude gets a summary of open items and recent daily notes. This is the "here's where we left off" briefing.

Before memory gets compacted: A timestamp gets written to the daily notebook so there's a record. This one is silent. Claude doesn't see it, it's just bookkeeping.

Both hooks fail safely. If something goes wrong, they don't block Claude Code from working.

Hooks use $CLAUDE_PROJECT_DIR (standalone) or ${CLAUDE_PLUGIN_ROOT} (plugin) to resolve paths. No transcript parsing. The PreCompact hook only writes a timestamp marker to the daily log. It does not read or parse conversation transcripts.

Architecture

For those who want the technical details.

Conversation (ephemeral, compacted/discarded)
    |
    v  WRITE GATE: "Does this change future behavior?"
    |
Daily Log (memory/daily/YYYY-MM-DD.md)
    All writes land here first. Raw, timestamped.
    |
    v  PROMOTION: user-controlled via /recall-promote
    |
Registers (memory/registers/*.md)
    Structured claims with metadata (confidence, evidence, last_verified)
    |
    v  DISTILLATION: only what's essential for every session
    |
Working Memory (CLAUDE.local.md)
    ~1500 words. Auto-loaded. The persistent "personality."
    |
    v  EXPIRY
    |
Archive (memory/archive/)
    Searchable history. Never auto-loaded.

Key Mechanisms

Write Gate: Filters out noise. Only behavior-changing facts, commitments, decisions, and explicit "remember this" requests pass through.

Daily Log First: All writes land in the daily log. Promotion to registers is a separate step, controlled by the user. This prevents the model from prematurely solidifying inferences.

Contradiction Protocol: Never silently overwrites. Old claims are marked [superseded] with date and reason. The pattern of change is preserved.

Correction Gate: Human corrections get highest priority. One correction triggers writes to daily log + register + working memory.

File Structure

Plugin format (installed via /plugin install):

total-recall/                     # Plugin root
├── .claude-plugin/
│   └── plugin.json               # Plugin manifest
├── skills/                       # Slash commands (namespaced)
│   ├── recall-write/SKILL.md
│   ├── recall-search/SKILL.md
│   └── ...
├── hooks/
│   ├── hooks.json                # Hook configuration
│   ├── session-start.sh
│   └── pre-compact.sh
├── rules/
│   └── total-recall.md           # Protocol (auto-loaded)
└── templates/                    # Scaffolding templates
    ├── SCHEMA.md
    ├── CLAUDE.local.md
    └── registers/

Standalone format (installed via install.sh):

your-project/
├── .claude/
│   ├── commands/recall-*.md      # Slash commands
│   ├── rules/total-recall.md     # Protocol (auto-loaded)
│   ├── hooks/*.sh                # Hook scripts
│   └── settings.local.json       # Hook configuration
├── memory/
│   ├── SCHEMA.md
│   ├── daily/YYYY-MM-DD.md
│   ├── registers/*.md
│   └── archive/
├── CLAUDE.md
└── CLAUDE.local.md               # Working memory (gitignored)

Compared to Other Memory Tools

Total RecallAuto-ingest tools
What gets savedOnly what passes the write gateEverything
Default destinationDaily log (promote later)Permanent storage
Context cost~1500 words working memoryGrows unbounded
CorrectionsPropagate to all tiers immediatelyVaries
User controlPromotion is explicitAutomatic
Architecture4-tier with metadataFlat or 2-tier

Privacy

  • Everything is local. No network calls, no telemetry, no external services.
  • All memory is plain markdown files you can read and edit yourself.
  • CLAUDE.local.md is gitignored by default (it's personal).
  • memory/ is gitignored by default (it can contain personal notes).
  • Hooks never read your conversation transcripts.
  • To see exactly what's happening: check hooks/*.sh and memory/. It's all plain text.
  • To uninstall: delete memory/, CLAUDE.local.md, and the .claude/ entries (or /plugin uninstall recall).

Works Alongside Superpowers

If you use Superpowers, there are no conflicts. Superpowers handles how Claude works (methodology, TDD, plans). Total Recall handles what Claude remembers. Different jobs, same project.

License

MIT

常见问题

What is total-recall?

total-recall is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by davegoldblatt. Persistent memory plugin for Claude Code. Tiered memory system with write gates, correction propagation, and slash commands. It has 201 GitHub stars.

Is total-recall safe to use?

Yes. total-recall passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install total-recall?

Clone the repository with "git clone https://github.com/davegoldblatt/total-recall" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is total-recall written in?

total-recall is primarily written in Shell. It is open-source under davegoldblatt on GitHub, so you can review or fork the full source.

Are there alternatives to total-recall?

Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh total-recall against similar tools.

评论 (0)

暂无评论,成为第一个分享想法的人!

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情

claude-code

by anthropics

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

120,03119,897Shell
AI 智能体
查看详情

开发者还喜欢

基于喜欢此 Skill 的开发者投票和收藏

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情