ANTHRACODE

concepts

A file is the smallest unit of memory.

Anthracode's memory is a directory of markdown files. The agent reads them at session start, decides which are relevant, and writes new ones as it learns. You can hand-edit any of them.

Why files, not vectors

Vector stores are good at fuzzy recall but bad at one thing humans need: knowing what the agent thinks it knows. A markdown directory is legible, diffable, and version-controllable. If a memory is wrong, you delete the file.

Memory should remain useful when read by a human.

Layout

~/filesystem
.anthracode/memory/ user/ preferences and identity (one file per topic) project/ per-project facts and conventions shared/ team-shared, safe to commit scratch/ volatile working memory, auto-trimmed

What an entry looks like

~/.anthracode/memory/user/style.md
--- type: user tags: [style, preferences] created: 2026-04-12 --- Prefers terse responses. Skips trailing summaries. Pushes back when implementation drifts beyond the requested change.

Lifecycle

  1. Session start. The agent scans memory dirs and selects entries it judges relevant to the current task.
  2. During the session. New entries are written when something is learned that should outlive this run.
  3. On exit. Volatile scratch/ entries are trimmed; everything else stays.

Editing memory by hand

Memory is just markdown. $EDITOR .anthracode/memory/user/style.md works. The agent re-reads on the next turn — there's no cache to bust.

What NOT to put in memory

  • Code, structure, conventions — derivable by reading the project.
  • Git history — git log is authoritative.
  • Secrets — memory is plain files; use OS keychains or env vars.
  • One-off task state — that's what tasks are for.

see something off? edit on github

Memory · Anthracode