Getting Started
Up and running in
Up and running in
5 minutes
No Docker. No cloud account. No configuration required to start.
Go 1.23+ macOS / Linux / Windows No external deps
1
Install MuninnDB
Build from source (until binaries are published):
bash
git clone https://github.com/scrypster/muninndb
cd muninndb
go build -o muninndb ./cmd/muninndb
./muninndb --version 2
Start the server
MuninnDB starts 4 endpoints at once — binary protocol, gRPC, REST, and the web UI:
bash
./muninndb serve
# Output:
# MuninnDB v0.1.0 starting...
# MBP listening on :8747
# gRPC listening on :8748
# REST listening on :8749
# Web UI listening on :8750 Open the web UI
Visit http://localhost:8750 for the visual dashboard — decay charts, relationship graphs, live activation log.
3
Create an API key
bash
# REST endpoint to create a key
curl -X POST http://localhost:8749/v1/keys \
-H "Content-Type: application/json" \
-d '{"name": "my-agent", "vault": "default"}'
# Returns:
# {"key": "mn_live_abc123...", "vault": "default"} 4
Store your first memory
Using the Go or Python SDK:
package main
import (
"context"
"fmt"
"github.com/scrypster/muninndb/sdk/go/muninn"
)
func main() {
ctx := context.Background()
mem := muninn.NewMemory("mn_live_abc123", "muninn://localhost:8747")
// Store a memory engram
e, err := mem.Store(ctx, &muninn.StoreRequest{
Concept: "user prefers dark mode",
Content: "Always render UI in dark theme for this user",
Tags: []string{"preference", "ui"},
Confidence: 0.9,
})
fmt.Printf("Stored engram: %s\n", e.ID)
_ = err
} import muninn
mem = muninn.Memory("mn_live_abc123", "muninn://localhost:8747")
# Store a memory engram
e = mem.store(
concept="user prefers dark mode",
content="Always render UI in dark theme for this user",
tags=["preference", "ui"],
confidence=0.9,
)
print(f"Stored engram: {e.id}") 5
Activate relevant memories
// Find the top 5 most relevant memories for a context
results, err := mem.Activate(ctx, "what does the user want?", 5)
for _, r := range results.Engrams {
fmt.Printf("%.2f — %s\n", r.Score, r.Concept)
fmt.Printf(" Why: %s\n", r.Why)
}
// Output:
// 0.94 — user prefers dark mode
// Why: BM25 match (0.78) + Hebbian boost (0.16) # Find the top 5 most relevant memories for a context
results = mem.activate("what does the user want?", limit=5)
for r in results.engrams:
print(f"{r.score:.2f} — {r.concept}")
print(f" Why: {r.why}")
# Output:
# 0.94 — user prefers dark mode
# Why: BM25 match (0.78) + Hebbian boost (0.16) That's it
MuninnDB automatically handles decay, Hebbian learning, and association building from here. Your memories improve the more they're used.