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.0-cp39-abi3-manylinux_2_34_x86_64.whl (445.2 kB view details)

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

File details

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

File metadata

File hashes

Hashes for kronroe-0.3.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 de60fb0a12842f5333ba80f44ae9f5516215a0f351df153c3086996f5fd6f269
MD5 1cc84cd69467c444f838d9276ed4d069
BLAKE2b-256 533d9dcbf8346552d2cf3f4ea7b4dc20b305e4893dae68eb6fa36bcfb28278a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for kronroe-0.3.0-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