Semantic Search

MUR indexes two different things and searches both the same way: your codebase and your knowledge (skills and notes). Both use LanceDB for vector storage combined with BM25 keyword scoring, so every query is ranked on meaning and on exact term matches at once.

Embedding Setup

Both indexes are built with the embedding provider configured in ~/.mur/config.yaml.

Ollama (default — free, local)

No API key. Runs entirely on your machine:

ollama pull qwen3-embedding:0.6b
# ~/.mur/config.yaml
embedding:
  provider: ollama
  model: qwen3-embedding:0.6b
  dimensions: 1024

OpenAI

# ~/.mur/config.yaml
embedding:
  provider: openai
  model: text-embedding-3-small
  dimensions: 1536
  api_key_ref: keychain:mur/openai   # or: api_key_env: OPENAI_API_KEY

provider also accepts gemini and anthropic. api_key_ref takes a secret ref and wins over api_key_env when both are set.

dimensions is fixed once an index exists. Changing the model or the dimension count means rebuilding: mur project index --rebuild for a codebase, mur internals reindex for the knowledge index.

See Configuration for the full model table and the memory cost of each Ollama model.

Searching Your Codebase

Index a repo once, then ask for code by what it does rather than what it is called:

cd path/to/repo
mur project index
mur project search "where do we validate the auth token"

Results carry the file path, line numbers and a relevance score.

mur project search "retry with backoff" --limit 10
mur project search "rate limiting" --all      # every indexed project, not just this one
mur project search "session cleanup" --json   # machine-readable

mur project index also installs a post-commit hook, so the index refreshes itself on every commit — you index a repo once, not once per change. Indexes live in ~/.mur/indexes/codebase/<project>.lance.

Housekeeping:

mur project status     # is this repo indexed, and how fresh
mur project list       # every indexed project
mur project remove     # drop an index and reclaim its disk

Searching Your Knowledge

mur skill search "swift testing"          # remote registry
mur skill search "swift testing" --local  # only what is installed
mur notes search "deployment checklist"

The knowledge index is rebuilt from the YAML files under ~/.mur/:

mur internals reindex

YAML is always the source of truth, so this index is disposable — deleting it costs you a rebuild, never data.

From Your AI Tool

The MCP server exposes the same indexes mid-conversation, so an assistant can search without you leaving the chat:

  • mur_project_search — the codebase index
  • mur_notes_search — notes and patterns
  • mur_project_status — which projects are indexed and how fresh

See Claude Code for wiring it up.

See Also