Skip to main content
Glama
primeline-ai

kairn

Official
by primeline-ai

Kairn

kairn

Kontextbewusste Wissens-Engine für KI-Assistenten.

Status: Alpha. Die API und die CLI sind funktionsfähig und getestet (siehe Entwicklung), aber die Schnittstellen können sich zwischen den Versionen noch ändern. Feedback und Issues sind willkommen.

Andere Tools geben Ihrer KI ein Gedächtnis. Kairn gibt ihr einen Wissensgraphen mit intelligentem Kontext-Routing. Es weiß, was es laden soll, wann es es laden soll und wie viel – damit Ihre KI fokussiert bleibt und nicht überfordert wird.

pip install kairn-ai
kairn init ~/brain
kairn serve ~/brain

Fügen Sie es in einer Zeile zu Claude Code hinzu:

claude mcp add kairn -- kairn serve ~/brain

Oder installieren Sie es als Ein-Klick-Bundle, ohne Python-Einrichtung: Laden Sie die .mcpb-Datei aus der neuesten Version herunter und öffnen Sie sie mit einer Bundle-fähigen App wie Claude Desktop.

Für andere Clients siehe Schnellstart unten. Neu bei Kairn? Springen Sie zu Erste 5 Minuten.

Installationswege

Route

Für wen

Befehl

PyPI

jeder mit Python und jeder MCP-Client

pip install kairn-ai

MCP Bundle (.mcpb)

Claude Desktop und andere Bundle-fähige Apps; keine Python-Installation nötig

download from Releases and open it

Claude Code

eine Zeile, nutzt die PyPI-Installation

claude mcp add kairn -- kairn serve ~/brain

Das Bundle enthält keinen eigenen Kairn-Quellcode. Es deklariert kairn-ai als Abhängigkeit und der Host löst sie mit uv auf, sodass eine Bundle-Installation und eine pip install identischen Code ausführen. Wo die Datenbank gespeichert wird, ist bei der Installation des Bundles konfigurierbar; standardmäßig liegt sie in ~/.kairn und verlässt nie Ihren Rechner.

Related MCP server: Mnemosyne

Warum Kairn?

Jede KI-Konversation beginnt bei null. Frühere Erkenntnisse, Entscheidungen und Muster – weg. Bestehende Gedächtnis-Tools speichern flache Schlüssel-Wert-Paare, die keine Beziehungen darstellen oder den richtigen Kontext zur richtigen Zeit anzeigen können.

Kairn ist anders:

  • Kontext-Router + Progressive Disclosure – Lädt automatisch relevante Teilgraphen basierend auf Schlüsselwörtern, beginnt mit Zusammenfassungen und geht nur bei Bedarf ins Detail. Kein anderes Tool macht das.

  • Wissensgraph mit FTS5 – Keine flache Speicherung. Typisierte Beziehungen (depends-on, resolves, causes) zwischen Knoten mit Herkunftsverfolgung und Volltextsuche über alles.

  • Erfahrungsabfall + Auto-Promotion – Erfahrungen verlieren im Laufe der Zeit an Relevanz (biologisches Abklingmodell). Häufig abgerufene Erfahrungen werden automatisch zu permanentem Wissen befördert. Ihre KI vergisst natürlich, was nicht wichtig ist.

  • 22 MCP-Tools – Funktioniert mit Claude Desktop, Cursor, VS Code, Windsurf und jedem MCP-Client. Enthält kn_judge für 5-Verb-Beziehungsurteile und kn_doctor für schreibgeschützte Gesundheitsdiagnosen.

  • Pro-Workspace-Isolation – Jeder Workspace ist ein eigener isolierter SQLite-Speicher. JWT-Authentifizierung und rollenbasierte Zugriffskontrolle (Owner / Maintainer / Contributor / Reader) sind für Team-Bereitstellungen enthalten.

Schnellstart

Claude Desktop

Fügen Sie zu ~/Library/Application Support/Claude/claude_desktop_config.json hinzu:

