User Guide
This guide covers everything from creating your first notes to building a comprehensive knowledge graph.
Basic Memory Workflow
Using Basic Memory follows a natural cycle:
- Have conversations with AI assistants like Claude
- Capture knowledge in Markdown files
- Build connections between pieces of knowledge
- Reference your knowledge in future conversations
- Edit files directly when needed
- Sync changes automatically
Creating Knowledge
Through Conversations
The most natural way to create knowledge is during conversations:
You: We've covered several authentication approaches. Could you create a note
summarizing what we've discussed?
Claude: I'll create a note summarizing our authentication discussion.
[Uses write_note tool]
Done! I've created "Authentication Approaches.md" with:
- Overview of options we discussed
- Observations about JWT vs sessions
- Relations to your security notes
This creates a Markdown file with semantic markup in your knowledge base.
~/basic-memory is the default project location. See Getting Started for more information.Direct File Creation
You can also create files directly:
- Create a new Markdown file in your project directory
- Add frontmatter with title, type, and optional tags
- Structure content with observations and relations
- Save the file - it syncs automatically
Example file structure:
---
title: API Design Decisions
tags: [api, architecture, decisions]
---
# API Design Decisions
## Context
We needed to choose an approach for the new API.
## Observations
- [decision] Use REST over GraphQL for simplicity #api
- [requirement] Must support versioning from day one
- [risk] Rate limiting needed for public endpoints
## Relations
- implements [[API Specification]]
- depends_on [[Authentication System]]
Using Special Prompts
Basic Memory includes special prompts that help you leverage your knowledge base effectively.
Continue Conversation
Resume previous topics with full context:
"Let's continue our conversation about [topic]"
What happens:
- Searches your knowledge base for relevant content
- Builds context from related documents
- Resumes with awareness of previous discussions
Recent Activity
See what you've been working on:
"What have we been discussing recently?"
What happens:
- Retrieves recently modified documents
- Summarizes main topics and points
- Offers to continue any discussions
Search
Find specific information:
"Find information about [topic]"
What happens:
- Searches across all your documents
- Summarizes key findings
- Offers to explore specific documents
Working with Memory URLs
Basic Memory uses special memory:// URLs to reference knowledge:
URL Formats
memory://title # Reference by title
memory://folder/title # Reference by folder and title
memory://permalink # Reference by permalink
memory://path/relation_type/* # Follow all relations of type
Using Memory URLs
Reference existing knowledge in conversations:
You: "Take a look at memory://coffee-brewing-methods and let's discuss improvements"
Claude will load that specific document and any related context.
Building Knowledge Connections
Creating Relations
Use WikiLink syntax to connect knowledge:
## Relations
- implements [[Authentication System]]
- requires [[Database Schema]]
- relates_to [[Security Guidelines]]
Common Relation Types
| Type | Use for |
|---|---|
implements | One thing implements another |
requires | Dependencies |
relates_to | General connections |
part_of | Hierarchy relationships |
extends | Extensions or enhancements |
pairs_with | Things that work together |
inspired_by | Source of ideas |
replaces | Supersedes another document |
Adding Observations
Structure facts with semantic categories:
## Observations
- [decision] We chose JWT tokens for stateless auth
- [requirement] Must support 2FA for sensitive operations
- [technique] Use bcrypt for password hashing
- [issue] Rate limiting needed for login attempts
- [fact] Average response time is 50ms
- [question] Should we support OAuth?
Multi-Project Workflows
How Projects Work
Basic Memory supports multiple projects for organizing different knowledge bases. When you start a conversation, the AI will:
- Check your available projects
- Suggest the most active project based on recent activity
- Ask which project to use for this conversation
- Remember your choice throughout the session
Example conversation:
You: "Let's work on documentation"
Claude: I see you have 3 projects: main, work-notes, personal
Your most active project is work-notes.
Should I use work-notes for this task?
You: "Yes, let's use work-notes"
Claude: I'll use the 'work-notes' project for our session.
Single Project Users
If you only use one project, you can skip the selection prompt. Add this to ~/.basic-memory/config.json:
{
"default_project": "main",
"default_project_mode": true
}
With this enabled, the AI uses your default project automatically. You can still override by explicitly specifying a different project.
Single Project Mode (Locked)
For focused sessions or automation, lock the MCP server to one project:
basic-memory mcp --project work-notes
This locks the entire MCP session - the project parameter in tool calls will be ignored.
When to use:
- Automation workflows that should only access one project
- Focused sessions where you want to prevent cross-project operations
- Team environments with project-specific access
- Default Project Mode: Uses default automatically, but can still switch
- Single Project Mode: Locked to one project, cannot switch
Moving Notes Between Projects
- Copy the file manually between project directories
- Or create a new note in the destination project, then delete the original
File Organization
Directory Structure
Organize files in any structure that suits you:
~/basic-memory/
├── projects/ # Active project notes
│ ├── api-redesign/
│ └── mobile-app/
├── decisions/ # Decision records
├── learning/ # Research and learning notes
├── meetings/ # Meeting notes
└── archive/ # Completed/old content
Best Practices
- Use descriptive filenames
- Group related content in folders
- Include dates in time-sensitive notes (e.g.,
2024-01-15 Team Standup.md) - Archive old content regularly
Controlling What Gets Indexed
Basic Memory respects .gitignore patterns to skip sensitive files.
Pattern sources:
- Global patterns:
~/.basic-memory/.bmignore(all projects) - Project patterns:
{project}/.gitignore(specific project)
Example .gitignore:
# Sensitive files
.env
*.key
credentials.json
# Build artifacts
node_modules/
__pycache__/
dist/
# OS files
.DS_Store
Thumbs.db
Files matching these patterns are automatically skipped during indexing.
Enhanced Editing
Incremental Editing
Edit notes without rewriting entire documents:
You: "Add a troubleshooting section to my setup guide"
Claude: [Uses edit_note with append operation]
"I've added a troubleshooting section to the end of your setup guide."
Available operations:
append- Add content to endprepend- Add content to beginningfind_replace- Replace specific textreplace_section- Replace entire section by heading
Smart File Organization
Move and rename notes with database consistency:
You: "Move my old meeting notes to the archive folder"
Claude: [Uses move_note]
"Done! I've moved 12 meeting notes to the archive folder."
Directory Operations
Move or delete entire folders:
You: "Move the old-projects folder to archive"
Claude: [Uses move_note with is_directory=true]
"Moved old-projects/ → archive/old-projects/ (15 files)"
You: "Delete the empty temp folder"
Claude: [Uses delete_note with is_directory=true]
"Deleted temp/ and all 3 contained files"
Enhanced Search
Tags in frontmatter are searchable:
---
title: Coffee Notes
tags: [brewing, equipment, techniques]
---
Searching for "brewing notes" will find this document.
Syncing and Updates
Real-time Sync
Basic Memory automatically syncs file changes in real-time. When you edit a file in your editor:
- The change is detected within ~1 second
- The file is re-parsed for observations and relations
- The database is updated
- Search index is refreshed
No manual sync needed for normal workflows.
Checking Status
# View sync status
basic-memory status
# View project information
basic-memory project info
Force Re-sync
If something seems out of sync:
# Re-sync all files
basic-memory sync
# Reset and rebuild database (use if issues persist)
basic-memory reset
basic-memory reset rebuilds the entire database from your files. This is safe (files are never deleted) but may take time for large knowledge bases.Integration Tips
With Obsidian
- Open your
~/basic-memorydirectory as an Obsidian vault - Use Graph View to visualize connections
- Edit files directly in Obsidian
- Changes sync automatically - ask the AI to read a note to see updates

