Basic Memory
What's New

v0.19.0

Schema system, semantic search, per-project routing, and more in Basic Memory v0.19.0.

Basic Memory is a knowledge base that you and your AI share — notes you write in one conversation are available in the next. v0.19.0 is a major release that makes your notes more consistent, your searches smarter, and your projects more flexible.


Schema System

Knowledge bases grow organically, and over time note structure drifts — some person notes have a name, others don't, and link styles vary. The new schema system gives you a way to keep your notes consistent.

The workflow is conversational — just ask your AI assistant:

You: "I've been writing a lot of person notes. Can you figure out
      what they have in common and create a schema?"

AI: [Analyzes your person notes, creates a schema]

Done! I created a Person schema based on your 45 person notes.
"name" is required, "role" and "works_at" are optional.

You: "How do my existing notes look against that?"

AI: [Validates all person notes]

42 of 45 pass. Three are missing the name.
Want me to fix those?

The schema itself is just a regular note — your AI creates and manages it for you. You don't need to write any special syntax.

See the full Schema System guide for details and examples.


Basic Memory now includes semantic search by default — it understands what you mean, not just what you type. Search for "login security improvements" and find notes about "authentication hardening" even though the exact words don't match.

You: "Find my notes about login security"
AI: [Finds notes about "authentication hardening" even though the words don't match]

I found 3 relevant notes:
- Authentication Hardening Plan
- Login Flow Security Review
- OAuth Token Best Practices

Three search modes are available:

  • Hybrid (default) — Combines keyword matching with meaning-based search. Best for everyday use.
  • Text — Keyword-only search. Best when you know the exact terms you're looking for.
  • Vector — Pure meaning-based search. Best for exploring ideas when you aren't sure what words were used.

Semantic search works automatically — there's nothing to set up. On first startup, Basic Memory generates the search index for your existing notes.

See the full Semantic Search guide for configuration and how it works under the hood.


You can now search your notes by their frontmatter properties — like status, tags, or any custom fields you've added — without needing to remember exact words.

You: "Show me all my in-progress notes"
AI: [Searches by status field and returns matching notes]

You: "Find notes tagged security and oauth"
AI: [Searches by tags and returns matching notes]

You can also combine property searches with regular text searches, like "find my high-priority notes about authentication."


Search notes by tag using simple shorthand:

You: "Search for tag:security"
You: "Search for tag:coffee AND tag:brewing"

Per-Project Local/Cloud Routing

You can now mix local and cloud projects. Keep some projects on your computer and route others through Basic Memory Cloud — or use both together.

# Save or create a cloud API key
bm cloud api-key save bmc_...
bm cloud api-key create "my-laptop"

# Route a specific project through cloud
bm project set-cloud research

# Revert to local
bm project set-local research

Three levels of control:

  1. Globalbm cloud login sends all commands to cloud by default
  2. Per-projectbm project set-cloud/set-local overrides for specific projects
  3. Per-command--local / --cloud flags provide one-off overrides

See Local & Cloud Routing for the full guide, including hybrid setups and common configurations.


When you have multiple projects, note links now include the project name so there's no ambiguity:

memory://main/docs/authentication
memory://research/specs/search-ranking

This happens automatically — existing links without a project name still work fine.


Write Protection

Your notes are now protected from accidental overwriting. If a note already exists, your AI will let you know instead of silently replacing it.

  • To explicitly replace an existing note, the AI passes overwrite=True
  • For small changes to existing notes, use edit_note instead
  • If you prefer the old behavior, you can restore it in your configuration

Smarter Note Editing

edit_note gains two new operations: insert_before_section and insert_after_section. These let your AI insert content relative to a section heading without replacing what's already there.

For example, if your AI needs to add a new section before "## Relations" or append context after "## Observations," these operations handle it cleanly — preserving existing content and maintaining proper spacing.

The full set of edit_note operations is now: append, prepend, find_replace, replace_section, insert_before_section, and insert_after_section.


JSON Output Mode

All tools now support a structured JSON output format for developers building integrations or pipelines. The default human-readable text output is unchanged.

See the MCP Tools Reference for details.


Richer Note Metadata

When creating notes, your AI can now set the note type and add custom properties automatically. For example:

You: "Write up a note about today's sprint planning meeting"

AI: [Creates a meeting note with type, sprint number, team, and status
     all set in the metadata — ready for searching and filtering later]

The note type helps schemas and search work better, and custom properties make it easy to find notes later by filtering on fields like status, team, or sprint.


Dashboard (bm project info)

The bm project info command now shows a visual dashboard with your project stats at a glance — note types, search index health, and embedding coverage.

╭────────────────────────────────────── specs ──────────────────────────────────────╮
│ Knowledge Graph         Embeddings                                                │
│ Entities         110    ● Semantic Search           Enabled                       │
│ Observations     585      Provider                  fastembed                     │
│ Relations        319      Model                     bge-small-en-v1.5             │
│ Unresolved       131      Indexed                                                 │
│ Isolated          27    █████░░░░░░░░░░░░░░░                                      │
│                         26/110                                                    │
│                           Chunks                    4085                          │
│                         ● Status                    Reindex recommended           │
│                           Reason                    260 orphaned chunks found     │
│                                                     (interrupted indexing) — run: │
│                                                     bm reindex --embeddings       │
│                                                                                   │
│ Note Types                                                                        │
│               note  ████████████████████████████████████████  72                  │
│               spec  ███████████████████░░░░░░░░░░░░░░░░░░░░░  35                  │
│               file  █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   2                  │
│           tasklist  █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   1                  │
│                                                                                   │
│                                                                                   │
│ /specs  default: main  2026-03-02 05:14                                           │
╰─────────────────────────────── Basic Memory 0.00.0 ───────────────────────────────╯

Note User Tracking

Notes now track created_by and last_updated_by fields for attribution, so you can see whether a note was created by a human or an AI assistant.


--json CLI Flags

Five additional CLI commands now support --json for structured output, making all major commands scriptable for automation and CI pipelines.


Upgrading from v0.18? Some defaults have changed. See the v0.19 Migration Guide for details.

Documentation

For commit-level release history, see Changelog.