{
  "mcpServers": {
    "kairn": {
      "command": "kairn",
      "args": ["serve", "~/brain"]
    }
  }
}

Cursor

Fügen Sie zu .cursor/mcp.json hinzu:

{
  "mcpServers": {
    "kairn": {
      "command": "kairn",
      "args": ["serve", "~/brain"],
      "env": {
        "KAIRN_LOG_LEVEL": "WARNING"
      }
    }
  }
}

VS Code

Fügen Sie zu .vscode/mcp.json hinzu:

{
  "servers": {
    "kairn": {
      "type": "stdio",
      "command": "kairn",
      "args": ["serve", "~/brain"]
    }
  }
}

Windsurf

Fügen Sie zu ~/.codeium/windsurf/mcp_config.json hinzu:

{
  "mcpServers": {
    "kairn": {
      "command": "kairn",
      "args": ["serve", "~/brain"]
    }
  }
}

Starten Sie Ihren Editor neu. Kairns 22 Tools erscheinen im MCP-Bereich.

Erste 5 Minuten

Ein geführter erster Durchlauf, Ende zu Ende:

pip install kairn-ai
kairn init ~/brain              # creates the workspace + database

Fügen Sie den Einzeiler von oben (oder das Schnellstart-Snippet Ihres Clients) hinzu und starten Sie dann den Client neu. Sobald die Verbindung steht, bitten Sie Ihren Assistenten, sich etwas zu merken:

„Denken Sie daran, dass wir Postgres gegenüber SQLite für den Analysedienst gewählt haben, weil wir gleichzeitige Schreiber benötigten."

Das ruft intern kn_learn auf und gibt einen JSON-Envelope wie diesen zurück (aufgezeichnet von einem echten Lauf, über kairn learn, das CLI-Pendant des Tools):

{"_v": "1.0", "stored_as": "node", "node_id": "002d9c22", "experience_id": "d0710c2f", "type": "decision", "confidence": "high", "namespace": "knowledge", "candidates": []}

Starten Sie eine neue Sitzung und bitten Sie sie, sich an dasselbe zu erinnern – das ruft kn_recall auf und zeigt, was Sie gerade gespeichert haben, ohne erneutes Erklären:

{"_v": "1.0", "count": 2, "results": [
  {"source": "node", "id": "002d9c22", "name": "Decision: we chose Postgres over SQLite for the analytics service beca", "type": "learned_decision", "description": "we chose Postgres over SQLite for the analytics service because we needed concurrent writers", "relevance": 1.0},
  {"source": "experience", "id": "d0710c2f", "type": "decision", "content": "we chose Postgres over SQLite for the analytics service because we needed concurrent writers", "confidence": "high", "relevance": 1.0}
]}

kn_learn speicherte sowohl einen permanenten Graphknoten als auch eine abklingende Erfahrung (hohe Konfidenz macht beides, siehe Konfidenz-Routing); kn_recall fand beide aus einem Drei-Wort-Thema.

Führen Sie jederzeit kairn status ~/brain als Smoke-Test aus – wenn es einen JSON-Statistikblock (Knoten/Kanten/Erfahrungszahlen) ausgibt, ist der Workspace gesund. Möchten Sie stattdessen eine skriptgeführte Tour durch alle Kernfunktionen, anstatt es manuell zu tun? Führen Sie kairn demo ~/brain aus – es führt Sie in etwa 30 Sekunden durch Knotenerstellung, Abfragen, Erfahrungsspeicherung, Lernen, Abrufen und Kontext.

Welches Tool wann

22 Tools sind am ersten Tag viel, um sie im Kopf zu behalten. Die meisten Sitzungen benötigen nur diese:

Sie möchten...

Tool

Warum

Sich etwas Neues merken (eine Entscheidung, Stolperfalle, Muster, Lösung)

kn_learn

Standard-Einstiegspunkt – leitet automatisch zu einem permanenten Knoten (hohe Konfidenz) oder einer abklingenden Erfahrung (mittel/niedrig) weiter, Sie müssen nicht selbst entscheiden

Eine geäußerte Benutzerpräferenz im Moment der Äußerung erfassen

