Skip to main content

Python bindings for Kronroe temporal graph database

Project description

Kronroe

Embedded bi-temporal graph database for AI agent memory.

Kronroe is a Rust-native temporal property graph engine with Python bindings. It treats bi-temporal facts as a first-class engine primitive — not an application concern. No server required. Runs on-device.

DuckDB didn't "do SQLite better" — it redesigned the engine for analytical workloads. Kronroe redesigns the embedded graph engine for temporal knowledge evolution.

Why Kronroe?

Kronroe Graphiti/Zep mcp-memory-service
Requires server No — embedded, single file Yes — Neo4j or FalkorDB No
Temporal model Bi-temporal (valid time + transaction time) Bi-temporal (via Neo4j) None
Mobile/edge support iOS, Android, WASM No No
LLM required No — engine-native operations Yes — entity extraction No
Contradiction detection Engine-native (Allen's interval algebra) LLM-based No
Confidence/uncertainty Engine-native decay model No No
Full-text search BM25 + fuzzy (Kronroe lexical engine) Via Neo4j No
Vector search Cosine similarity + temporal filtering Via Neo4j No
Licence AGPL-3.0 + Commercial Apache-2.0 MIT

Quickstart

from kronroe import AgentMemory

# Open a database (creates the file if it doesn't exist)
memory = AgentMemory.open("./my-agent.kronroe")

# Store facts — temporal metadata is handled by the engine
memory.assert_fact("alice", "works_at", "Acme")
memory.assert_fact("alice", "lives_in", "London")

# Search with natural language
results = memory.recall("where does Alice work?", limit=5)
for fact in results:
    print(f"{fact['subject']} {fact['predicate']} {fact['object']}")

# Get scored results with signal breakdown
scored = memory.recall_scored("Alice", limit=10)
for row in scored:
    print(f"{row['fact']['subject']}: {row['score']}")

# Assemble LLM-ready context with a token budget
context = memory.assemble_context("alice", max_tokens=200)
print(context)

# Store facts with confidence and source provenance
fact_id = memory.assert_with_confidence(
    "alice", "works_at", "Beta Corp", 0.95, source="hr:system"
)

# Correct a fact — old value is preserved in history, never deleted
memory.correct_fact(fact_id, "New Corp")

# Query all facts about an entity
facts = memory.facts_about("alice")

How it works

Every fact in Kronroe has four timestamps — the standard bi-temporal model:

  • valid_from / valid_to — when the fact was true in the real world
  • recorded_at / expired_at — when the database stored or retired it

This means you can query "what did we know about Alice on March 1st?" and get a different answer than "what do we know about Alice now?" — without writing any temporal logic yourself. The engine handles it.

Architecture

Pure Rust core. No C dependencies. Python bindings via PyO3.

The same engine also compiles to iOS (XCFramework), Android (JNI), WASM (browser), and runs as an MCP server with 11 tools for Claude Desktop, Cursor, and other MCP clients.

Low-level API

For direct engine access without the agent memory layer:

from kronroe import KronroeDb

db = KronroeDb.open("./data.kronroe")
fact_id = db.assert_fact("alice", "works_at", "Acme")
results = db.search("alice Acme", limit=10)

Links

Licence

Dual-licensed: AGPL-3.0 for open-source use, Commercial for proprietary products.

Copyright 2026 Kindly Roe Ltd.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kronroe-0.3.1-cp39-abi3-manylinux_2_34_x86_64.whl (445.4 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.34+ x86-64

File details

Details for the file kronroe-0.3.1-cp39-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for kronroe-0.3.1-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2ba54fe1001a226ef0adc4f6c3becc7c7790216bba0a3cd8f78f0005af704a95
MD5 8462c31f4a7d88bf77c13ada5ab8e582
BLAKE2b-256 e1fdac3b51826f206db3e3bd1e8e0bb569ebf1aea20de656311809a911e47f19

See more details on using hashes here.

Provenance

The following attestation bundles were made for kronroe-0.3.1-cp39-abi3-manylinux_2_34_x86_64.whl:

Publisher: python-publish.yml on kronroe/kronroe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page