Spaces
Optional spaces for work, life, projects, or agents.
Spaces are an optional way to keep different kinds of knowledge focused without splitting Mem into separate apps.
Most people do not need them on day one. Staying in Default is the right choice until two contexts keep getting in each other's way.
Start simple
If you are not already feeling real overlap between projects, teams, or agents, leave spaces off and keep using the default space.
The First Useful Move
Create one extra space only when you already know why you need it.
Good first cases:
- a long-running work project that should not mix with personal notes
- an agent that should build up its own experience over time
- a shared team space that several tools should search first
Go to Settings → Preferences → Memory spaces, turn spaces on, and create one space with a clear name.
Success looks like this
Save one memory in the new space, switch back to Default, and confirm it no longer appears in the default Memories view. Then switch back and find it immediately.
What Spaces Change
When a space is active, these views follow it by default:
- Memories
- Threads
- Library
- Working Memory
- AI Now
The Timeline also starts from the active space, while still letting you expand back to all activity when you want the wider picture.
The entity graph stays global by design. Mem still understands the whole shape of your knowledge. Spaces change what your day-to-day memory surfaces read and write by default.
What The Settings Actually Mean
Inside a space profile you will see three settings that matter most:
- Automatic recall in this space
- Stay in this space keeps the first recall step inside the current lane.
- Stay here + shared spaces starts here, then also reads the spaces you marked as shared context.
- Search every space is for the rare lane that should search across your whole memory by default.
- Shared context for recall
- This is retrieval only.
- It does not move memories into those spaces.
- It does not merge spaces together.
- How agents should work here
- AI Now, Feed, and built-in background agents read this when they work in that space.
- It changes how they search and explain.
- It does not change where records are stored.
Working Memory In Spaces
Working Memory is no longer just one global file.
- The Default space keeps the familiar compatibility path at
~/ai-now/memory.md. - Other spaces get their own Working Memory briefing behind the same Mem interfaces.
- Connected tools read the briefing for the current space when they know which space they are in.
That means a research agent can open with its own current priorities, while your default personal space stays quieter.
If a space no longer has memories, threads, or Library items, but still has its own Working Memory notes, Mem will tell you that clearly when you delete the space and let you remove those generated notes in the same step.
How AI Tools Use Spaces
The best integrations treat space as background context, not as a new thing you have to explain every turn.
- AI Now follows the current space in the app.
- Native integrations should store the lane in their own profile or provider config when the host already knows it.
- CLI workflows can opt into a space with
--space "<space name>". - The HTTP and MCP APIs still use the
space_idfield name for compatibility, but they accept the visible space name too.
nmem --json wm read --space "Research Agent"
nmem --json m search "token rotation" --space "Research Agent"
nmem spacesIf a tool has no natural project or agent context, it should simply stay in Default.
Use host config first
If an integration already has a real settings surface, use that to choose the lane. Environment variables are only the fallback for CLI-first tools that have no better profile-level config.
Multi-Agent Hosts
Not every integration can route spaces at the same level.
- Coding tools like Claude Code, Codex, and Gemini CLI usually only need one optional lane for the whole session.
- Agent harnesses like Hermes, Alma, Bub, and OpenClaw may need one lane per profile, process, or agent identity.
The right pattern is:
- Fixed lane: one profile or process always stays in one space
- Derived lane: the host already knows a stable identity or workspace and derives the space from it
- Exact mapping: the host exposes a small known set of identities and maps each one to a named space
Do not fake routing
If a host does not expose a trustworthy identity or workspace signal, do not invent per-agent routing anyway. Use one fixed lane per profile or process, or stay on Default.
When Spaces Help Most
Spaces are strongest when you want focus, not isolation for its own sake.
They work especially well for:
- one owner with several long-running agents
- separating work from personal context
- a shared project space plus a quieter default space
- teams that want one common context without mixing every private note into it
What Not To Worry About Yet
- You do not need a work space and a life space just because the feature exists.
- You do not need to redesign your labels or graph usage to start using spaces.
- You do not need to split the entity graph. Mem keeps that global on purpose.
Next Steps
- Memories if you want the capture and search workflow
- AI Now if you want a space-aware agent workspace
- Nowledge Mem CLI if you want to script
--spaceandnmem spaces - Background Intelligence if you want to understand how Working Memory and scheduled tasks behave over time