name: openyantra version: 3.0.0 description: > Implements OpenYantra v3.0.0 -- The Sacred Memory Machine -- persistent, structured, human-readable memory for personal agentic AI, inspired by Chitragupta (the Hindu God of Data). Uses open-standard .ods files, SQLite WAL operational backend, Chitragupta/LedgerAgent single-writer, VidyaKosha hybrid semantic search, Inbox quick capture, Morning Briefing, Copy Context, browser dashboard, and one-command CLI installer. Use whenever the user wants an AI agent to remember things across sessions, building agentic tools needing persistent context, setting up memory for OpenClaw / LangChain / AutoGen, or saying "the AI keeps forgetting", "I have to repeat myself", "how do I give my agent memory".
OpenYantra v3.0.0 -- The Sacred Memory Machine
Inspired by Chitragupta, the Hindu God of Data
Sanskrit Reference
| Sanskrit | English | Component |
|---|---|---|
| Chitragupta | LedgerAgent | Sole writer |
| Agrasandhanī | Ledger | Audit trail |
| Chitrapat | Memory file | chitrapat.ods |
| Karma-Lekha | WriteRequest | Write to Chitragupta |
| Sanchitta | WriteQueue | Crash-safe queue |
| Setu | SyncEngine | SQLite-to-ODS bridge (v3.0) |
| Smarana | Session Load | Load at session start |
| Anishtha | Open Loops | Unresolved threads |
| Mudra | Signature | SHA-256 seal |
| Vivada | Conflict | Escalated to user |
| Dharma-Adesh | User Override | User always wins |
| VidyaKosha | Sidecar Index | Semantic search |
| Pratibimba | Snapshot | Per-agent frozen index |
| Avagraha | Inbox | Quick capture |
| Sanshodhan | Corrections | Pending edits |
Quick Start
from openyantra import OpenYantra
oy = OpenYantra("~/openyantra/chitrapat.ods", agent_name="Claude")
oy.bootstrap(user_name="Revanth", occupation="Filmmaker", location="Hyderabad, IN")
# Smarana -- inject into system prompt
print(oy.build_system_prompt_block())
# Writes via Chitragupta
oy.add_project("My Film", domain="Creative", status="Active",
priority="High", next_step="Write act 2", importance=9)
oy.flush_open_loop("3-act vs 5-act", "Undecided", "High", ttl_days=30)
# Quick capture (Inbox)
oy.inbox("Priya mentioned budget revision needed")
# Copy context for web AI tools
md = oy.build_context_markdown()
# Semantic search (VidyaKosha)
results = oy.search("screenplay structure decisions")
# Session end
oy.log_session(topics=["screenplay"], decisions=["Use 3-act"])
CLI
# Install
curl -sSL https://raw.githubusercontent.com/revanthlevaka/OpenYantra/main/install.sh | bash
# Daily commands
yantra bootstrap # interview-based cold start
yantra morning # daily brief -- auto-runs on first command
yantra ui # browser dashboard -> http://localhost:7331
yantra inbox "text" # quick capture
yantra context # copy memory to clipboard, paste into any AI
yantra health # system status
yantra loops # list open loops
yantra corrections # list and apply pending corrections
yantra sync # import ODS edits back to SQLite
yantra stats # memory growth analytics
14-Sheet Schema
| Sheet | Sanskrit | English | Load timing |
|---|---|---|---|
👤 Identity | Svarupa | Identity | Session start |
🎯 Goals | Sankalpa | Goals | Session start |
🚀 Projects | Karma | Projects | Session start |
👥 People | Sambandha | People | On person mention |
💡 Preferences | Ruchi | Preferences | Before recommendations |
🧠 Beliefs | Vishwas | Beliefs | Before advice |
✅ Tasks | Kartavya | Tasks | Session start |
🔓 Open Loops | Anishtha | Open Loops | Session start -- critical |
📅 Session Log | Dinacharya | Session Log | On-demand |
⚙️ Agent Config | Niyama | Agent Config | Session start |
📒 Agrasandhanī | Agrasandhanī | Ledger | Read-only audit |
📥 Inbox | Avagraha | Inbox | Check count at start |
✏️ Corrections | Sanshodhan | Corrections | Check count at start |
🔒 Quarantine | Nirodh | Quarantine | Security review |
Universal columns: Confidence · Source · Last Updated · Importance (1-10)
v3.0 Architecture: SQLite + ODS
Agent -> WriteRequest -> Chitragupta (LedgerAgent)
|
Raksha security scan
|
Admission gate + validate
|
SHA-256 Mudra seal
|
SQLite WAL write (2ms)
|
Ledger audit log
|
Async ODS export (atomic)
|
VidyaKosha index sync
SQLite = operational source of truth (fast reads/writes)
ODS = human-readable canonical export (open in LibreOffice)
Sync = bidirectional: yantra sync imports ODS edits back
Performance (Round 5 measured):
- SQLite WAL write: 2ms flat at any row count
- ODS export: 78ms@200 rows, 366ms@1000 rows (off hot path)
- Concurrent reads: portalocker prevents file corruption
- Write idempotency: request_id dedup prevents double-writes
Session Load (Smarana)
1. LOAD Identity, Agent Config
2. LOAD Projects (Active), Open Loops (Unresolved, top 15 by Importance)
3. LOAD Goals (Active), Tasks (Pending)
4. CHECK Inbox count, Corrections pending
5. take_pratibimba() if per-session mode
System Prompt Block
[OPENYANTRA CONTEXT -- v3.0.0 | Chitragupta-secured]
User: {Name} | {Occupation} | {Location}
Active Projects (Karma): {Project} -> {NextStep}
Open Loops (Anishtha, top 15): [{Priority}] {Topic} -- {Context}
Goals (Sankalpa): {Goal}
Tasks (Kartavya): {Task}
Alerts: 📥 {N} unrouted · ✏️ {N} corrections pending
Agent Instructions (Niyama): {Instruction}
[/OPENYANTRA CONTEXT]
Session End
1. FLUSH Anishtha -> flush_open_loop()
2. WRITE Dinacharya -> log_session()
3. UPDATE changed facts -> request_write()
4. RESOLVE closed loops -> resolve_open_loop()
5. RELEASE Pratibimba -> release_pratibimba()
VidyaKosha Search
oy.search("query", top_k=5) # all sheets, importance-weighted
oy.search_open_loops("query") # Anishtha only
oy.search_projects("query") # Karma only
oy.search_people("query") # Sambandha only
oy.take_pratibimba() # freeze snapshot
oy.release_pratibimba() # release
Write Rules
- All writes via
request_write()-- never open.odsdirectly - Dharma-Adesh -- User-stated overrides Agent-*
- Append never delete -- Anishtha, Kartavya, Sambandha only grow
- Set Source -- User-stated/observed vs Agent-inferred
- Set Importance 1-10 -- affects retrieval weighting
- ODS edits via LibreOffice ->
yantra syncto import back - Never sort columns in LibreOffice -- Sort Catastrophe warning
Controlled Vocabulary
| English | Sanskrit | Values |
|---|---|---|
| Project Status | Karma-Sthiti | Active / Paused / Completed / Cancelled |
| Task Status | Kartavya-Sthiti | Pending / In Progress / Done / Blocked |
| Resolved? | Nishpanna | Yes / No |
| Priority | Pradhanta | Critical / High / Medium / Low |
| Confidence | Nishchaya | High / Medium / Low / Inferred |
| Source | Strot | User-stated / Agent-observed / Agent-inferred / System |
| Importance | Pradhanta-Ank | 1-10 |
Key Files
openyantra.py <- Core library (Chitragupta pattern)
yantra_sqlite.py <- SyncEngine (v3.0 SQLite WAL + atomic ODS export)
yantra_morning.py <- Morning Briefing
yantra_context.py <- Copy Context (paste into any AI)
vidyakosha.py <- Semantic index
yantra_ui.py <- Browser dashboard
yantra_security.py <- Raksha engine
install.sh <- One-command Mac/Linux installer
visual-guide.html <- Interactive architecture guide
openyantra-brand-manual.html <- Brand design system