{"id":45950023,"url":"https://github.com/tykolt/kremis","last_synced_at":"2026-04-01T19:57:59.655Z","repository":{"id":336486734,"uuid":"1146580514","full_name":"TyKolt/kremis","owner":"TyKolt","description":"A minimal graph engine for grounded AI — records, associates, and retrieves, but never invents. Written in Rust.","archived":false,"fork":false,"pushed_at":"2026-03-07T09:02:47.000Z","size":707,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-07T09:56:32.194Z","etag":null,"topics":["deterministic","embedded-database","explainable-ai","graph-database","mcp","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TyKolt.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"ko_fi":"tykolt"}},"created_at":"2026-01-31T10:30:23.000Z","updated_at":"2026-03-07T09:02:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TyKolt/kremis","commit_stats":null,"previous_names":["m2dr3g0n/kremis","tykolt/kremis"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/TyKolt/kremis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TyKolt%2Fkremis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TyKolt%2Fkremis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TyKolt%2Fkremis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TyKolt%2Fkremis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TyKolt","download_url":"https://codeload.github.com/TyKolt/kremis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TyKolt%2Fkremis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30332883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deterministic","embedded-database","explainable-ai","graph-database","mcp","rust"],"created_at":"2026-02-28T12:16:58.498Z","updated_at":"2026-04-01T19:57:59.639Z","avatar_url":"https://github.com/TyKolt.png","language":"Rust","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/logo/icon.svg\" alt=\"Kremis\" width=\"120\" height=\"120\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eKremis\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eDeterministic knowledge graph for AI that never hallucinates\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A minimal, graph-based cognitive substrate in Rust.\u003cbr\u003e\n  Records, associates, retrieves — but never invents.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/TyKolt/kremis/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/TyKolt/kremis/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://kremis.mintlify.app\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-mintlify-0D9373.svg\" alt=\"Docs\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-Apache%202.0-blue.svg\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.rust-lang.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/rust-1.89%2B-orange.svg\" alt=\"Rust\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/status-alpha-orange\" alt=\"Status\"\u003e\n\u003c/p\u003e\n\n\u003e **Alpha** — Functional and tested. Breaking changes may still occur before v1.0.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/demo.svg\" alt=\"Kremis Honesty Demo\" width=\"800\"\u003e\n\u003c/p\u003e\n\n---\n\n## Why Kremis\n\n| Problem | How Kremis addresses it |\n|---------|------------------------|\n| **Hallucination** | Every result traces back to a real ingested signal. Missing data returns explicit \"not found\" — never fabricated |\n| **Opacity** | Fully inspectable graph state. No hidden layers, no black box |\n| **Lack of grounding** | Zero pre-loaded knowledge. All structure emerges from real signals, not assumptions |\n| **Non-determinism** | Same input, same output. No randomness, no floating-point arithmetic in core |\n| **Data loss** | ACID transactions via `redb` embedded database. Crash-safe by design |\n\n\u003e [Design Philosophy](https://kremis.mintlify.app/philosophy) — why these constraints exist.\n\n---\n\n## Features\n\n- **Deterministic graph engine** — Pure Rust, no async in core, no floating-point. Same input always produces the same output\n- **CLI + HTTP API + MCP bridge** — Three interfaces to the same engine: terminal, REST, and AI assistants\n- **BLAKE3 hashing** — Cryptographic hash of the full graph state for integrity verification at any point\n- **Canonical export (KREX)** — Deterministic binary snapshot for provenance, audit trails, and reproducibility\n- **Zero baked-in knowledge** — Kremis starts empty. Every node comes from a real signal\n- **ACID persistence** — Default `redb` backend with crash-safe transactions\n\n---\n\n## Use Cases\n\n### AI agent memory via MCP\n\nGive Claude, Cursor, or any MCP-compatible assistant a verifiable memory layer. Kremis stores facts as graph nodes — the agent queries them, and every answer traces back to a real data point. No embeddings, no probabilistic retrieval.\n\n### LLM fact-checking\n\nIngest your data, let an LLM generate claims, then validate each claim against the graph. Kremis labels every statement as `[FACT]` or `[NOT IN GRAPH]` — no confidence scores, no ambiguity.\n\n### Provenance and audit trail\n\nExport the full graph as a deterministic binary snapshot, compute its BLAKE3 hash, and verify integrity at any point. Every node links to the signal that created it. Useful for compliance workflows where you need to prove what data was present and when.\n\n---\n\n## Honesty Demo\n\nIngest a few facts, let an LLM generate claims, and Kremis validates each one:\n\n```\n[FACT]          Alice is an engineer.              ← Kremis: \"engineer\"\n[FACT]          Alice works on the Kremis project. ← Kremis: \"Kremis\"\n[FACT]          Alice knows Bob.                   ← Kremis: \"Bob\"\n[NOT IN GRAPH]  Alice holds a PhD from MIT.        ← Kremis: None\n[NOT IN GRAPH]  Alice previously worked at DeepMind. ← Kremis: None\n[NOT IN GRAPH]  Alice manages a team of 8.         ← Kremis: None\n\nConfirmed by graph: 3/6\nNot in graph:       3/6\n```\n\nThree facts grounded. Three fabricated. No ambiguity.\n\n```bash\npython examples/demo_honesty.py            # mock LLM (no external deps)\npython examples/demo_honesty.py --ollama   # real LLM via Ollama\n```\n\n---\n\n## Quick Start\n\nRequires **Rust 1.89+** and Cargo.\n\n```bash\ngit clone https://github.com/TyKolt/kremis.git\ncd kremis\ncargo build --release\ncargo test --workspace\n```\n\n```bash\ncargo run -p kremis -- init                                          # initialize database\ncargo run -p kremis -- ingest -f examples/sample_signals.json -t json # ingest sample data\ncargo run -p kremis -- server                                        # start HTTP server\n```\n\nIn a second terminal:\n\n```bash\ncurl http://localhost:8080/health\ncurl -X POST http://localhost:8080/query \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"type\":\"lookup\",\"entity_id\":1}'\n```\n\n\u003e **Note:** CLI commands and the HTTP server cannot run simultaneously (`redb` holds an exclusive lock). Stop the server before using CLI commands.\n\n### Docker\n\n```bash\ndocker build -t kremis .\ndocker run -d -p 8080:8080 -v kremis-data:/data kremis\n```\n\n---\n\n## Architecture\n\n| Component | Description |\n|-----------|-------------|\n| **kremis-core** | Deterministic graph engine (pure Rust, no async) |\n| **apps/kremis** | HTTP server + CLI (tokio, axum, clap) |\n| **apps/kremis-mcp** | MCP server bridge for AI assistants (rmcp, stdio) |\n\nSee the [architecture docs](https://kremis.mintlify.app/architecture) for internals: data flow, storage backends, algorithms, export formats.\n\n---\n\n## Documentation\n\nFull reference at **[kremis.mintlify.app](https://kremis.mintlify.app)**:\n\n| Topic | Link |\n|-------|------|\n| Introduction | [kremis.mintlify.app/introduction](https://kremis.mintlify.app/introduction) |\n| Installation | [kremis.mintlify.app/installation](https://kremis.mintlify.app/installation) |\n| Quick Start | [kremis.mintlify.app/quickstart](https://kremis.mintlify.app/quickstart) |\n| Configuration | [kremis.mintlify.app/configuration](https://kremis.mintlify.app/configuration) |\n| CLI Reference | [kremis.mintlify.app/cli/overview](https://kremis.mintlify.app/cli/overview) |\n| API Reference | [kremis.mintlify.app/api/overview](https://kremis.mintlify.app/api/overview) |\n| MCP Server | [kremis.mintlify.app/mcp/overview](https://kremis.mintlify.app/mcp/overview) |\n| Philosophy | [kremis.mintlify.app/philosophy](https://kremis.mintlify.app/philosophy) |\n\n---\n\n## Testing\n\n```bash\ncargo test --workspace\ncargo clippy --all-targets --all-features -- -D warnings\ncargo fmt --all -- --check\n```\n\n---\n\n## License\n\n[Apache License 2.0](LICENSE)\n\nThe brand assets in [`docs/logo/`](docs/logo/) (logo, icon, favicon) are proprietary and not covered by the Apache 2.0 license. See [`docs/logo/LICENSE`](docs/logo/LICENSE).\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. The architecture is still evolving — open an [issue](https://github.com/TyKolt/kremis/issues) before submitting a PR.\n\n## Acknowledgments\n\nThis project was developed with AI assistance.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eKeep it minimal. Keep it deterministic. Keep it grounded. Keep it honest.\u003c/strong\u003e\n\u003c/p\u003e\n","funding_links":["https://ko-fi.com/tykolt"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftykolt%2Fkremis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftykolt%2Fkremis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftykolt%2Fkremis/lists"}