With Git
Basic Memory files are git-friendly:
cd ~/basic-memory
git init
git add .
git commit -m "Initial knowledge base"
Benefits:
- Version history for all changes
- Backup to GitHub/GitLab
- Collaborate with others
- Track what changed over time
With Other Editors
Basic Memory uses standard Markdown that works with:
- VS Code with Markdown extensions
- Typora for rich text editing
- Any text editor for quick edits
- Web editors for remote access
The database syncs regardless of how you edit files.
Best Practices
Knowledge Creation
- Create relations - Link related concepts with
[[WikiLinks]] - Make observations - Structure facts with
[category]syntax - Be descriptive - Use clear titles and rich content
- Add context - Include background and reasoning
- Review and refine - Edit AI-generated content for accuracy
Workflow
- Use special prompts - "Continue conversation", "Recent activity", "Search"
- Build incrementally - Add to existing notes rather than creating duplicates
- Organize regularly - Move old content to archive
- Cross-reference - Link new content to existing knowledge
- Use projects - Separate work, personal, research
Long-term Maintenance
- Archive old content - Keep active knowledge base focused
- Refactor connections - Update relations as knowledge evolves
- Regular reviews - Periodically update key documents
- Backup regularly - Use git, cloud sync, or snapshots
Troubleshooting
Changes Not Syncing
- Check sync status:
basic-memory status - Verify file permissions
- Check if file matches ignore patterns
- Reset database:
basic-memory reset
Claude Can't Find Knowledge
- Confirm files are in correct project directory
- Check frontmatter formatting (valid YAML)
- Use
memory://URLs for direct references - Trigger re-sync:
basic-memory sync
Performance Issues
- Check database size:
basic-memory project info - Archive old content
- Adjust sync delay in config (default: 1000ms)
Getting Help
- Discord: discord.gg/tyvKNccgqN - #help channel
- GitHub: github.com/basicmachines-co/basic-memory/issues
# View all commands
basic-memory --help
# Help for specific commands
basic-memory sync --help
basic-memory project --help

