Skip to content

Architecture

Dimple turns notes, conversation turns, and source code into memory units. Each unit holds content, metadata, and an optional embedding. Search combines vector and keyword results to find relevant units.

The SDK, the CLI, and the MCP server all reach the same memory system. Local data lives in dimple.db, and the job queue in jobs.db.
PartWhat it doesLearn more
Memory unitsStore text, code, facts, and lifecycle state in one format.Memory units
Topic treeGroup memories by embedding similarity and keep topic membership current.Topic tree
RetrievalCombine vector and keyword search, then rank the results.Retrieval
Artifact graphRecord support, supersession, contradiction, and code calls between items.Artifact graph
ConceptsLabel clusters of related memories.Concepts
Background jobsRun structural work and retry it after a failure.Durable jobs
  1. Dimple embeds the query with the selected embedding model.
  2. It searches the vector index and the full-text index with the same namespace, topic, and content-type filters.
  3. It combines the ranked lists and returns the requested number of memories.

The SDK query path uses explicit topic membership filters. It does not descend the tree to choose search leaves. It also does not add graph context to the fused results yet.

The default setup stores data in local SQLite files:

FileContents
dimple.dbMemories, topic tree, graph edges, concepts, and retrieval audit records.
jobs.dbDurable job queue and workflow state.

Both URLs can point to a remote libSQL database. A single remote database can hold both sets of tables. See the configuration reference for connection details.