Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Complete zero-dependency memory system for AI agents — file-based architecture, daily notes, long-term curation, context management, heartbeat integration, and memory hygiene. No APIs, no databases, no external tools. Works with any agent framework.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 369% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 440% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 393% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 268% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 125% | 0% |
Complete memory system for AI agents using only files. No APIs. No databases. No external dependencies. Just smart file structures and disciplined practices that give your agent perfect recall.
workspace/
├── MEMORY.md ← Long-term curated memory (the brain)
├── ACTIVE-CONTEXT.md ← Hot working memory (what matters NOW)
├── AGENTS.md ← Operating manual (how you work)
├── memory/
│ ├── 2026-01-15.md ← Daily notes (raw event log)
│ ├── 2026-01-16.md
│ ├── heartbeat-state.json ← Heartbeat tracking state
│ ├── topics/
│ │ ├── project-alpha.md ← Topic-specific deep context
│ │ ├── client-acme.md
│ │ └── tech-stack.md
│ └── archive/
│ ├── 2025-Q4.md ← Quarterly archive summaries
│ └── 2025-Q3.md| Layer | File | Purpose | Read Frequency | Write Frequency | |-------|------|---------|----------------|-----------------| | 1. Hot | ACTIVE-CONTEXT.md | Current priorities, blockers, in-flight work | Every session | Multiple times/day | | 2. Warm | MEMORY.md | Curated long-term knowledge, decisions, people | Every main session | Weekly curation | | 3. Daily | memory/YYYY-MM-DD.md | Raw event log, conversations, actions taken | Today + yesterday | Throughout the day | | 4. Topic | memory/topics/.md | Deep context on specific subjects | When topic comes up | As knowledge grows | | 5. Cold | memory/archive/.md | Historical summaries, rarely accessed | On explicit search | Quarterly rollup |
Memory is limited. Files are permanent.
Your working scratchpad. What's happening RIGHT NOW.
markdown# ACTIVE-CONTEXT.md — What's Hot Last updated: 2026-01-15 14:30 GMT ## 🔥 Current Priority [ONE sentence: what is the most important thing right now?] ## In Progress - [ ] Task A — status, next step - [ ] Task B — status, blocker ## Waiting On - Waiting for [person] to [action] — asked [date] - Waiting for [system] to [complete] — ETA [time] ## Key Decisions Made Today - Decided to [X] because [Y] — reversible: yes/no ## Context for Next Session [What does future-you need to know to pick up where you left off?]
Your curated brain. Distilled knowledge, not raw logs.
markdown# MEMORY.md — Long-Term Memory ## About [Human] - Name, preferences, timezone, communication style - What motivates them, what frustrates them - Key relationships, roles, goals ## About Me [Agent] - Name, personality, capabilities - Operating preferences learned over time ## Active Projects ### Project Name - Status, key decisions, blockers - Links to relevant topic files ## Key People - [Name] — role, relationship, communication notes ## Lessons Learned - [Date] — [What happened] → [What I learned] ## Preferences & Patterns - [Human prefers X over Y] - [This approach works better than that one] ## Important Dates - [Event] — [Date] — [Context]
| ✅ Goes in MEMORY.md | ❌ Stays in daily notes | |----------------------|------------------------| | "Kalin prefers being told, not asked" | "Today Kalin said he prefers being told" | | "Apollo.io free plan doesn't support API" | "Tried Apollo.io API, got 403 error" | | "Client AcmeCo — $50K deal, Q2 close" | "Sent AcmeCo the proposal at 3pm" | | "Always verify prospect names with live search" | "Found 6/18 prospect names were wrong" |
Raw event log. Everything that happened today.
markdown# 2026-01-15 — Daily Notes ## Morning - [08:15] Started session, reviewed ACTIVE-CONTEXT - [08:30] Received task from [human]: [summary] - [09:00] Completed [task] — result: [outcome] ## Afternoon - [14:00] [Event/conversation summary] - [15:30] Decision: [what was decided and why] ## Key Takeaways - [Anything worth remembering beyond today] ## Tomorrow - [ ] Follow up on [X] - [ ] Check [Y]
memory/YYYY-MM-DD.mdmemory/ directory if it doesn't existDeep context on specific subjects that span many days.
markdown# [Topic Name] Created: YYYY-MM-DD Last updated: YYYY-MM-DD ## Summary [2-3 sentences: what is this about?] ## Key Facts - [Fact 1] - [Fact 2] ## Decision Log | Date | Decision | Reasoning | Outcome | |------|----------|-----------|---------| | | | | | ## Open Questions - [Question 1] ## Related - memory/topics/[related-topic].md - [External link]
project-alpha.md not topic-1.mdHistorical summaries for completed projects and past quarters.
Every quarter (or when daily notes exceed 30 files):
memory/archive/YYYY-QN.md (e.g., 2025-Q4.md)markdown# Q4 2025 Archive ## Summary [3-5 sentences: what defined this quarter?] ## Major Events - [Event 1] — [outcome] - [Event 2] — [outcome] ## Projects ### [Project Name] - Started: [date], Ended: [date] - Outcome: [result] - Lesson: [what we learned] ## Metrics - [Key metric 1]: [value] - [Key metric 2]: [value] ## Lessons Carried Forward - [Lesson added to MEMORY.md: yes/no]
What to read at the start of every session, in order:
1. SOUL.md — Who am I? (personality, values)
2. USER.md — Who am I helping? (human context)
3. MEMORY.md — Long-term memory (full brain)
4. ACTIVE-CONTEXT.md — Hot working memory (current state)
5. memory/today.md — Today's daily notes (if exists)
6. memory/yesterday.md — Yesterday's notes (recent context)1. SOUL.md — Who am I?
2. USER.md — Who am I helping?
3. ACTIVE-CONTEXT.md — Current priorities only
4. memory/today.md — Today's notes
⚠️ DO NOT load MEMORY.md — contains private context1. Task-specific context only
2. Relevant topic file if applicable
3. ACTIVE-CONTEXT.md for current state
⚠️ Minimal context = focused output + lower token cost| Event | Action | Target File | |-------|--------|-------------| | Session starts | Log start time | Daily notes | | Task completed | Log result + outcome | Daily notes | | Decision made | Log decision + reasoning | Daily notes + topic file | | Lesson learned | Log lesson | Daily notes → MEMORY.md | | Person mentioned with new info | Update person section | MEMORY.md or topic file | | Human says "remember this" | Write immediately | MEMORY.md | | Session ends | Update ACTIVE-CONTEXT | ACTIVE-CONTEXT.md | | Weekly review | Curate MEMORY.md | MEMORY.md | | Quarterly | Archive old daily notes | Archive |
For critical information, write BEFORE acting:
1. Human gives important instruction
2. IMMEDIATELY write to daily notes or MEMORY.md
3. THEN execute the instruction
4. Update with results after
Why: If the session crashes mid-execution, the instruction is preserved.When information conflicts between layers:
When you need to find something:
1. ACTIVE-CONTEXT.md — Is it current? (instant)
2. MEMORY.md — Is it a known fact? (quick scan)
3. memory/today.md — Did it happen today? (quick)
4. memory/yesterday.md — Did it happen recently? (quick)
5. memory/topics/*.md — Is it a deep topic? (targeted)
6. memory_search tool — Semantic search across all files
7. memory/archive/*.md — Is it historical? (slow)memory_search tool for fuzzy/semantic queriesmemory_get with line numbers for precise retrieval after searchUse heartbeats (periodic agent wake-ups) for memory maintenance:
json{ "last_memory_review": "2026-01-15", "last_archive": "2025-12-31", "last_active_context_prune": "2026-01-14", "daily_notes_count": 12, "memory_md_lines": 287, "next_scheduled": { "weekly_review": "2026-01-19", "monthly_audit": "2026-02-01", "quarterly_archive": "2026-03-31" } }
Heartbeat 1: Check daily notes count, prune ACTIVE-CONTEXT
Heartbeat 2: Scan recent daily notes, update MEMORY.md
Heartbeat 3: Check topic files for staleness
Heartbeat 4: Token guard — how much are memory reads costing?| File | Max Size | If Over Limit | |------|----------|---------------| | ACTIVE-CONTEXT.md | 50 lines / 2KB | Move items to daily notes | | MEMORY.md | 500 lines / 25KB | Split into topic files | | Daily notes | 200 lines / 10KB | Summarize, stop transcribing | | Topic files | 300 lines / 15KB | Split or archive |
Don't load everything every session. Use progressive disclosure:
Level 1: Always load (every session)
→ ACTIVE-CONTEXT.md (tiny, essential)
→ SOUL.md, USER.md (identity)
Level 2: Load in main sessions
→ MEMORY.md (the brain)
→ Today's daily notes
Level 3: Load on demand
→ Topic files (when topic comes up)
→ Yesterday's notes (if needed)
→ Archive (only on explicit search)When context gets too large mid-session:
HANDOFF.md with: what was done, in progress, next steps, key decisions, gotchasmarkdown# ✅ Safe - API keys: stored in 1Password vault "MyVault" - Database password: see secrets manager, item "prod-db" # ❌ Dangerous - API key: sk-abc123def456... - Password: MyS3cretP@ss!
| Pattern | Why It Works | |---------|-------------| | Write immediately when told "remember" | Captures before you forget | | One fact per line in MEMORY.md | Easy to find, update, delete | | Date-prefix important entries | Enables chronological search | | Link between files | Creates a knowledge web | | Prune regularly | Keeps context fresh and cheap |
| Anti-Pattern | Why It Fails | Fix | |-------------|-------------|-----| | Giant MEMORY.md (1000+ lines) | Expensive to load, hard to find things | Split into topic files | | Never pruning ACTIVE-CONTEXT | Stale items cause confusion | Prune daily, archive weekly | | Transcribing conversations verbatim | Wastes tokens, buries signal | Summarize: essence, not every word | | Storing secrets in memory files | Security risk | Use secrets manager, reference by name | | Reading all files every session | Token burn, slow startup | Progressive loading strategy | | No daily notes | History is lost | Discipline: one file per day | | Multiple sources of truth | Conflicts, confusion | Single source per fact type |
Day 1: Create MEMORY.md with basic info about human + agent
Day 2: Start daily notes (memory/YYYY-MM-DD.md)
Day 3: Create ACTIVE-CONTEXT.md
Week 2: First weekly review — extract lessons to MEMORY.md
Month 2: Create first topic files for recurring subjects
Quarter 2: First archive cycle1. Create memory/ directory
2. Start daily notes — stop putting raw events in MEMORY.md
3. Create ACTIVE-CONTEXT.md — move "current" stuff out of MEMORY.md
4. Review MEMORY.md — what's curated vs what's raw? Move raw to daily notes.
5. Identify topics that deserve their own files — split them out1. Export key data to markdown files
2. Structure into the 5-layer architecture
3. Set up heartbeat maintenance schedule
4. Gradually reduce dependency on external tool
5. Benefits: zero cost, zero dependencies, works offline, no vendor lock-in/memory-status — Show memory system health: file sizes, line counts, staleness, next maintenance/memory-review — Run weekly review: scan daily notes, extract to MEMORY.md, prune active context/memory-search [query] — Search across all memory layers for a topic/memory-archive — Run quarterly archive: summarize old daily notes, create archive file/remember [fact] — Immediately write a fact to MEMORY.md/active-context — Show current ACTIVE-CONTEXT.md contents/daily-summary — Generate summary of today's daily notes/topic-create [name] — Create a new topic file with template/memory-prune — Audit all memory files for staleness and bloat/handoff — Write HANDOFF.md for session transition/memory-migrate — Guided migration from current system to this architecture/memory-debug — Diagnose memory issues: missing files, conflicts, outdated infoOther measured skills in the registry, with their headline benchmark lift.