Francisco Escobar52 downloadsA one-to-one AI tutor in Obsidian powered by the pi agent harness. Probe what you know, plan the lesson as a dependency graph, and walk you through it one step at a time with quizzes. Uses your OpenAI/ChatGPT subscription.
A one-to-one AI tutor inside Obsidian. Pi Teacher probes what you already know, plans the lesson as a dependency graph, and walks you through it one step at a time — quizzing you at every step, proposing flashcards for spaced repetition, and saving what you learned as knowledge notes in your vault.
It runs the pi agent harness locally and uses the models and authentication you have already configured in Pi — including subscriptions and API-key providers such as OpenAI/ChatGPT and OpenCode.
Desktop only (
isDesktopOnly: true). Requires Obsidian 1.5.7+.
~/.pi/agent), including its authenticated providers and custom models.json entries.<vault>/.pi/agent/sessions/.main.js, manifest.json, and styles.css from the latest release.<vault>/.obsidian/plugins/pi-teacher/
main.js
manifest.json
styles.css
Pi Teacher is ready for installation from the Obsidian Community directory and through BRAT: its runtime and required static assets are bundled into
main.js.
git clone https://github.com/FranciszekaMateu/pi-teacher.git
cd pi-teacher
npm install
npm run build
Then copy main.js, manifest.json, and styles.css from the repo root into <vault>/.obsidian/plugins/pi-teacher/.
~/.pi/agent; it never copies credentials into the vault.~/.pi/agent; chat sessions remain under <vault>/.pi/agent/sessions/. Pi Teacher does not copy or display credentials... escapes are rejected, and the plugin's own internals are off-limits.Pi Teacher runs two processes:
Obsidian renderer Node child process
┌──────────────────┐ JSONL RPC ┌──────────────────────────┐
│ React chat panel │ ───────────▶ │ bundled Node RPC runtime │
│ PiSessionService │ ◀─────────── │ (pi agent harness + │
└──────────────────┘ │ vault tools + OAuth) │
└──────────────────────────┘
src/main.ts — plugin lifecycle, commands, settings tab.src/pi/ — session service, RPC bridge, OAuth, protocol parsers (quiz, lesson, visual, flashcards), teacher prompt, bash sandbox, PDF tool.src/ui/ — React chat panel and helpers (bilingual strings, icons, markdown/math rendering, history).src/vault/ — vault-scoped tool implementations.src/runtime/pi-runtime.ts — Node-side entry point, statically bundled into main.js.npm install # install dependencies
npm run dev # watch build
npm test # vitest
npm run lint # eslint
npm run build # typecheck + production build
After each build, copy main.js, manifest.json, and styles.css into your vault's plugin folder and reload Obsidian. npm version bumps manifest.json and versions.json for you.
See RELEASE.md for the release checklist.
<vault>/.obsidian/plugins/pi-teacher/load-error.txt and the developer console.Pi Teacher is a fork of lhr0909/pi-obsidian by Simon Liang, rebuilt around the pi agent harness by Mario Zechner. Thank you both.
Licensed under 0-BSD.