This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Reason given by maintainers: Project being relicensed under commercial-only terms
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
- GitHub — source, issues, contributing
- Commercial licence — for proprietary/SaaS use
- MCP server — 11 tools for AI assistants
Licence
Dual-licensed: AGPL-3.0 for open-source use, Commercial for proprietary products.
Copyright 2026 Kindly Roe Ltd.
Metadata
Release files for kronroe 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| kronroe-0.3.1-cp39-abi3-manylinux_2_34_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.34+ x86-64 | Details for kronroe-0.3.1-cp39-abi3-manylinux_2_34_x86_64.whl |
Release files / kronroe-0.3.1-cp39-abi3-manylinux_2_34_x86_64.whl
| Download URL | kronroe-0.3.1-cp39-abi3-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 445.4 kB |
| Tags | CPython 3.9 Linux glibc 2.34+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
2ba54fe1001a226ef0adc4f6c3becc7c7790216bba0a3cd8f78f0005af704a95
|
|
BLAKE2b-256 checksum How to use checksums |
e1fdac3b51826f206db3e3bd1e8e0bb569ebf1aea20de656311809a911e47f19
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 24, 2026.
Transparency logSecurity for kronroe 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
1 file in this release has been uploaded with provenance metadata.
Attestation for kronroe-0.3.1-cp39-abi3-manylinux_2_34_x86_64.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 24, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.