Skip to Content

What is memory?

Tandemu turns Claude Code into a persistent AI teammate. Without memory, every session starts from scratch — Claude doesn’t know your name, your coding style, or what you worked on yesterday. Memory fixes that.

When you work with Tandemu, Claude silently observes and stores context: who you are, how you code, what you’ve built, and how you like to collaborate. The next time you open a session, it picks up where you left off.

Memory is powered by an MCP (Model Context Protocol) server that runs locally. Your memories are scoped to your user — no one else on the team can see them.

What gets stored

Tandemu stores four types of memory:

Personal context

Things Claude learns about you as a person — stored the moment it hears them, never asked directly.

  • Your name
  • Role and team
  • Timezone
  • Communication style (terse vs detailed, humor vs formal)
  • How you react to suggestions

Coding DNA

Patterns Claude observes across your sessions — stored after seeing them two or more times.

  • Naming conventions (camelCase, snake_case, how you name files)
  • Error handling style (try/catch, early returns, Result types)
  • Framework and library preferences
  • Testing approach (TDD, tests after, which framework)
  • Import style, comment density, type annotation habits
  • When you override a suggestion — what you prefer instead

Project context

Decisions and context that help Claude understand the work, not just the code.

  • Architecture decisions and the reasoning behind them
  • Known gotchas in specific files or modules
  • Dependencies and their quirks
  • Patterns that worked vs ones that caused problems

Task history

What you shipped, stored automatically when you run /finish.

  • Task ID and description
  • What was accomplished
  • Key technical decisions made during the task
  • Time spent and AI ratio

When memory is stored

Memory storage happens continuously — you don’t need to do anything special.

During sessions

  • First mention of your name — stored immediately, highest priority
  • Coding patterns — stored after Claude sees the same pattern 2+ times
  • Corrections — when you reject a suggestion (“no, use early returns here”), Claude stores your preference
  • Explicit requests — when you say “remember this” or tell Claude something about yourself
  • Architecture decisions — when you explain why something is built a certain way

During /finish

When you complete a task, Claude automatically stores:

  • A summary of what was built
  • Coding patterns observed during the task
  • Any corrections or preferences you expressed

During /morning

Claude searches existing memories to greet you personally and reference recent work. No new memories are stored during /morning — it’s read-only.

How memory is used

Session start

When you open Claude Code, Tandemu silently searches for your personal context and recent project work. You won’t see a “loading memories” message — Claude just responds as if it’s always known you.

Morning Sebastian. Last session you were deep in the auth module — want to continue there or switch to something fresh?

During work

Before suggesting code, Claude checks your stored preferences. If you’ve corrected it before — say, you prefer explicit return types or always use zod for validation — it applies those preferences without asking.

The “btw” moment

At natural breakpoints (after completing a task, at the end of /morning), Claude may include a brief, casual aside. This builds rapport and surfaces things it has learned about you.

btw, 14 files changed and zero test failures. clean run.
btw Sebastian, how did that invoice module deployment go?

These happen roughly 1 in 3-4 interactions. Never during active debugging or when you seem rushed.

How memory works under the hood

Memory runs as an MCP server registered in ~/.claude.json:

{ "mcpServers": { "tandemu-memory": { "url": "http://localhost:8765/mcp/sse", "headers": { "Authorization": "Bearer <your-token>" } } } }

The server is scoped to your Tandemu user. Each developer on the team has their own isolated memory space — your preferences and context are private.

The memory server exposes tools for adding, searching, listing, and deleting memories. Claude uses these tools automatically — you never need to call them directly.

Personal vs Organization memory

Tandemu stores two kinds of memory:

Personal memory

Scoped to you. No one else can see it. Includes your name, coding style, preferences, communication patterns, and corrections you’ve given Claude.

Organization memory

Shared across the team. Created automatically during /finish when Claude stores architecture decisions, patterns, gotchas, and dependency quirks discovered during a task.

Org memories go through a draft gating process:

  • Created as draft — visible only to the author while the task is in progress
  • Promoted to published when the task completes via /finish
  • Deleted if the task is cancelled (the decisions weren’t shipped, so don’t persist them)

Admins can manually approve draft memories from the Memory Dashboard.

Memory metadata

Every memory stored during /finish is enriched with metadata:

{ "repo": "sebastiangrebe/tandemu", "files": ["apps/backend/src/auth/jwt.guard.ts"], "category": "architecture", "taskId": "SGS-107" }

Categories help organize memories for browsing and search:

CategoryWhat it captures
architectureSystem design, module boundaries, data flow
patternReusable coding patterns the team follows
gotchaTraps, edge cases, things that broke before
preferencePersonal coding style choices
styleNaming, formatting, import conventions
dependencyLibrary quirks, version constraints
decisionWhy something was built a certain way

Memory Dashboard

Browse and manage all memories from the Tandemu dashboard at /memory. The dashboard has four sections, each loading independently:

Stats

Four KPI cards showing total memories, personal count, organization count, and memory health (percentage of memories actively used by Claude in search results).

Charts

  • Memory Categories — horizontal bar chart showing how knowledge is distributed across categories
  • Memory Coverage — donut chart showing what percentage of memories are actively referenced

Insights

Three insight cards powered by telemetry:

  • Knowledge Gaps — modules with frequent code changes but no documented memories. Claude also surfaces these during /morning
  • Most Referenced — the memories Claude relies on most in search results
  • Cleanup Candidates — memories that have never been accessed (excludes recently created ones). Click to review and delete stale knowledge

Browser

Toggle between Personal and Organization scope. Search with semantic matching, filter by category or repository. Two view modes:

  • List view — memories grouped by repository, collapsible, with category-colored accent borders
  • File tree view — navigate memories by file path like a file explorer

Edit, delete, or approve memories directly from the browser.

Managing your memories

From the dashboard

The Memory Dashboard at /memory gives you full control — browse, search, edit, and delete memories visually. Org admins can approve draft memories.

From Claude Code

Ask Claude directly:

What do you remember about me?
What coding preferences have you stored?

Correct a memory

If Claude has stored something wrong, just tell it:

Actually I switched from Jest to Vitest last month, update that.

Claude will update the stored preference.

Delete memories

Forget my timezone preference.

Or to start fresh:

Delete all memories about my coding style.

What’s never stored

  • Secrets, tokens, or passwords
  • File contents or source code
  • Anything from other team members’ sessions
  • Sensitive personal information beyond what’s needed for collaboration

Self-hosted memory

When running Tandemu self-hosted, the memory server (OpenMemory) runs as part of the Docker Compose stack on port 8765. All memories stay on your infrastructure — nothing leaves your network.

# Check memory server health curl http://localhost:8765/health

See Self-Hosting for full deployment details.

Last updated on