Feature Request: Shared Team Memory for Claude Code
Feature Proposal: Shared Team Memory for Claude Code
The Problem
Claude Code's memory system is individual-only. In real engineering teams, knowledge flows constantly between people — through handoffs, consultations, reviews, and investigations. Today, none of that context transfers at the agent level. Humans must manually reconstruct or relay it, which is slow, lossy, and doesn't scale.
This is the single biggest efficiency bottleneck for teams adopting Claude Code seriously.
Who This Affects
Any engineering organization where:
- Multiple engineers work on the same codebase with Claude Code
- Work gets handed off between people (sprints, blockers, rotations)
- Domain expertise is distributed across team members
- Engineering managers investigate and delegate work to ICs
Real-World Pain Points
1. Sprint task handoffs — context dies at the boundary
An engineer starts a sprint task, builds deep context with Claude, then hits a blocker and pauses. A different engineer picks it up. Today, that second engineer either:
- Rebuilds the entire context from scratch (wasted hours)
- Asks the first engineer to export their memory/context and attach it to the ticket (friction-heavy, rarely done well)
- Gets a verbal summary that loses nuance and technical detail
What should happen: The second engineer's Claude already knows what was tried, what failed, what the blockers were, and what approach was in progress.
2. Domain expert consultations — human-to-human bottleneck
Engineers frequently work in areas where they aren't experts. They consult domain experts on the team. Both engineers use Claude — but the domain expert's Claude context (deep understanding of that subsystem's gotchas, patterns, history) doesn't transfer. The expert explains it to the human, who then re-explains it to their Claude session.
What should happen: The domain expert's Claude-level context about that subsystem should be accessible to the consulting engineer's Claude, with appropriate scoping.
3. EM-to-IC investigation handoffs — context starts over
An EM investigates an issue — digs into logs, traces through code, identifies patterns, narrows down root causes — all with Claude. They file a ticket for an engineer to pick up. The engineer starts from zero because the investigation context lives in the EM's Claude memory.
The reverse also happens: an IC discovers something during implementation that has planning/architecture implications for the EM, but that insight stays trapped in the IC's session.
What should happen: Investigation context should be transferable to the ticket assignee's Claude. Insights should flow back up without manual re-summarization.
4. Cross-team dependency knowledge
Team A needs to modify a service owned by Team B. Team B's engineers have Claude memories full of gotchas, edge cases, and tribal knowledge about that service. Team A's engineers walk in blind.
What should happen: Service-level or domain-level shared memory that crosses team boundaries, so any engineer touching that code gets the accumulated wisdom.
5. Architectural decisions made inside Claude sessions
An engineer makes a significant design decision through conversation with Claude — evaluating tradeoffs, rejecting alternatives, choosing an approach for specific reasons. That reasoning lives only in their session. Three months later, someone asks "why is it built this way?" and the context is gone.
What should happen: Key decisions and their rationale should be promotable to shared team memory, so the "why" persists alongside the "what."
6. Incident response continuity
Engineer A debugs a production issue at 2am, building deep context with Claude about the failure mode, what was ruled out, and what the likely cause is. Their shift ends. Engineer B picks up the incident the next morning and starts the investigation from scratch.
7. Code review context gap
A reviewer's Claude has no context on why the author made certain tradeoffs. The PR description captures the "what" but rarely the full "why" — the alternatives considered, the constraints discovered, the edge cases handled. That context lived in the author's Claude session.
8. Onboarding and temporary contributors
New hires, contractors, and engineers rotating onto a team start with a blank Claude. The team has months of accumulated context, patterns, and learnings in individual memories — none of it accessible to the new person.
The Unlock
Not all engineers are equally skilled at building context for AI agents — but almost everyone is effective at using agents when good context exists. Shared team memory would:
- Eliminate redundant context-building across handoffs, rotations, and consultations
- Preserve institutional knowledge that currently walks out the door when someone changes teams or leaves
- Level up the entire team by giving every engineer access to the best context, not just their own
- Reduce EM overhead — less time re-explaining investigations, less time mediating knowledge transfer
- Compound over time — team memory gets richer with every sprint, every incident, every decision
This isn't documentation. Documentation is written once and goes stale. This is living memory that grows with the team.
What This Could Look Like
Core concepts
- Team memory pool: A shared memory space that team members can read from and contribute to. Scoped to a team, project, or service.
- Memory promotion: An engineer discovers something important in their session and promotes it to team memory (one action, not a writing exercise).
- Context transfer: Attach Claude context to a ticket, PR, or handoff — the receiving engineer's Claude picks it up automatically.
- Role-aware access: An EM sees planning-level context. An IC sees implementation-level context. A domain expert's memories about their owned services are accessible to others touching those services.
- Cross-team shared memory: Service-level or domain-level memory that spans team boundaries, so tribal knowledge about shared infrastructure is available to everyone who needs it.
Integration points
- Ticket systems (Jira, Linear): Context attached to tickets flows to the assignee's Claude
- Git/PRs: Decision context from the author's session is available to reviewers
- Incident management: Investigation context persists across responder handoffs
- Org structure: Memory scoping follows team/org boundaries with appropriate permissions
Privacy and control
- Engineers should control what gets promoted to shared memory vs. stays personal
- Shared memories should be auditable (who contributed what, when)
- Sensitive investigation context (security issues, personnel matters) needs scoping controls
The Industry Gap
This isn't just a Claude Code feature request — it's an unsolved problem across the AI-assisted development industry. GitHub Copilot, Cursor, and every other AI coding tool has the same limitation: context is per-user, per-session. The first tool that solves team-level memory will unlock a step change in engineering team productivity.
The building blocks exist (Claude Code's memory system, MCP for tool integration, project-level CLAUDE.md for static sharing). What's missing is the connective tissue that makes memory flow between people the way knowledge flows in real teams.
---
Written by an Engineering Manager running 2 teams (14 engineers) who adopted Claude Code across both teams and hit this wall repeatedly.
17 Comments
Following up on this with a design direction I am exploring.
The core idea is a passive MCP server that captures context silently as engineers work. No sharing buttons. No memory promotion. No behavior change. Engineers just use Claude Code normally and the MCP server hooks in and accumulates working context into a collective knowledge store. Investigations, decisions, discoveries, all of it.
Any engineer on the team can then ask their Claude "what do we know about the payment service?" and get back everything the team has ever explored. Without anyone explicitly sharing anything.
Two modes in one system:
How it evolves naturally:
Each stage is a byproduct of the previous one. No redesign needed.
Key design choice: store everything raw, summarize on top. The intelligence layer (naming, grouping, compaction, search) runs on the raw data and can be improved without losing anything.
I am actively looking to prototype this. Would love to hear from the Anthropic team on what hooks or APIs would be needed to make passive session capture possible from the MCP side.
Great writeup. The cross-session and cross-client context loss is a real pain point we have been tackling.
We built NEXO Brain — an open-source MCP server (AGPL-3.0) that provides persistent cognitive memory for AI agents. It implements the Atkinson-Shiffrin memory model (sensory to STM to LTM), semantic RAG with trust scoring, learnings that persist across sessions, and decision logging with outcome tracking. Currently 97+ tools.
It solves the individual persistence side of this proposal: one shared brain across Claude Code, Codex CLI, and Claude Desktop — so context built in one client is immediately available in another. Sessions write diaries, learnings compound, and the agent does not start cold.
The team-sharing layer you describe (scoped visibility, read/write permissions, team-level knowledge stores) would be a natural extension on top of this kind of architecture. A shared SQLite or Postgres backend with namespace isolation per team member + a shared namespace could handle most of the use cases you outline (handoffs, domain expertise transfer, incident continuity).
Key patterns from our implementation that might inform the team design:
If anyone is exploring this space, happy to discuss architecture. The single-user foundation is solid and running in production.
The team memory angle is the right framing. The immediate blocker though isn't where memory lives — it's that sessions don't travel at all.
Built claude-handoff to unblock the handoff case today via git: [https://github.com/NeoAcar/claude-handoff](url)
Exports the full session bundle (transcript, subagent logs, memory files) into
.claude-shared/, scrubs secrets + rewrites absolute paths, reconstructs under the receiver's~/.claude/projects/.claude --resumepicks it up with the original title and history intact. Memory files ship with--memory.Not a replacement for proper team memory infra, but it covers the "engineer picks up where teammate left off" case without waiting for server-side support.
npm i -g @neoacar/claude-handoffExcellent request and I would highlight something you said in your opening paragraph - "knowledge flows constantly between people". To that point, I would suggest adding a real-time awareness across active sessions feature to this request.
Even something lightweight would help:
Along the same lines as multiple people collaborating in real-time on a google doc.
Strong +1 on the team-memory framing. One boundary I would add: shared memory and live/current coordination state probably need to be separate surfaces.
Team memory is good for durable decisions, gotchas, investigation notes, and reusable learnings. Active handoff state needs a more operational shape:
owner,source,observed_at,status,expires_or_recheck_by,supersedes, andneeds_verification. Otherwise the receiving Claude can inherit a stale investigation as if it were still current truth.For ticket, PR, and incident handoffs, I would treat the unit of transfer less like "all prior memory" and more like an evidence-backed handoff packet: what changed, what was tried, what is assumed, what is blocked, and what the next person or agent must re-check first.
I had a similar idea while collaborating with a teammate. The pain point for me was that our individual Claude Code sessions weren’t synced, so two agents could easily start editing the same file or area in ways that were obviously going to conflict later in a PR.
So I've been building a small Claude Code plugin PoC around this idea for almost 2 weeks: https://github.com/RubiYH/teamem
It uses MCP and Claude Code's experimental 'Channels' to give Claude Code shared team context like active scope claims, briefings, decisions, risks, progress, and handoff notes.
It’s still early, but this issue describes exactly the kind of problem I was trying to explore.
Would love to hear others' experiences and see what people are building here!
I think I built exactly what this thread is describing.
Context Cloud is an MCP server designed around the team memory problem. Your team's AI sessions (across Claude, Cursor, Codex, Windsurf) share a persistent knowledge layer. Engineer A commits a decision from Claude Code, Engineer B recalls it from Cursor the next morning with full attribution. No export, no copy paste, no re explaining.
What's live today:
Benchmarks from our eval suite:
99.4% weighted product readiness (detail preservation 98.5%, cross-session continuity 100%, cross-tool portability 100%)
94/100 on a realistic 20-session stress test simulating evolved facts, outdated context, and adversarial phrasing
Detail capture: 95.7–97.1% across proper nouns, numbers, URLs, technical IDs, and temporal facts
Retrieval: 0 ranking failures, 0 embedding failures across all test runs
I built the product using the product itself Every architecture decision and convention in the codebase lives in a shared Context Cloud workspace that any session on any tool can recall.
It's free. Would love for anyone in this thread to try it and tell me what's missing: contextcloud.pro
GitHub: github.com/abhinavala/cntxtv2
npm: @contextcloud/mcp-client
@abhinavala - your repo link is giving a 404
This framing matches the part of team memory that feels hardest to make safe: once memory crosses people/agents, the first debugging questions are provenance questions, not retrieval questions.
For a shared pool, I'd want a privacy-safe receipt for each handoff that can answer:
I put together a small executable fixture for that shape here: https://github.com/caioribeiroclw-pixel/pluribus/commit/c66c3f9
Raw trace example: https://raw.githubusercontent.com/caioribeiroclw-pixel/pluribus/main/examples/context-input-evidence/memory-provenance-otel-trace.json
The important constraint: don't log raw memory bodies, tickets, private paths, incident notes, or customer data. Hash identities + role/scope/sequence/relevance counts are usually enough to debug "why did this Claude know this?" or "why did this stale memory get reused?" without turning shared memory into another data leak surface.
So +1 to shared team memory, but I think
auditable who/when/order/hydratedneeds to be part of the minimum viable shape, not a later enterprise feature.Hey there,
Try the link directly, it’s completely free. Open sourcing it doesn’t work
too well especially because it’s collaborative and synced across the cloud.
URL is contextcloud.pro
Thanks,
Abhi Ala
On Fri, May 22, 2026 at 2:06 AM Adrian Cockburn @.***>
wrote:
We've been running shared team memory as an MCP server in production for a few months (data-mcp, MIT) and want to share two categories of findings that this thread keeps circling — access control and context cost — because both turned out to be harder than the retrieval part.
1. Access control needs to be enforced below the MCP layer.
Our first version scoped private vs shared records inside the MCP server (every record has an
owner_id; tools filter by it). That's enough against accidents but not against a teammate whose agent queries the database directly — and agents will do that when given a connection string. What actually closed it:owner_idclaims, checked by Postgres RLS — the database fails closed, not the proxyjticlaim + denylist consulted in the RLS policies. The "engineer leaves the team" case is the headline scenario for team memory, and rotating one shared secret to handle it (killing everyone's tokens) is painful enough that in practice nobody does it — departed members keep accessSECURITY DEFINERfunction@caioribeiroclw-pixel's provenance framing matches what we converged on for handoffs: we ended up making handoffs a first-class typed record (
what_changed,tried: [{approach, outcome}],next_steps,from/to member, status lifecycle) rather than free-text memory, precisely because the receiving agent otherwise inherits a stale investigation as current truth — the failure mode @carltonawong described.2. Team memory has a per-session context tax, and it's larger than the storage problem.
A memory server with one tool per collection/operation is the natural design and it's wrong: ours grew to 44 tools ≈ 10K tokens of schemas injected into every teammate's every session before any work happens. Two things fixed it:
record_*tools driven by a server-side schema registry (44 → 21 tools, ~46% context cut). Validation errors return the expected field spec so the model self-corrects instead of needing the full schema up frontinstructionsunder ~2KB and prefix-organized — long server instructions get truncated, and the model handles "tools are grouped by prefix: knowledge_, record_, handoff_*" better than an exhaustive inventoryIf first-party team memory ships, I'd argue the minimum viable shape is: owner-scoped records enforced at the storage layer, per-member credentials that are individually revocable, typed handoffs with provenance rather than free-text context transfer, and a deliberately small tool surface. Happy to share more implementation detail if useful — everything above is in the repo including the live RLS bypass/revocation test suites.
One angle I haven't seen in this thread yet: most teams already operate a shared memory — the task tracker / wiki / vault everyone maintains because the team runs on it. The missing piece isn't creating a shared store, it's that agents can't query the existing one well.
I built an MCP layer over exactly that (pluggable storage adapters; TickTick and Obsidian-vault today). The Obsidian adapter is just files on disk — no plugin, no running app — so a vault in a shared git repo gets you team memory with the access model you already have: branches, PR review for memory edits, history for free. Every retrieval result carries provenance (which note, which search branch surfaced it), which matters more in a team setting — you want to know whose memory you're trusting.
Trade-off vs. automatic capture: someone has to write things down. In practice that's also the feature — curated entries stay trustworthy in a way auto-captured session logs don't, and the upkeep already happens because the team needs the tracker anyway.
https://github.com/renezander030/agentic-task-system
This thread seems to be converging on an important distinction: team memory is not just a shared database; it is a governed memory substrate.
The Obsidian / shared-git angle resonates with me because git gives a few things that pure retrieval systems usually have to rebuild later:
For team memory, I think the hard part is deciding when a local observation becomes durable shared context. Automatic capture is powerful, but without promotion boundaries it can spread stale assumptions faster than documentation ever did.
I’ve been experimenting with a smaller personal version of this pattern: markdown + git as an AI-collaborable memory vault that stays portable across tools/models.
https://github.com/hegu-1/personal-memory-vault-starter
The same shape may scale upward: personal continuity first, then team memory with review, provenance, and scoped promotion.
The newer comments here changed my take a bit: the hard part is no longer just
shared memory exists; it is proving which shared memory actually crossed into the receiving agent and keeping the tool/context surface small enough that teams leave it enabled.The production note above about 44 MCP tools costing ~10K schema tokens is a useful constraint. For team memory, I would now treat these as minimum receipts alongside provenance:
That gives reviewers two falsifiable checks:
I added small executable Pluribus fixtures for those two checks after watching this thread and adjacent memory-MCP launches:
npx --yes pluribus-context@latest demo tool-surface-diff --jsonNot proposing Pluribus as the shared-memory store. The sharper role seems to be a neutral audit layer next to stores like Context Cloud, Obsidian/git vaults, or MCP memory servers: prove what was promoted, retrieved, hydrated, suppressed, and how much context/tool budget it consumed, without logging the raw memory.
Full disclosure: I maintain Data Olympus, a git-native governance knowledge base plus MCP server for coding agents: https://github.com/knaisoma/data-olympus
This is the right problem area. The boundary I would add is that "shared team memory" probably needs at least two surfaces, not one.
One surface is collaborative/session memory: handoffs, current investigations, active ownership, recent discoveries, and working state. That content often needs freshness, ownership, expiry, and privacy controls.
The other surface is governed project knowledge: accepted standards, architectural decisions, migration choices, operational rules, and known superseded guidance. That content needs review, stable identity, lifecycle status, and history. It should not be updated just because one agent inferred something during a task.
Data Olympus is aimed at the second surface. The bundle is markdown in git, each entry has a stable
id, controlledtype/status/tier, and explicitsupersedeslinks. The MCP read path can ask for currently in-force guidance only, while the write path can route agent-suggested changes into proposals instead of silently changing team truth.For Claude Code, I think this distinction matters because team memory that is useful for handoff can be actively harmful if treated as governing truth six weeks later. A shared memory implementation should let the agent tell the difference between "someone observed this during an investigation" and "the team has accepted this as the rule for this repo."
Full disclosure: I built BaseThread, an MCP server for this.
The distinction between session/collaborative memory and governed project knowledge that's come up in this thread matches what we landed on too, but our angle is slightly different: most teams already use more than just Claude Code (Cursor, ChatGPT, other MCP clients), so a Claude-only shared memory still leaves the rest of the team's tools blind to it.
BaseThread models this as company/team/project scoped context that any MCP client reads and writes over MCP, so a handoff written from one person's Claude Code session is immediately visible to a teammate's Cursor or ChatGPT session too, not just other Claude Code sessions.
Happy to share more on how we're handling the promotion-boundary problem (local observation vs accepted team truth) if useful, it's a real design challenge once multiple tools are writing to the same store. https://basethread.ai
@navbuildz yes — the promotion boundary is the part I would most like to understand, especially because BaseThread also advertises local/offline mirrors and automatic agent write-back.
A concrete two-writer test would make the semantics much clearer than another storage diagram:
Afor project P.B.Ato accepted project guidance.B.I would expect the test to pass only if:
Bcannot silently overwrite or supersede acceptedA;Aas governing context, whileBremains inspectable as an unaccepted observation;How are you representing that today: separate record types/authority states, an append-only event stream, or last-write-wins plus synthesis? And does promotion require a human action, or can an agent cross that boundary automatically under scoped policy?
That answer would help distinguish cross-tool availability from cross-tool authority — the latter seems to be where shared-memory systems become trustworthy or dangerous.