Skip to main content

Overview

Basic Memory supports multiple projects, allowing you to organize knowledge into separate, independent knowledge bases. Each project has:
  • Its own directory of Markdown files
  • Separate SQLite database for indexing
  • Independent configuration and settings
  • Isolated knowledge graph

Why Use Multiple Projects?

Work vs Personal

Keep professional and personal knowledge separate

Team Collaboration

Share project-specific knowledge with teammates

Client Work

Maintain separate knowledge bases for different clients

Research Topics

Organize different research areas independently

Project Management

List Projects

View all available projects:
basic-memory project list
Output:
Available projects:
  * work        ~/work-notes       (default)
    research    ~/research-notes
    personal    ~/personal-notes

Create Project

Create a new project:
basic-memory project add "project-name" ~/path/to/directory
Examples:
basic-memory project add "work" ~/Documents/work-notes

Set Default Project

Set which project is used by default:
basic-memory project default "project-name"
Example:
basic-memory project default "work"

Remove Project

Remove a project from configuration (files remain on disk):
basic-memory project remove "project-name"
This removes the project from Basic Memory’s configuration and deletes the database, but leaves files on disk unchanged. You can re-add the project later.

Project Info

View detailed information about a project:
basic-memory project info "project-name"
Output:
Project: work
Path: /Users/alice/work-notes
Status: Active
Entities: 142
Observations: 1,234
Relations: 387
Last synced: 2024-01-15 14:32:00

Using Projects with MCP

Claude Desktop Configuration

Configure Claude Desktop to use a specific project:
Configure for one project:
{
  "mcpServers": {
    "basic-memory": {
      "command": "uvx",
      "args": [
        "basic-memory",
        "mcp",
        "--project",
        "work"
      ]
    }
  }
}

VS Code Configuration

Configure VS Code for project-specific setups:
1

Create Workspace Settings

In your repository, create .vscode/mcp.json:
{
  "servers": {
    "basic-memory": {
      "command": "uvx",
      "args": [
        "basic-memory",
        "mcp",
        "--project",
        "my-project"
      ]
    }
  }
}
2

Commit Configuration

Share the configuration with your team:
git add .vscode/mcp.json
git commit -m "Add Basic Memory configuration"
3

Team Setup

Team members need to:
  1. Install Basic Memory
  2. Create the same project:
    basic-memory project add "my-project" ~/path/to/shared/docs
    
  3. Sync the project:
    basic-memory sync --project my-project
    

Project Synchronization

Manual Sync

Sync a specific project:
basic-memory sync --project "project-name"

Watch Mode

Real-time sync for active development:
basic-memory sync --watch --project "project-name"

Sync Status

Check sync status for a project:
basic-memory status --project "project-name"

Cloud Projects

Cloud features require an active Basic Memory Cloud subscription.

Cloud Authentication

Authenticate with Basic Memory Cloud:
basic-memory cloud login

Set Project to Cloud Mode

Route a project through the cloud:
basic-memory project set-cloud "project-name"
This enables:
  • Cross-device access
  • Team collaboration
  • Cloud backup
  • Web and mobile access

Set Project to Local Mode

Revert a project to local-only:
basic-memory project set-local "project-name"

Bidirectional Sync

Sync between local and cloud:
# One-way sync (local → cloud)
basic-memory project sync "project-name"

# Two-way sync
basic-memory project bisync "project-name"

Project Integrity Check

Verify project consistency:
basic-memory project check "project-name"

Project Organization Strategies

By Domain

Organize by knowledge domain:
basic-memory project add "work" ~/knowledge/work
basic-memory project add "personal" ~/knowledge/personal
basic-memory project add "learning" ~/knowledge/learning

By Client

Separate client work:
basic-memory project add "client-acme" ~/clients/acme/knowledge
basic-memory project add "client-beta" ~/clients/beta/knowledge
basic-memory project add "internal" ~/knowledge/internal

By Time Period

Archive by time:
basic-memory project add "current" ~/knowledge/current
basic-memory project add "archive-2023" ~/knowledge/archive/2023
basic-memory project add "archive-2024" ~/knowledge/archive/2024

By Team

Team-based organization:
basic-memory project add "engineering" ~/teams/engineering
basic-memory project add "product" ~/teams/product
basic-memory project add "design" ~/teams/design

Cross-Project References

Memory URLs with Projects

Reference notes in other projects using memory:// URLs:
memory://project-name/note-path
Examples:
memory://work/authentication-system
memory://research/semantic-search-paper
memory://personal/coffee-brewing

Building Context Across Projects

When using build_context, specify the project:
build_context(
    "memory://work/authentication-system",
    project="work"
)

Searching Multiple Projects

Search within specific projects:
# Search in work project
search_notes("authentication", project="work")

# Search in research project
search_notes("embeddings", project="research")
Each MCP server instance is tied to one project. To search across projects, you need multiple MCP server configurations.

Project Migration

Moving Projects

Move a project to a new location:
1

Move Files

mv ~/old-location ~/new-location
2

Update Configuration

basic-memory project move "project-name" ~/new-location
3

Verify

basic-memory project info "project-name"

Exporting Projects

Back up or export a project:
# Create archive
tar -czf project-backup.tar.gz ~/path/to/project

# Copy to backup location
cp project-backup.tar.gz ~/backups/

Importing Projects

Restore from backup:
1

Extract Archive

tar -xzf project-backup.tar.gz -C ~/restored-project
2

Add Project

basic-memory project add "restored" ~/restored-project
3

Sync

basic-memory sync --project "restored"

Best Practices

Each project should have a clear scope:Good:
  • work - All work-related knowledge
  • research-ml - Machine learning research
  • personal-health - Health and fitness notes
Avoid:
  • misc - Mixed unrelated content
  • everything - Single project for all knowledge
Choose a naming convention:
# Domain-based
work, personal, research

# Team-based
team-eng, team-product, team-design

# Client-based
client-acme, client-beta, client-gamma
Back up important projects:
# Automated backup script
#!/bin/bash
DATE=$(date +%Y%m%d)
tar -czf ~/backups/work-$DATE.tar.gz ~/work-notes
Always sync before switching projects:
basic-memory sync --project current
basic-memory project default new-project
basic-memory sync --project new-project
Create a README in each project:
# Work Knowledge Base

This project contains all work-related documentation including:
- Architecture decisions
- Meeting notes
- Technical documentation
- Project planning

Troubleshooting

Check available projects:
basic-memory project list
Add the project if missing:
basic-memory project add "project-name" ~/path
Diagnose sync problems:
# Check status
basic-memory status --project "project-name"

# Run doctor
basic-memory doctor --project "project-name"

# Force sync
basic-memory sync --project "project-name"
If multiple projects use the same path:
# List projects to find conflict
basic-memory project list

# Update path for one project
basic-memory project move "project-name" ~/new-path
Rebuild database if corrupted:
# Backup current database
cp ~/.basic-memory/projects/project-name.db ~/backup.db

# Remove and re-add project
basic-memory project remove "project-name"
basic-memory project add "project-name" ~/path

# Re-sync
basic-memory sync --project "project-name"

Next Steps

Writing Notes

Learn how to structure notes effectively

Searching

Master search across projects

Cloud Sync

Enable cloud features for projects

CLI Reference

Complete CLI documentation

Build docs developers (and LLMs) love