Spaces:
Running
title: Smriti — Temporal Event Memory for Business Workflows
emoji: 🕰️
colorFrom: red
colorTo: gray
sdk: docker
pinned: false
🕰️ Smriti — Temporal Event Memory
Give your business workflows, ops teams, and AI agents an auditable ledger of what happened, when, and with whom. Smriti decomposes operational events into concrete Subject-Verb-Object (SVO) tuples, stores them in a Bi-Temporal PostgreSQL architecture, and lets workflows reason precisely across time without hallucination.
📖 What is Smriti?
The Problem: Traditional "agent memory" relies on fuzzy vector databases that struggle with temporal drift and ambiguous chat facts. When tracking deals, deployments, contracts, or multi-step operational workflows, you don't need a chatbot to remember a favorite color—you need an auditable, deterministic event ledger.
The Solution: Smriti is a temporal event memory layer. It gives AI agents and business infrastructure a bi-temporal hippocampus that tracks state changes perfectly across systems and sessions.
| Feature | Smriti (Event Memory) | Traditional RAG (Chat Memory) |
|---|---|---|
| Structure | SVO Tuples: Tracks concrete actions (Agent → Deployed → Build42) |
Vector Sludge: Dumps unstructured text into a vector DB |
| Time | Bi-Temporal: Tracks both when it happened and when it was recorded | Timeless: Cannot distinguish old facts from current state |
| Updates | Supersession: Safely overrides state without deleting history | Overwrite: Hard deletes or creates confusing duplicates |
🚀 Quick Start (5 Minutes)
1. Get a Free API Key
curl -X POST "https://spy9191-chronos-api-backend.hf.space/billing/keys?tier=explorer"
2. Store a Memory
curl -X POST https://spy9191-chronos-api-backend.hf.space/ingest \
-H "X-API-Key: chrn_your_key" \
-d '{"source_id": "demo", "events": [{"text": "Alice joined as Lead Engineer on July 15"}]}'
3. Recall It
curl -X POST https://spy9191-chronos-api-backend.hf.space/query \
-H "X-API-Key: chrn_your_key" \
-d '{"query": "Who joined the team recently?"}'
What You Get Back
{
"results": [
{
"subject": "Alice",
"verb": "joined",
"object": "the team as Lead Engineer",
"timestamp": "2026-07-15T00:00:00Z",
"confidence_score": 0.94
}
]
}
🐘 Bring Your Own Database (BYODB) — Supabase
Want to keep your memory data in your own infrastructure? Smriti supports Bring Your Own Database (BYODB) using Supabase (PostgreSQL + pgvector).
With zero code changes, you can route all extracted memories, vectors, and conversation turns directly to your own Supabase project. The data never touches Smriti's cloud storage.
How it works
Just add the X-Supabase-Url header to your API requests (using the Session Pooler URL):
curl -X POST https://spy9191-chronos-api-backend.hf.space/ingest \
-H "X-API-Key: chrn_your_key" \
-H "X-Supabase-Url: postgresql://postgres.xxxx:pw@aws-0-REGION.pooler.supabase.com:5432/postgres" \
-d '{"source_id": "my-app", "events": [{"text": "Alice joined the team"}]}'
The Smriti pipeline runs exactly the same, but the final data lands in your database!
👉 Read the full 3-step setup guide here
🔌 MCP Server (Claude, Cursor, VS Code)
Smriti ships with a built-in Model Context Protocol (MCP) server, giving your local AI tools instant memory without you writing a single API call.
1. Install & Configure
pip install -r mcp/requirements.txt
Setup for Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"smriti": {
"command": "python",
"args": ["-m", "smriti.mcp"],
"cwd": "/path/to/smriti",
"env": {
"SMRITI_API_KEY": "chrn_your_key_here",
"SMRITI_SOURCE_ID": "claude-desktop"
}
}
}
}
Setup for Cursor
Add this to .cursor/mcp.json in your project root:
{
"mcpServers": {
"smriti": {
"command": "python",
"args": ["-m", "smriti.mcp"],
"cwd": "/path/to/smriti",
"env": {
"SMRITI_API_KEY": "chrn_your_key_here",
"SMRITI_SOURCE_ID": "cursor-project"
}
}
}
}
2. Available MCP Tools
| Tool | What It Does |
|---|---|
smriti_remember |
Store text; auto-extracts causal SVO events |
smriti_recall |
Hybrid search (semantic + temporal) across all memories |
smriti_timeline |
Generate a chronological timeline of events |
smriti_forget |
Supersede outdated memories cleanly |
smriti_health |
View service health status |
🏗️ The 4-Layer Architecture Pipeline
When you send text to Smriti, it passes through four discrete layers:
- Ingest Gate — Accepts raw, chaotic text from chat logs, emails, or code.
- Decomposition — The Groq LLM strips fluff and extracts structured
Subject → Verb → Objecttuples. - Temporal Binding — Assigns exact temporal boundaries to track state changes over time.
- Dual-Store Indexing — Saves to PostgreSQL (for exact chronological queries) and pgvector (for fuzzy semantic search).
📖 REST API Reference
Base URL: https://spy9191-chronos-api-backend.hf.space
Auth: Include header X-API-Key: chrn_your_key
| Endpoint | Method | Purpose |
|---|---|---|
/billing/keys |
POST | Generate a new API key |
/ingest |
POST | Send raw text to be converted into structured memories |
/query |
POST | Natural language memory retrieval |
/agent/run |
POST | Chat directly with our memory-aware LangGraph agent |
/health |
GET | System uptime and DB status |
💻 Integration Examples
Node.js / JavaScript
const headers = { "X-API-Key": "chrn_...", "Content-Type": "application/json" };
// Remember
await fetch("https://spy9191-chronos-api-backend.hf.space/ingest", {
method: "POST", headers,
body: JSON.stringify({ source_id: "app", events: [{ text: "Upgraded to Pro" }] })
});
// Recall
const res = await fetch("https://spy9191-chronos-api-backend.hf.space/query", {
method: "POST", headers,
body: JSON.stringify({ query: "Who upgraded?" })
});
console.log(await res.json());
Python
import httpx
API = "https://spy9191-chronos-api-backend.hf.space"
HEADERS = {"X-API-Key": "chrn_..."}
# Remember
httpx.post(f"{API}/ingest", headers=HEADERS, json={
"source_id": "my-app",
"events": [{"text": "User completed onboarding on July 15"}]
})
# Recall
result = httpx.post(f"{API}/query", headers=HEADERS, json={
"query": "What did the user do?"
})
print(result.json()["results"])
⚙️ Environment Configuration
| Variable | Required | Description |
|---|---|---|
GROQ_API_KEY |
✅ | Required for local hosting. Free from console.groq.com |
SMRITI_API_KEY |
MCP only | Your Smriti API key (chrn_...) |
CHRONOS_DB_URL |
No | Override default PostgreSQL URL |
PGVECTOR_DB_URL |
No | Override default pgvector URL |
📊 Dashboard & Pricing
Manage your memories, keys, and view timelines via the Dashboard:
smriti-kaal.vercel.app
| Tier | Price | Limits |
|---|---|---|
| Explorer | Free | 10,000 events/mo, 3 connected tools |
| Builder | $49/mo | 500,000 events/mo, 25 tools |
| Scale | $249/mo | 5,000,000 events/mo, unlimited tools |
🕰️ Memory that persists. Context that continues.
© 2026 Smriti / Chronos Labs