Synapse
logo

Synapse is a domain-specific language and runtime for building memory systems for AI agents. You write .mnm files that declaratively define schemas, event handlers, queries, update policies, and channel connectors — compiled into a multi-backend runtime backed by SQLite, Qdrant, Neo4j, and 40+ messaging platform connectors.


Why Synapse?

Building memory for AI agents means juggling relational stores, vector databases, knowledge graphs, LLM extraction pipelines, and data ingestion from dozens of sources. Synapse unifies all of this behind a single, readable configuration language.

config {
  storage: sqlite("./data/agent.db")
  vector: auto("qdrant")
  graph: auto("neo4j")
  embedding: openai("text-embedding-3-small")
  extractor: openai("gpt-4o-mini")
}
 
memory Fact {
  content: string
  subject: string
  predicate: string
  object: string
  confidence: float[0,1]
  created_at: timestamp
 
  @index subject
  @index predicate
}
 
on ingest(content: string) {
  content |> extract() |> store()
}
 
query Search(input: string): Fact[] {
  from Fact
  where semantic_match(input, threshold: 0.6)
    and graph_match(input, hops: 2)
  order by confidence desc
  limit 10
}

One file. Multi-backend storage. LLM-powered extraction. Semantic and graph search. Update policies. Channel ingestion from Slack, Discord, Telegram, and 37 more platforms.

Key Features

Quick Start

# Build the CLI
cargo build --release -p synapse-cli
 
# Start a memory system
./target/release/synapse apply examples/hello.mnm
 
# Store a note
./target/release/synapse emit save '{"content": "Remember to buy milk"}'
 
# Query all notes
./target/release/synapse query GetAll

Ready to dive in? Start with the Getting Started guide.