kn_preference

Dedizierter Präferenz-Schreibpfad – Sie (das aufrufende Modell) geben die Präferenz als einen expliziten Satz an; gespeichert mit der längsten Halbwertszeit aller Typen

Ein permanentes benanntes Konzept hinzufügen, von dem Sie bereits wissen, dass es dauerhaft ist

kn_add

Überspringt den Abfall vollständig – für strukturelles Wissen, nicht für alltägliche Erfahrung

Eine einmalige Erfahrung mit expliziter Konfidenz-/Abfallkontrolle protokollieren

kn_save

Niedrigere Primitive, die kn_learn umschließt – greifen Sie darauf zu, wenn Sie Konfidenz/Abfall selbst festlegen möchten

Den permanenten Wissensgraphen nach Text, Typ, Tags oder Namespace durchsuchen

kn_query

Sie suchen nach Knoten, nicht nach abklingenden Erfahrungen

Gespeicherte Erfahrungen durchsuchen, sortiert nach Relevanz und Abfall

kn_memories

Sie suchen nach Erfahrungsinhalten (Lösungen, Stolperfallen, Workarounds), nicht nach Graphknoten

Alles Relevante zu einem Thema in einem Aufruf anzeigen

kn_recall (flache Liste) oder kn_context (Teilgraph, progressive Offenlegung: zuerst Zusammenfassung, auf Anfrage volle Details)

Sie wissen noch nicht, ob die Antwort ein Knoten oder eine Erfahrung ist – lassen Sie Kairn beides durchsuchen

Alles andere (kn_crossref, kn_related, kn_connect, kn_judge, kn_project/kn_projects/kn_log, kn_idea/kn_ideas, kn_promote_pending, kn_prune, kn_remove, kn_status, kn_doctor) ist fortgeschrittene Nutzung – siehe die vollständige Referenz 22 Tools unten, sobald Sie über die Grundlagen hinaus sind.

22 Tools (kn_-Präfix)

Alle Tools folgen dem MCP-Protokoll mit JSON-Antworten.

Graph (6)

Tool

Beschreibung

kn_add

Knoten zum Wissensgraphen hinzufügen

kn_connect

Typisierte Kante zwischen Knoten erstellen (Vokabular im Lax-Modus)

kn_judge

5-Verb-Urteilskante aufzeichnen (strenger Modus: conflicts_with / supersedes / compatible / scoped / related)

kn_query

Nach Text, Typ, Tags, Namespace suchen

kn_remove

Knoten oder Kante weich löschen (rückgängig machbar)

kn_status

Graphstatistiken, Gesundheit, Systemübersicht

Projektgedächtnis (3)

Tool

Beschreibung

kn_project

Projekt erstellen oder aktualisieren

kn_projects

Projekte auflisten, aktives wechseln

kn_log

Fortschritts- oder Fehlereintrag protokollieren

Erfahrungsgedächtnis (5)

Tool

Beschreibung

kn_save

Erfahrung mit Abfall speichern

kn_preference

Eine geäußerte Benutzerpräferenz zum Zeitpunkt der Äußerung erfassen (längste Halbwertszeit)

kn_memories

Abfallbewusste Erfahrungssuche

kn_prune

Abgelaufene Erfahrungen entfernen

kn_promote_pending

Häufig abgerufene Erfahrungen zu permanenten Knoten befördern

Ideen (2)

Tool

Beschreibung

kn_idea

Idee erstellen oder aktualisieren

kn_ideas

Ideen nach Status, Kategorie auflisten/filtern

Intelligenz (5)

Tool

Beschreibung

kn_learn

Wissen mit Konfidenz-Routing speichern

kn_recall

Relevantes vergangenes Wissen anzeigen

kn_crossref

Ähnliche vergangene Lösungen im aktuellen Workspace finden

kn_context

Schlüsselwörter → relevanter Teilgraph mit progressiver Offenlegung

kn_related

Graphdurchlauf (BFS) zum Finden verbundener Knoten

Diagnose (1)

Tool

Beschreibung

kn_doctor

Schreibgeschützte Health-Checks (Lock-Modus, FTS5-Parität, Promotion-Backlog, Namespace-Ausbreitung, verwaiste Kanten) – liefert eine strukturierte Hülle mit Bewertungen pro Check und einer Zusammenfassung

Ressourcen & Prompts

Ressourcen (schreibgeschützter Kontext für MCP-Clients):

  • kn://status – Graphenübersicht, aktives Projekt

  • kn://projects – Alle Projekte mit aktuellem Fortschritt

  • kn://memories – Aktuelle Erlebnisse mit hoher Relevanz

Prompts (Sitzungsverwaltung):

  • kn_bootup – Aktives Projekt, aktuellen Fortschritt und Top-Erinnerungen laden (Sitzungsstart)

  • kn_review – Sitzung zusammenfassen und nächste Schritte vorschlagen (Sitzungsende)

So funktioniert es

Architektur

Any MCP Client (Claude, Cursor, VS Code)
        │
        ▼ MCP Protocol (stdio)
FastMCP Server (22 tools)
        │
   ┌────┼────┐
   ▼    ▼    ▼
Graph  Memory  Intelligence
Engine Engine  Layer
   │    │      │
   └────┼──────┘
        ▼
   SQLite + FTS5
   (per-workspace)

Abklingmodell

Erlebnisse nehmen exponentiell an Relevanz ab:

relevance(t) = initial_score × e^(-decay_rate × days)

Typ

Halbwertszeit

Hinweise

solution

120 Tage

Stabil, dauerhaft

pattern

90 Tage

Architekturwissen

decision

100 Tage

Kontextabhängig

workaround

40 Tage

Temporäre Fixes verblassen schnell

gotcha

70 Tage

Knifflige Fallstricke bleiben relevant

preference

180 Tage

Dauerhafte Benutzerpräferenzen – erste Schätzung, noch nicht anhand des Schwanzes kalibriert

Die Halbwertszeiten werden anhand des realen Zugriffsschwanzes eines Produktions-Erlebnisspeichers kalibriert, nicht geraten (eine Ausnahme: preference ist ein neuer Typ ohne Zugriffshistorie, daher ist sein Wert eine dokumentierte Ersteinschätzung, bis echte Daten vorliegen).

Konfidenz-Routing über kn_learn:

  • high → Permanenter Knoten + Erlebnis (kein Abklingen)

  • medium → Erlebnis mit 2× Abklingen

  • low → Erlebnis mit 4× Abklingen

  • Automatische Hochstufung: 5+ Zugriffe → permanenter Knoten

  • Knotenzugriffsverfolgung: kn_recall, kn_context und kn_crossref protokollieren, auf welche Knoten zugegriffen wurde, und speisen die Abkling- und Hochstufungspipeline

Benchmarks

Kairn-Benchmark-Ergebnis: 56,2 % gesamt bei LongMemEval-S, 500 Fragen bewertet, Genauigkeit pro Kategorie von 91,4 % bis zu einer veröffentlichten schwachen Zelle von 10,0 %

Kairn erreicht 56,2 % gesamt bei LongMemEval-S (500/500 Fragen bewertet, GPT-4o-Reader + Judge, einzelner Lauf, 0 Fehler). Dies sind die realen Zahlen pro Kategorie, einschließlich der schlechten – jede rote Zelle verlinkt auf ihre Diagnose:

Kategorie

n

Genauigkeit

Diagnose

single-session-user

70

91,4 %

-

single-session-assistant

56

83,9 %

-

knowledge-update

78

70,5 %

-

temporal-reasoning

133

42,9 %

warum

multi-session

133

41,4 %

warum

single-session-preference

30

10,0 %

warum

Die 500 Fragen umfassen 30 Enthaltungsvarianten (die richtige Antwort ist, abzulehnen); sie sind innerhalb ihrer Kategorien oben enthalten und werden separat bewertet: Kairn lehnt bei 96,7 % von ihnen korrekt ab.

Die Abruflatenz beträgt ~1,4 ms pro Abfrage (FTS5, prozessintern, ohne Netzwerk). Protokoll, Ehrlichkeitshinweise und Reproduktionsschritte: BENCHMARKS.md.

Diese Ergebnistafel bleibt aktuell: Jede Veröffentlichung, die den Abruf betrifft, veröffentlicht diese Zahlen neu, und eine schwache Zelle bleibt auf der Tafel, bis sich die Zahl tatsächlich ändert. Keine ausgewählten Läufe, keine versteckten Kategorien.

CLI

kairn init <path>              # Initialize workspace
kairn serve <path>             # Start MCP server (stdio)
kairn status <path>            # Graph stats
kairn demo <path>              # Interactive tutorial
kairn benchmark <path>         # Local performance benchmarks (latency, not LongMemEval)
kairn token-audit <path>       # Audit tool token usage
kairn import git <path> <repo>...  # Import git commit history (zero-LLM, offline)
kairn import claude-code <path>    # Import Claude Code session history (zero-LLM, offline)

Importieren deines Verlaufs

kairn import git <workspace> <repo>... befüllt einen Kairn-Speicher aus einem oder mehreren lokalen Git-Repositories zum Preis von $0 – keine LLM-Aufrufe, keine Netzwerkaufrufe. Conventional-Commit- Präfixe werden Erlebnistypen zugeordnet (fix: -> solution, feat:/refactor:/perf: -> pattern, alles andere -> decision); Merge-Commits werden übersprungen. Importierte Erlebnisse landen in einem eigenen imported-git-Namespace, getrennt von deinem organischen Wissen, sodass sie immer unterscheidbar sind und ein schlechter Import vollständig rückgängig gemacht werden kann.

kairn import git ~/brain ~/code/my-project --dry-run   # Preview first
kairn import git ~/brain ~/code/my-project              # Then import for real
kairn import git ~/brain ~/code/proj-a ~/code/proj-b --since 2026-01-01

Idempotent – ein erneuter Lauf importiert nur Commits, die noch nicht importiert wurden, sodass es sicher ist, erneut ausgeführt zu werden, wenn die Historie eines Repositories wächst.

Claude-Code-Transkripte

kairn import claude-code <workspace> befüllt deinen Kairn-Speicher aus deiner vorhandenen Claude-Code-Sitzungshistorie, ebenfalls zum Preis von $0 und vollständig offline. Ohne --root scannt es ~/.claude/projects (und ~/.claude-secondary/projects, falls du ein zweites Konto hast); --root PATH ist eine wiederholbare Überschreibung. Importierte Erlebnisse landen in ihrem eigenen imported-claude-code-Namespace, sodass sie von deinem organischen Wissen getrennt bleiben und ein schlechter Import rückgängig gemacht werden kann.

kairn import claude-code ~/brain --dry-run              # Review exactly what would be stored
kairn import claude-code ~/brain                        # Import (prompts once before writing)
kairn import claude-code ~/brain --root ~/other/projects --since 2026-01-01 --yes

Was gespeichert wird (grober Modus): ein Erlebnis pro Sitzung – der Titel der Sitzung plus dein erster Prompt dieser Sitzung. Dies ist bewusst eine detaillarme, präzise Zusammenfassung und keine feingranulare Extraktion einzelner Entscheidungen: Ein regelbasierter Extraktor ohne LLM kann eine erfasste Entscheidung nicht zuverlässig von gewöhnlichem Planungsgeplauder unterscheiden, daher importiert import claude-code einen sauberen Zeiger auf Sitzungsebene statt verrauschter Fragmente. Es ist kein vollständiges Transkriptarchiv und keine einmalige Migration – es ist idempotent und soll erneut ausgeführt werden, wenn deine Historie wächst.

