Skip to content

Feature request: recommended personal/global memory alongside project-scoped memory #337

@congmucc

Description

@congmucc

Problem

memsearch's project-scoped memory model is a strong default. The per-project .memsearch/memory/ directory and per-project collection derivation make isolation clear and predictable, which works very well for project history.

However, in real usage there is another class of memory that does not really belong to a single project:

  • stable user preferences
  • coding style preferences
  • preferred tools/workflows
  • recurring collaboration preferences
  • durable "how I like to work" context

For agent workflows, a recommended two-layer model often feels natural:

  1. Project memory

    • architecture decisions
    • debugging history
    • project-specific conventions
    • task history
  2. Personal/global memory

    • user preferences that should carry across projects
    • general coding preferences
    • preferred output style / collaboration style
    • durable habits that are not tied to one repo

Project-only memory is still a very good default. The gap is that personal/global memory does not feel like a first-class or officially recommended pattern today, so users end up duplicating the same preferences into many projects or building custom workarounds outside the normal flow.

Proposed solution

I would love to see an officially recommended personal/global memory layer alongside the existing project-scoped model.

I am not asking for this to be mandatory, and I am not asking for a large multi-bank platform.

A small optional model would already help a lot:

  • keep project memory exactly as the default
  • optionally support personal / global memory as a second scope

Possible shape

Storage:

  • keep current project storage exactly as-is
  • add a separate personal/global memory location, for example:
    • ~/.memsearch/personal/memory/
    • or another configurable global path

Retrieval:

  • search current project memory first
  • optionally merge in personal/global memories
  • show which result came from which scope
  • keep project memory higher priority

Capture:

  • project memory stays the default capture target
  • personal/global memory can be opt-in
  • even a minimal first version would help, for example:
    • explicit/manual capture
    • a simple tag/frontmatter-based routing mechanism
    • or a lightweight configurable rule for durable user preferences

Why this would help

This would preserve the current strengths of memsearch:

  • markdown remains the source of truth
  • project isolation remains strong by default
  • advanced users get a clean path for durable cross-project preferences

From my perspective, the key ask is not "force everyone into multiple scopes". The key ask is to make this a documented and supported recommended pattern for users who want both:

  • strong per-project memory
  • stable cross-project personal memory

Alternatives considered

Current workarounds seem to be:

  • duplicating personal preferences into each project
  • relying only on agent global instructions outside memsearch
  • building a custom second collection / second memory directory manually

These workarounds are possible, but they lose the simplicity and first-class ergonomics that memsearch already provides for project memory.

I am not asking for weaker project isolation, and I am not asking to mix everything together by default.

An MVP could even start with:

  • documentation that recommends a two-layer pattern
  • a configurable global memory path
  • optional dual-scope search

That would already cover a lot of real workflows without changing the current default behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions