back

journal

Local-first journal analytics and durable study memory for AI tutors.

Obsidian journal automation and AI tutor memory.

// overview

Journal is local-first Python automation for an Obsidian vault. Its sync package turns Flow focus sessions and iCloud Shortcut payloads into deterministic daily, weekly, monthly, and yearly analytics, maintains media and university-grade workflows, and writes its results back into the vault as plain Markdown notes.

Its learning package gives AI tutors in Pi, Claude, and Codex durable per-course memory. Each course directory owns a study workspace that separates learner evidence, revisable tutor knowledge, unfinished tasks, and a course route; planning reads recorded study time from the journal through one read-only interface.

// how it works

Sync commands dispatch through application services over small ports. Adapters read Flow SQLite, iCloud status JSON, schedules, and Obsidian Markdown; writers render typed chart and table specs back through locked, atomic note publication.

A standard-library Python agent CLI answers five read verbs with whole items packed into UTF-8 byte budgets, and publishes field patches under revision and digest checks, locks, and atomic replacement. One canonical skill owns the teaching workflow; a TypeScript Pi extension adds tools, quizzes, and live Obsidian lesson notes.

// capabilities

Journal analytics

Builds daily, weekly, monthly, and yearly Obsidian reports from Flow sessions, schedules, training, sleep, and media.

Atomic note publication

Renders typed chart and table specs into Obsidian Markdown through locked, atomic writes that never leave a half-written note.

Revisable study memory

Records attempts as append-only evidence with linked corrections, kept apart from tutor knowledge, tasks, and preferences.

Bounded retrieval

Resumes a course in one call, returning whole evidence and knowledge within byte budgets and listing every omission.