Datenschutz. Jede gespeicherte Zeichenkette wird zuerst durch einen deterministischen Geheimnis-Redaktor geleitet (API-Schlüssel, Authorization/Bearer-Header, password=/token=/secret=-Zuweisungen, gängige Anbieter-Schlüsselformen, Private-Key-Blöcke, in URLs eingebettete Anmeldedaten). Tool-Ausgaben und Tool-Aufrufblöcke werden nie gelesen, nur dein eigener Prompt-Text. Der Redaktor ist Verteidigung in der Tiefe, nicht die einzige Kontrolle: Ein echter (nicht-Trockenlauf-)Lauf ist hinter einer expliziten Bestätigung gesperrt, und --dry-run zeigt dir den exakten Text nach der Redaktion, bevor etwas geschrieben wird. Die Redaktion ist durch ihre Regelsätze begrenzt, daher wird eine --dry-run-Überprüfung vor einem ersten echten Import empfohlen; nichts verlässt jemals deinen Rechner.

Konfiguration

KAIRN_LOG_LEVEL=INFO|DEBUG|WARNING    # Default: WARNING
KAIRN_DB_PATH=~/brain/.kairn         # Default: {workspace}/.kairn
KAIRN_CACHE_SIZE=100                  # LRU cache entries
KAIRN_JWT_SECRET=<your-secret>        # Required for team features

Entwicklung

git clone https://github.com/primeline-ai/kairn
cd kairn
pip install -e ".[dev,team]"
pytest tests/ -v --cov
ruff check src/ && ruff format src/

Projektstruktur

src/kairn/
├── server.py              # FastMCP server + 22 tools
├── cli.py                 # CLI commands
├── config.py              # Configuration
├── core/
│   ├── graph.py           # GraphEngine (6 tools)
│   ├── memory.py          # ProjectMemory (3 tools)
│   ├── experience.py      # ExperienceEngine (4 tools)
│   ├── ideas.py           # IdeaEngine (2 tools)
│   ├── intelligence.py    # IntelligenceLayer (5 tools)
│   └── router.py          # ContextRouter
├── storage/
│   ├── base.py            # Storage interface
│   └── sqlite_store.py    # SQLite + FTS5 implementation
├── models/                # Data models
├── events/                # Event bus
└── auth/                  # JWT + RBAC (team feature)

Leistung

Typische Betriebszeiten auf moderner Hardware:

Operation

Zeit

kn_add

2–5 ms

kn_query (100 Knoten)

5–15 ms

kn_connect

1–3 ms

kn_recall (Graph-Traversierung)

10–50 ms

kn_crossref (Ähnlichkeitssuche)

20–100 ms

Verwendet von

Projekt

Was es mit Kairn macht

Quantum Lens

Persistente Einsichtsspeicherung, Musterverfolgung über Analysen hinweg, Linsen-Effektivitätsmetriken

Claude Code Starter System

Sitzungsspeicher, Projektzustand, Lernpersistenz

Lizenz

MIT


Teil des PrimeLine-Ökosystems

Tool

Was es tut

Deep Dive

Evolving Lite

Selbstverbesserndes Claude-Code-Plugin – Speicher, Delegation, Selbstkorrektur

Blog

Kairn

Persistenter Wissensgraph mit Kontext-Routing für KI

Blog

tmux Orchestration

Parallele Claude-Code-Sitzungen mit Heartbeat-Überwachung

Blog

UPF

3-stufige Planung mit adversarischer Härtung

Blog

Quantum Lens

7 kognitive Linsen für multiperspektivische Analyse

Blog

PrimeLine Skills

5 produktionsreife Workflow-Fähigkeiten für Claude Code

Blog

Starter System

Leichtgewichtiger Sitzungsspeicher und Übergaben

Blog

@PrimeLineAI · primeline.cc · Kostenloser Leitfaden

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides persistent, graph-based memory for AI agents via MCP, enabling semantic search, wikilink traversal, reminders, and injection protection.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to have persistent long-term memory by automatically storing and retrieving important information via MCP tools.
    MIT

View all related MCP servers

Related MCP Connectors

  • Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.

  • Shared long-term memory vault for AI agents with 20 MCP tools.

  • Person-owned AI memory that learns, not just stores — portable context for any MCP client.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/primeline-ai/kairn'

If you have feedback or need assistance with the MCP directory API, please join our Discord server