switch-project
Overrides the auto-detected project scope to read and write memories under a different project ID, or enables global search to access all memories across all users and projects. Use when working across multiple projects, accessing memories from another repo, enabling team-wide memory access, or when auto-detection resolves to the wrong project.
How do I install this agent skill?
npx skills add https://github.com/mem0ai/mem0 --skill switch-projectIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill manages project-specific settings for the mem0 memory service by modifying local configuration files. It uses Python scripts executed via the bash tool to update JSON files in the user's home directory to enable global search or switch project scopes.
- Socketpass
No alerts
- Snykfail
Risk: CRITICAL · 1 issue
What does this agent skill do?
Mem0 Switch Project
Override the automatic project_id detection for the current directory, or enable global search mode.
Usage
/mem0:switch-project <project-name>— switch to a specific project scope/mem0:switch-project --global— enable global search (all memories, all users, all projects)/mem0:switch-project --no-global— disable global search and return to per-project scoping
Execution
If --global flag is provided:
-
Set
global_search: truein~/.mem0/settings.jsonusing the Bash tool:python3 -c " import json, os settings_file = os.path.expanduser('~/.mem0/settings.json') settings = {} if os.path.isfile(settings_file): with open(settings_file) as f: settings = json.load(f) settings['global_search'] = True with open(settings_file, 'w') as f: json.dump(settings, f, indent=2) print('Global search enabled') " -
Print:
Global search enabled. Searches now return all memories across all users and projects. Writes still use the current user_id and app_id. Restart the session for the change to take effect.
If --no-global flag is provided:
-
Set
global_search: falsein~/.mem0/settings.jsonusing the Bash tool:python3 -c " import json, os settings_file = os.path.expanduser('~/.mem0/settings.json') settings = {} if os.path.isfile(settings_file): with open(settings_file) as f: settings = json.load(f) settings['global_search'] = False with open(settings_file, 'w') as f: json.dump(settings, f, indent=2) print('Global search disabled') " -
Print:
Global search disabled. Searches now return only memories scoped to the current project. Restart the session for the change to take effect.
If a project name is provided (no flags):
-
If no project name was given, ask: "What project_id should this directory use?"
-
Write the mapping to
~/.mem0/project_map.jsonusing the Bash tool:python3 -c " import json, os map_file = os.path.expanduser('~/.mem0/project_map.json') mapping = {} if os.path.isfile(map_file): with open(map_file) as f: mapping = json.load(f) mapping[os.getcwd()] = '<PROJECT_NAME>' os.makedirs(os.path.dirname(map_file), exist_ok=True) with open(map_file, 'w') as f: json.dump(mapping, f, indent=2) print(f'Mapped {os.getcwd()} -> <PROJECT_NAME>') "(Replace
<PROJECT_NAME>with the user's chosen project name.) -
Verify by searching for existing memories:
- Call
search_memorieswithquery="project",filters={"AND": [{"user_id": "<active_user_id>"}, {"app_id": "<PROJECT_NAME>"}]},top_k=1
- Call
-
Print:
Switched to project <PROJECT_NAME>. <N> memories found for this project. Note: This override persists across sessions for this directory.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/mem0ai/mem0/switch-project">View switch-project on skillZs</a>