Your personal AI agents remember nothing between sessions. OpenYantra fixes that.
One open-standard file. One trusted writer. Any agent. Any framework. Zero cloud.
Every time you open a new chat with Claude, ChatGPT, or any AI agent it starts completely blank. It does not know your current projects, your decisions from last week, or what you left unfinished. You repeat yourself every session.
When the conversation gets too long, the AI compresses older messages -- your active work context disappears mid-task.
OpenYantra solves this permanently:
| Without OpenYantra | With OpenYantra |
|---|---|
| AI starts blank every session | AI knows your projects, goals, preferences |
| Repeat context every time | Context injected automatically at session start |
| Unfinished work lost in compaction | Open Loops flushed before compaction, restored after |
| No record of what agents changed | Every write SHA-256 signed, permanent audit trail |
| Agents can overwrite each other | Single trusted writer -- no conflicts |
| Memory lives in a cloud you do not control | Memory lives in a file on your computer |
OpenYantra is a personal AI memory system -- a structured file your AI agents read from and write to, so your context persists across sessions, agents, and time.
It is:
- Local-first -- your memory file lives on your machine, never in a cloud
- Human-readable -- open it in LibreOffice, read it, edit it like a spreadsheet
- Agent-agnostic -- works with Claude, ChatGPT, OpenClaw, LangChain, AutoGen
- Auditable -- every write signed with SHA-256, permanent audit trail
- Protected -- Raksha security engine blocks prompt injection attempts
- Fast -- v3.0 SQLite WAL backend: 2ms writes at any scale
Named after Chitragupta (चित्रगुप्त) -- the Hindu God of Data, divine scribe who keeps the complete record of every soul's deeds. The architecture mirrors the mythology precisely: one trusted recorder, one immutable ledger, and a rule that the user's word (Dharma-Adesh) always overrides everything else.
"Your purpose is to stay in the minds of all people and record their thoughts and deeds." -- Brahma to Chitragupta
Mac / Linux -- fully self-contained. Installs Python, LibreOffice, all dependencies, creates a virtual environment, sets up the CLI, adds a desktop shortcut:
curl -sSL https://raw.githubusercontent.com/revanthlevaka/OpenYantra/main/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/revanthlevaka/OpenYantra/main/install.ps1 | iexAfter install:
yantra bootstrap # 12-question interview -- sets up your memory
yantra ui # opens http://localhost:7331
yantra morning # your daily brief
yantra inbox "text" # quick capture to Inbox
yantra context # copy context to clipboard, paste into any AI chatNo API keys required. No cloud account. No configuration files.
yantra bootstrap asks you 12 questions -- your name, your projects, your goals, the people you work with, what your AI should never suggest. The answers populate your Chitrapat -- a .ods spreadsheet you can open in LibreOffice at any time.
When you start an AI session, OpenYantra injects a context block into the system prompt:
[OPENYANTRA CONTEXT -- v3.0.0]
User: Revanth Levaka | Filmmaker | Hyderabad, IN
Active Projects: Feature Screenplay -> Write act 2 (High)
Open Loops: [High] 3-act vs 5-act -- undecided | [Medium] Follow up with Priya
Goals: Complete debut feature film
Preferences: Communication: direct | Tools: terminal, LibreOffice
Your AI agent now knows who you are and what is unresolved -- without you saying a word.
v3.0 is the SQLite Foundation release. The architecture is the same -- Chitragupta still controls all writes, the single-writer rule is unchanged. What changed is the storage layer underneath.
| Metric | v2.x (ODS only) | v3.0 (SQLite WAL + ODS export) |
|---|---|---|
| Write latency at 200 rows | 78ms | 2ms |
| Write latency at 1000 rows | 366ms | 2ms |
| Write latency at 5000 rows | 2012ms | 2ms |
| Concurrent read safety | Race condition possible | portalocker prevents file corruption |
| Write idempotency | Manual | request_id dedup built in |
| ODS file | Live write target | Atomic export (verified against SQLite) |
The ODS file remains the human-readable canonical export. You can still open chitrapat.ods in LibreOffice and read everything. User edits via LibreOffice are imported back via yantra sync.
Sort Catastrophe warning: Sorting a single column in LibreOffice scrambles all row data because ODS rows are not database rows. The v3.0 ODS export includes a Sort Warning sheet explaining this. Use yantra sync after any direct ODS edits rather than sorting.
The Today tab -- daily command centre with Daily Insight card and one-click actions.
| Sheet | Sanskrit | What it stores |
|---|---|---|
| 👤 Identity | Svarupa | Name, occupation, location, communication style |
| 🎯 Goals | Sankalpa | Long and short-term aims with success metrics |
| 🚀 Projects | Karma | Active work -- domain, status, next concrete step |
| 👥 People | Sambandha | Relationships, context, open threads with each person |
| 💡 Preferences | Ruchi | Tools, habits, communication style, anti-goals |
| 🧠 Beliefs | Vishwas | Values, worldview, belief evolution history |
| ✅ Tasks | Kartavya | Action items with project link and priority |
| 🔓 Open Loops ★ | Anishtha | Unresolved threads -- compaction safety net |
| 📅 Session Log | Dinacharya | Per-session summaries |
| ⚙️ Agent Config | Niyama | Per-agent instructions |
| 📒 Agrasandhanī | -- | Immutable audit trail -- every write SHA-256 signed |
| 📥 Inbox | Avagraha | Quick capture -- categorise later |
| ✏️ Corrections | Sanshodhan | Agent-proposed edits pending your approval |
| 🔒 Quarantine | Nirodh | Blocked injection attempts |
★ Open Loops (Anishtha) -- unanimously named by all 8 models across 4 stress-test rounds as the strongest and most novel feature. Implements the Zeigarnik Effect as a persistent data structure.
The morning brief in your terminal -- surfaces what matters before you open any other app.
Runs automatically on your first yantra command each day:
yantra morning========================================================
Good morning, Revanth. OpenYantra v3.0.0 2026-03-21
========================================================
🔓 Open Loops (12 total):
[High ] Decide screenplay structure (2d left)
[Medium ] Follow up with Priya on budget
🚀 Stale Projects:
Feature Screenplay -- no update in 9 days -> Write act 2
📥 Inbox: 3 items unrouted
💡 Suggestion:
'budget revision' in Inbox may relate to:
'Follow up with Priya on budget'
🕰️ Past memory:
"Creative freedom over short-term money"
🔥 Streak: 3 days
────────────────────────────────────────────────────
yantra ui -> http://localhost:7331
========================================================
Also appears as the Daily Insight card at the top of the browser dashboard.
yantra ui # -> http://localhost:7331
Open Loops tab -- all unresolved Anishtha with priority and TTL countdown.
Timeline tab -- every write Chitragupta has ever made, chronologically.
| Tab | Purpose |
|---|---|
| 🌅 Today | Daily command centre -- Daily Insight card, urgent items, one-click actions |
| 📥 Inbox | Unrouted captures. Press i anywhere to capture instantly. |
| 🚀 Projects | Active work with status, priority, next step |
| 🔓 Open Loops | All unresolved threads sorted by importance |
| ✅ Tasks | Pending action items |
| 📅 Timeline | Chronological activity feed |
| ⚡ Conflicts | Visual diff -- agent proposed vs your value. Your choice wins. |
| ✏️ Corrections | Agent-proposed edits pending approval |
| 🔒 Security | Quarantine review and threat log |
| 📒 Ledger | Full SHA-256 signed audit trail |
| 💚 Health | System status and row counts |
| 📊 Stats | Memory growth analytics |
Security tab -- quarantine review, threat log, agent trust tiers.
Every write scanned before Chitragupta commits it. Only confirmed threats are blocked (permissive mode).
Protects against: prompt injection · jailbreak attempts (DAN, STAN) · agent impersonation · Unicode/RTL attacks · schema corruption
| Tier | Who | Treatment |
|---|---|---|
| 5 -- User | You | Never blocked -- Dharma-Adesh |
| 4 -- Chitragupta | System | Full trust |
| 3 -- Known | Claude, OpenClaw, LangChain, AutoGen | Standard scan |
| 2 -- Unknown | Unregistered agents | Stricter scan |
| 1 -- External | Telegram bot, iOS Shortcut, email | Suspicious treated as confirmed |
| 0 -- Untrusted | Flagged agents | Any flag -> block |
The 12-question bootstrap interview -- populates all key sheets via conversation.
yantra bootstrap| # | Question | Sheet populated |
|---|---|---|
| 1 | What does your AI always forget? | Sets focus |
| 2 | Name, occupation, location | Identity |
| 3 | Life domains (3-5 areas) | Beliefs |
| 4 | Active projects + next concrete step | Projects |
| 5 | Goals + how you will measure success | Goals |
| 6 | Important people + one open thread with each | People + Open Loops |
| 7 | Preferences, tools, working hours | Preferences |
| 8 | Anti-goals -- what AI should never suggest | Beliefs |
| 9 | Decision principles + belief you no longer hold | Beliefs |
| 10 | Decision you are second-guessing + recurring problem | Open Loops |
| 11 | Reminder preference | Agent Config |
| 12 | Live preview of all populated sheets | -- |
Stats tab -- memory growth, writes by sheet and agent, loop resolution rate.
yantra statsTotal rows · total writes · writes last 7 / 30 days · open loops · loop resolution rate · high-importance items · writes by agent · writes by sheet.
yantra contextFormats your memory as a clean Markdown block and copies to clipboard. Paste into Claude.ai, ChatGPT, or any web-based AI. Bridges your local memory to the AI tools you already use.
Telegram bot (recommended):
export TELEGRAM_BOT_TOKEN="your_token_from_BotFather"
yantra telegram
# Any message -> Inbox. /loop /task /goal /digest /healthiOS Shortcut:
yantra shortcut
# Prints your Mac's local IP + exact Shortcut setup instructionsEmail:
yantra mail
# Local SMTP on port 2525 -- forward any email -> Inboxfrom openyantra import OpenYantra
oy = OpenYantra("~/openyantra/chitrapat.ods", agent_name="Claude")
# Inject into system prompt at session start
system_prompt = oy.build_system_prompt_block()
# Write via Chitragupta
oy.add_project("My Film", domain="Creative", status="Active",
priority="High", next_step="Write act 2", importance=9)
oy.flush_open_loop("Structure decision", "3-act vs 5-act undecided",
priority="High", ttl_days=30)
# Quick capture to Inbox
oy.inbox("Priya mentioned budget revision needed by Friday")
# Semantic search -- importance-weighted results
results = oy.search("screenplay structure")
# Copy context for web AI tools
md = oy.build_context_markdown()
# Session end
oy.log_session(topics=["screenplay"], decisions=["Research 5-act"])# Setup
yantra bootstrap # 12-question interview
yantra doctor # system check: Python, packages, port, ODS integrity
# Daily use
yantra morning # daily brief -- runs automatically on first command of day
yantra ui [port] # browser dashboard -> http://localhost:7331
yantra context # copy full context to clipboard -- paste into any AI chat
yantra inbox "text" # quick capture to Inbox
yantra digest # daily summary: loops + stale projects + insights
yantra stats # memory growth analytics
# Memory management
yantra health # stats overview
yantra route # auto-route all unprocessed Inbox items
yantra loops # list all unresolved Open Loops
yantra diff # belief contradiction check
yantra ttl # check expired Open Loops
yantra sync # import ODS edits back into SQLite (after editing in LibreOffice)
yantra corrections # list and apply pending agent corrections
# Mobile
yantra telegram # Telegram bot -> Inbox
yantra shortcut # iOS Shortcut server (port 7332)
yantra mail # Email-to-Inbox SMTP (port 2525)
yantra schedule # schedule daily digest via launchd / cron
# Maintenance
yantra integrity # verify all Agrasandhani SHA-256 signatures
yantra archive # rotate old session logs to archive file
yantra migrate # upgrade older Chitrapat to current schema
yantra security # full Chitrapat security audit
yantra open # open Chitrapat in LibreOffice
yantra version # show version[hooks]
session_start = "openyantra.openclaw.hooks:session_start_hook"
pre_compact = "openyantra.openclaw.hooks:pre_compact_hook"
post_compact = "openyantra.openclaw.hooks:post_compact_hook"
session_end = "openyantra.openclaw.hooks:session_end_hook"
[env]
OPENYANTRA_FILE = "~/openyantra/chitrapat.ods"Full guides for OpenClaw · LangChain · AutoGen · Raw Anthropic API -> docs/DEPLOYMENT.md
| Feature | Flat Text | Vector/RAG | MemGPT | Mem0 | Zep | OpenAI Memory | OpenYantra |
|---|---|---|---|---|---|---|---|
| Human-readable | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| User can edit | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Semantic search | ❌ | ✅ | ✅ | ✅ | ✅ | ||
| Compaction-safe | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | |
| Multi-agent safe | ❌ | ❌ | ✅ | ✅ | ✅ | ||
| Immutable audit trail | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | |
| Injection protection | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Open format (ISO) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Zero infrastructure | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | |
| Browser dashboard | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | |
| CLI installer | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Mobile capture | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Daily briefing | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Copy context for web AI | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Schema migration | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| SQLite WAL backend | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Open protocol (CC0) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Version | Key additions |
|---|---|
| v1.0 | Core protocol -- Chitragupta, Agrasandhanī, Anishtha, Sanchitta, 12-sheet schema |
| v2.0 | VidyaKosha semantic index, BM25 + TF-IDF hybrid, Pratibimba snapshots |
| v2.1 | Inbox, Importance column, TTL loops, admission rules, belief diffing, browser dashboard, installer |
| v2.2 | Complete repo -- all docs, openclaw/, examples/, references/, DEPLOYMENT.md |
| v2.3 | Self-contained installer (auto Python + LibreOffice + all deps), Telegram bot, daily digest |
| v2.4 | Raksha security -- injection scanner, agent trust tiers 0-5, Mudra verification, quarantine |
| v2.5 | Today tab, Timeline, Conflict Resolver, floating capture button, mobile CSS |
| v2.6 | 12-question Bootstrap interview, first-launch onboarding tour, brand assets rebuilt |
| v2.7 | Importance-weighted retrieval (relevance x importance x recency), yantra stats |
| v2.8 | Incremental VidyaKosha sync, admission refinement |
| v2.9 | Agrasandhanī integrity check, session log archival, Stats tab |
| v2.12 | Morning Briefing, Daily Insight card, streak counter, iOS Shortcut, email-to-inbox, yantra migrate |
| v2.13.0 | Token alignment, em dash cleanup, brand asset suite, visual-guide.html, brand-manual.html |
| v3.0.0 | SQLite WAL backend (2ms writes), SyncEngine, atomic ODS export, write idempotency, portalocker, yantra sync, yantra corrections, yantra morning, yantra context |
| v3.1.0 (planned) | Dense embeddings (sentence-transformers), date range filter |
| v3.2.0 (planned) | Morning briefing filter (importance>=7), dashboard reads from SQLite |
| v3.3.0 (planned) | pip install openyantra[full], pyproject.toml packaging |
The architecture was independently reviewed five times. The v3.0 release is based on Round 5 findings (7 models: ChatGPT, Qwen, Kimi, Mistral, DeepSeek, Grok, GLM5).
7/7 consensus findings that drove v3.0:
- SQLite WAL as operational backend (ODS as export)
- Write idempotency via request_id dedup
- portalocker for concurrent read safety
- Atomic ODS export: write to .tmp, verify, os.replace()
- Sort Catastrophe warning for LibreOffice users
The only unanimous verdict across all 5 rounds and all 8 models: The Chitragupta single-writer pattern must never change.
Named unanimously in all 5 rounds: Anishtha (Open Loops) is the strongest and most novel feature.
See WHITEPAPER.md for the complete five-round synthesis.
| Sanskrit | Mythology | OpenYantra |
|---|---|---|
| Chitragupta | Sole trusted recorder | LedgerAgent -- only writer |
| Agrasandhanī | Cosmic register | 📒 audit trail |
| Chitrapat | Life scroll | chitrapat.ods |
| Setu | Bridge | SyncEngine -- SQLite to ODS |
| Anishtha | Unfinished intent (Zeigarnik) | Open Loops -- compaction safety |
| Mudra | Divine seal | SHA-256 signature |
| Dharma-Adesh | Righteous command | User edits always win |
| Raksha | Divine protection | Security engine |
| VidyaKosha | Knowledge repository | Semantic search index |
See MYTHOLOGY.md · WHITEPAPER.md · visual-guide.html · openyantra-brand-manual.html
| Profile | Region | Laws |
|---|---|---|
| OpenYantra-IN 🇮🇳 | India (home) | DPDP Act 2023, IT Act 2000 |
| OpenYantra-EU 🇪🇺 | Europe | GDPR, EU AI Act, Data Act 2023 |
| OpenYantra-US 🇺🇸 | United States | CCPA/CPRA, HIPAA, COPPA |
| OpenYantra-CN 🇨🇳 | China | PIPL, DSL, Cybersecurity Law |
See PRIVACY.md for full regional specifications.
openyantra/
├── openyantra.py <- Core library v3.0.0
├── yantra_sqlite.py <- SyncEngine: SQLite WAL + atomic ODS export (NEW v3.0)
├── yantra_morning.py <- Morning Briefing (NEW v3.0)
├── yantra_context.py <- Copy Context: paste into any AI chat (NEW v3.0)
├── vidyakosha.py <- Semantic search (VidyaKosha)
├── yantra_ui.py <- Browser dashboard (12 tabs)
├── yantra_security.py <- Raksha security engine
├── yantra_digest.py <- Daily proactive digest
├── telegram_bot.py <- Telegram -> Inbox
├── ios_shortcut.py <- iOS Shortcut -> Inbox (HTTP server)
├── yantra_mail.py <- Email -> Inbox (local SMTP)
├── yantra_migrate.py <- Schema migration tool
├── install.sh <- Mac/Linux self-contained installer
├── install.ps1 <- Windows self-contained installer
├── chitrapat_template.ods <- Blank memory file (open in LibreOffice)
├── visual-guide.html <- Interactive architecture guide
├── openyantra-brand-manual.html <- Brand identity and design system
├── index.html <- Public website
├── WHITEPAPER.md <- Research document
├── PROTOCOL.md <- Open spec (CC0)
├── SKILL.md <- AI skill definition
├── MYTHOLOGY.md <- Chitragupta origin + Sanskrit naming
├── PRIVACY.md <- Regional profiles (IN, EU, US, CN)
├── CHANGELOG.md <- Version history
├── screenshots/ <- UI screenshots
├── docs/DEPLOYMENT.md <- Framework integration guide
├── openclaw/ <- OpenClaw plugin + hooks
├── examples/ <- Quickstart + LangChain adapter
├── references/ <- Controlled vocabulary
└── assets/brand/ <- Brand assets (SVG mark, logos, favicon)
Framework adapters · Mobile capture improvements · Benchmarks (LOCOMO / DMR) · Language ports · v3.1 dense embeddings
Open an issue before a PR for protocol-level changes.
Protocol Specification: CC0 1.0 Universal (Public Domain) Library: MIT License
Built in Hyderabad, India. Conceived by Revanth Levaka -- filmmaker and open-source builder. Stress-tested by 8 AI models across 3 continents across 5 rounds. Named in honour of Chitragupta -- the Hindu God of Data.
The record exists to serve the remembered, not the recorder.
| Today Tab | CLI Terminal | Web UI |
|---|---|---|
![]() |
![]() |
![]() |
| Mobile | Architecture | Open Loops |
|---|---|---|
![]() |
![]() |
![]() |



