nicememhelpOpen nicemem →

Spaces

Contexts for your memories: projects, clients, themes — and who sees what.

A space is a context for memories — a project, a client, a theme. It's a visibility boundary, not a folder: spaces decide which keys can see what, and what surfaces first in search. Tags stay what they are — cross-cutting labels; a space is a location.

The model

  • A memory lives in at most one space. A memory with no space is private: visible to you in the web app and to full-access keys, and never to space-pinned keys.
  • Open spaces are readable by every one of your keys. Every account starts with one, General — the deliberate home for knowledge that should follow you across projects.
  • Spaces are created, renamed, and deleted by you, in Settings → Spaces. Agents can list spaces and file memories into them, but never create them.

Pinned keys

Pin an API key to a space at creation and that key reads only its pinned space plus open spaces, with writes landing in the pinned space by default. This is the enforcement mechanism: give a coding agent a key pinned to its project, and your private notes and other clients' contexts simply don't exist as far as it's concerned.

Bindings: automatic filing

A space can be bound to git repositories. When an agent writes from a bound repo (its client passes the repo as context), the memory files into that space automatically — deterministic matching, no guesswork. The easiest way to set one up: when a pending write in the inbox arrived from a repo, there's a one-click "always file this repo here."

Every memory shows whether its space was set explicitly, inferred from a binding, or defaulted from the key's pin — so you can spot and correct bad filing.

Search across spaces

Within what a key is allowed to see, spaces boost rather than wall: searching from a current-space context down-weights out-of-space results instead of hiding them, so a strongly relevant memory from another project still surfaces. Private memories are never down-weighted for you. When you want a hard boundary, filter explicitly — the space switcher in the web app, or the space parameter in the API.

Deleting a space

Its memories go private and its bindings are removed. Nothing dangles, nothing stays silently visible to keys that could see the space before.