You already use CLAUDE.md in one repo, .cursor/rules in another, and an
AGENTS.md somewhere else. Each is static, single-tool, and starts from
scratch when the AI hasn't seen the file. Mnueron solves the same problem
with one shared store the AI can already search.
Project Memory is a convention, not a separate product: save a
structured "what's in this repo / what's in this project" memory under a
repo:<name> or project:<name> namespace. Every AI session that has
mnueron MCP wired (Claude Desktop, Cowork, Claude Code, Cursor) can recall
it in <100 ms with no LLM call.
Why it matters
The same context that takes a coding agent 10–20 minutes (and 5–15 tool calls) to rebuild from scratch every session — directory layout, build commands, naming conventions, the gotchas you tripped over last time — is a 3 KB memory you save once.
Every session after that, recall returns it. Same store. Same search. No per-IDE config file.
The namespace convention
| Pattern | Use for |
|---|---|
repo:<name> | A specific codebase (e.g. repo:ai-boilerplate-pro) |
project:<name> | A bounded effort that may span repos (e.g. project:q4-launch, project:acme-account) |
team:<name> | Shared context for a team (e.g. coding standards, on-call rotation) |
Use whichever fits. The AI's memory_recall is hybrid (keyword + vector),
so the namespace label is for organization, not search ranking.
A starter template
Save this shape under repo:<your-repo>:
# Repo map — <name>
## Mounted paths
- Where the repo lives on disk + any platform-specific notes
## Key directories / files
- Source-of-truth files (the items.ts, the schema, the config)
- Files with non-obvious responsibilities
## Conventions
- Migration / naming / commit conventions
- Idempotent patterns (e.g. UPSERT format for docs)
## Gotchas
- The non-obvious thing you tripped over last time
- Encodings, native modules, environment vars that must be set
## Procedural runbooks
- Triggers that map to known runbooks (e.g. "deploy" → "Push to Vercel")
## Related areas not yet explored
- Files you noticed but didn't read — breadcrumbs for next session
The gotchas section is the highest-EV part. Anything that wasted you 10 minutes once should land here so it never wastes 10 minutes again.
Save it
await client.memorySave({
namespace: "repo:my-app",
source: "agent-repo-map",
tags: ["repo-map", "my-app"],
content: `# Repo map — my-app\n\n...`,
});
Or via MCP from inside an AI session:
memory_save(
namespace="repo:my-app",
tags=["repo-map"],
content="# Repo map — my-app\n..."
)
Recall it
memory_recall(query="my-app repo map", namespace="repo:my-app")
Most AIs with MCP will call recall on their own when they see the working directory matches a known project. You can also drop the recall into your first prompt:
Before answering, recall the
repo:my-appnamespace and use anything relevant.
What it costs
| Operation | LLM cost | Why |
|---|---|---|
memory_save | ~$0.000002 | Embedding-only. A 3 KB repo map is fractions of a cent. |
memory_recall | $0 | Pure BM25 + cosine. No LLM in the path. |
| Optional auto-synopsis | ~$0.0001 | gpt-4o-mini summarizing the saved text. Off by default. |
| Optional fact-extraction | ~$0.0005 | Splits the memory into searchable child facts. Useful for large repo maps. |
There is no prompt-token cost in the inference sense — the saved memory sits in your Postgres until something searches for it.
How this compares
| CLAUDE.md / AGENTS.md | .cursor/rules | Aider repo map | Mnueron Project Memory | |
|---|---|---|---|---|
| Cross-tool | No — Anthropic agents only | No — Cursor only | No — Aider only | Yes — any MCP client |
| Searchable | No — full file in context | No — full file in context | Auto-regenerated each run | Hybrid search, returns only relevant chunks |
| Dynamic | Static checked-in file | Static checked-in file | Per-session ephemeral | Updated as you learn more |
| Versioned | Git history | Git history | None | Mnueron consolidation flow |
| Multi-repo | One file per repo | One folder per repo | One per project | Single store, namespaces |
When NOT to use this
-
For team-wide coding conventions that belong in source control, keep using
CLAUDE.md— the social signal of "this is checked in" matters. Project Memory is for the things that don't earn a PR but do earn a 10-minute discovery tax every session. -
For one-off facts ("the meeting is at 3pm Tuesday"), use the default namespace. Project Memory is for things that stay true across many sessions on one project.
What's next
The Project Memory CLI and dashboard surface are on the roadmap (see
engine-project-memory in /admin/roadmap):
mnueron project init— bootstrap a starter map from your cwdmnueron project show/update— read or edit your saved map/dashboard/projects— list, edit, see last-updated
Until those ship, save and recall via the standard memory API — the convention works today without any new code.
Last updated 2026-05-25