Keating Blog
Release notes, engineering essays, and field notes from Keating's teaching system.
▤ STANDARD.SITEPublished from did:plc:tiyely2inmhsmp6g6gmqsgm3
v2.9.0 - Keating in the Room with You
Keating 2.9 adds a live multimodal teaching surface: full-duplex voice over OpenAI Realtime and Gemini Live, camera or screen-share vision with frame dedup, microphone capture on the audio thread, and streaming progressive image and animation renders — all seeded with the real conversation and system prompt so voice continues the lesson.
v2.7.0 - Questions, Context, and Learning Evidence
Keating 2.7 gives the model a complete question vocabulary, streams only finished interactions, links genuinely nested study plans, starts from complete learner evidence, removes tool ceremony, and makes quiz results durable and honest.
v2.8.0 - A Tutor That Can Look Before It Guesses
Keating 2.8 tells the tutor when and how to inspect its own live code, connects NodePod workspace reads to the mounted source tree, and gives learners separate control over reasoning visibility and whether it starts expanded.
v2.6.0 - Learning Paths You Can See, Expand, and Retry
Keating 2.6 replaces the Dio hosted-model bridge with Not Organic's provider-owned account flow, turns lesson plans into nested and resumable learning paths, makes dependency diagrams genuinely inspectable, and gives interrupted prompts an obvious way back.
v2.5.0 - Multimodal Runtime, Mobile, and Calmer Artifacts
Keating 2.5 ships the multimodal runtime release line: realtime voice, provider-native search, durable UI documents, a native Android client, Canadian localization, Markdown-rendered reasoning, and calmer artifact previews that keep the chat surface under control.
v2.4.0 - A Streamable Interface for Understanding
Keating 2.4 moves teaching into streamed OpenUI documents, adds mobile voice and a separate OpenTUI host, makes providers, storage, and learning history more legible, improves interrupted-session recovery, and turns training export into a documented evidence package.
v2.2.0 - Learning Evidence That Remembers What Happened
Keating 2.2 makes the learning loop more accountable: feedback now points at the exact response a learner reacted to, quizzes, diagnostics, and spaced reviews build a cautious learner profile over time, and the browser agent gains safer local execution, stronger OAuth paths, and better session naming.
v2.0.0 - Desktop, P2P Storage, and a Bigger App Surface
Keating 2.0 starts the desktop/P2P release line: an Electron workspace now hosts the app as a local-first client, shared Hypercore storage moves into @keating/p2p-core, settings and session management are calmer, public download/legal pages are live, and deployed web users get safer stale-build recovery.
v1.4.1 - Production Analytics, Mermaid Diagrams, and Release Guardrails
Keating 1.4.1 is a patch release for the browser app: production PostHog analytics now initialize and proxy correctly, Mermaid diagrams render again after SVG validation, chat markdown handles Mermaid fences directly, open-ended quizzes get model-judged grading, fine-tune datasets can be imported, and the repo's release/version guardrails are documented in the public update trail.
Provider Auth Recovery, Voice Defaults, and Release Guardrails
Keating now recovers more cleanly when provider credentials are missing, the voice path has saner defaults, provider-aware web search behavior is less surprising, and the dev shell finally carries versioning and hook guardrails instead of relying on memory.
v1.3.0 - An Interactive Hero, Readable Chat, and a Wider Polish Pass
Keating 1.3 puts a living machine on the front page: an interactive 3D CRT that boots a real terminal and hands you a session. Inside the app, Keating's replies now render on a panel that is actually readable in both themes, the conversation column is wider, and a broad retro and mobile polish pass reaches the landing page, navigation, session cards, usage charts, and settings. Underneath, the browser runtime gained portable session data and snapshot export, and every version string now flows from a single source of truth.
KeatingBench - Ranking Teaching Models by Learner Outcomes
KeatingBench adds a separate benchmark page for comparing teaching models using shared learner sessions, replay cases, PROSPER judgement, readiness gates, and transparent methodology explainers.
v1.2.0 - Observable Self-Evolution, Timed Quizzes, and Release Hygiene
Keating 1.2 makes the self-improvement loop much easier to inspect, adds timed quiz sessions and stronger quiz result cards, quiets the browser persistence warning path, and cleans up release metadata so the CLI, package shim, web app, and generated sandbox boot files stay aligned.
Branch-Aware Session Forking
Forking a session now does what the name implies: the new session ends at the point you branched from instead of carrying the whole conversation forward, and a clear banner shows when you are working inside a fork with a one-click jump back to the original.
v1.1.0 - Image Generation, Interactive Quizzes, and Cleaner Learning Artifacts
Keating 1.1 turns the web app into a more complete learning workspace: image generation joins the tool set, lesson-plan artifacts gain an interactive quiz taker, chat output is easier to copy and inspect, MiniMax M3 is selectable, and benchmark/runtime correctness issues are fixed across CLI and browser paths.
v1.0.0 - Browser-First Agents, Remote Sandboxes, and the Keating Cloud Boundary
Keating 1.0 makes the agent runtime explicit: browser-only for the free local default, remote for a self-hosted sandbox endpoint, and cloud for the canonical keating.help backend. It also introduces the shared browser-agent runtime package and lays out the PDS/AT Protocol and educator-tool roadmap.
v0.3.13 — Source-Edit CLI, Safer Auto-Improve, and Persistent MAP-Elites
New `keating edit` command for search/replace source edits. Auto-improve gets a 30-min cooldown and rolls back regressions. MAP-Elites grids now persist between runs. Resizable session sidebar and year-by-year activity heatmap on the web.
v0.3.12 — Portable Session Sharing, Short Links, and UI Settings
Share chat sessions with short links (server-backed, compressed snapshots, or local-only). New UI settings for share-link mode and app-wide font family. OpenCode Entire plugin hook for session lifecycle tracking.
v0.3.10 — Google Search Grounding for Gemini
Gemini and Google chat requests can now include real-time web search grounding. URL-heavy prompts automatically suggest enabling it.
v0.3.11 — Session Sidebar, Fork Trees, and Profile Images
Persistent session sidebar on large screens with search, load, fork, rename, and nested fork navigation. Forked sessions now appear as a session tree. User profile images and animation-renderer settings.
v0.3.9 — Streaming Replies and Live Reasoning Panels
Assistant replies now render live from the in-flight stream instead of appearing all at once at the end. When a reasoning-capable model emits thinking chunks, Keating now shows them in a live collapsible Reasoning panel while the answer is still being written.
v0.3.8 — Chat Attachments and Vision-Aware Image Uploads
The web chat composer now has a paperclip button for local file and image attachments. Images are routed to vision-capable models, text/code files are folded into the prompt as readable attachment blocks, and text-only models now fail clearly with a suggestion to switch models instead of silently dropping pictures.
v0.3.7 — Pluggable Speech Providers, Usage Charts, and Model-Generated Session Titles
Speech is now a provider abstraction with Gemini Live, OpenAI TTS, OpenAI Realtime (preview), local Supertonic-3 (experimental), and a user-defined custom-TTS form. The Usage page gained five charts, the chat header now lets the model rename the current session, and the responsive layout finally keeps every setting reachable from sm to lg.
v0.3.6 — Ink Setup Flow, Package Rename, and Provider Defaults
Interactive onboarding with Ink. Package renamed to keating. Default shell provider is now Google/gemini-3.1-pro-preview. --list-models passes through to Pi runtime.
v0.3.5 — Standalone Installer Fix: Tarball Structure and Node.js Entry Point
The curl | bash installer was broken: the release tarball lacked its top-level directory and the wrapper tried to exec a nonexistent binary. Both are fixed — install now works end-to-end on Linux and macOS.
v0.3.4 — Markdown Tables and LaTeX Math in Chat
Chat now renders GitHub-flavored markdown tables and LaTeX math expressions. Inline math via $...$ and block math via $$...$$ are properly typeset with KaTeX.
v0.3.2 — Chat Rewrite Stabilizes: Forks, Feedback, and Mobile
The Assistant UI rewrite from Lit to React has stabilized with mobile layout refinements, artifact chips in messages, CLI theme parity, React #310 crash fix, and per-message fork/feedback actions.
v0.3.3 — Interactive Quizzes, Scene Storyboards, and Dark Mode Fixes
Quizzes render as live forms inside chat. Animation storyboards become navigable scene cards. Dark mode contrast fixed across retro pages. Chat viewport no longer overflows.
v0.3.1 — Sessions, Artifacts, Tool Schemas, and Provider Proxying
Web reliability release with persistent sessions, artifact browsing from chat, real tool JSON schemas for all 19 tools, and a same-origin backend proxy eliminating CORS failures.
All 19 Keating Web Tools Now Expose Real Parameter Schemas
The fix that landed in 0.3.1: all tool registrations now describe real JSON Schema parameters so the model can actually supply arguments instead of guessing.
Optional Speech: Gemini Live Voice for the Web
An opt-in speech layer using Gemini Live. The model gains a keating_voice tool for short utterances while reasoning stays in the normal text loop.
v0.3.0 — Pedagogical Engines, a Sharper Logo, and Recorded Workflows
Flashcards, quizzes, mastery tracking, and long-horizon projects. Brand polish with rebuilt ASCII logo. VHS workflow tapes for demos.
v0.2.0 — Ax Optimization, MAP-Elites, and Complete Rebrand
Multi-objective policy and prompt learning via @ax-llm/ax (GEPA/ACE). MAP-Elites for quality-diversity search. Temporal engagement policies. Full rebrand from Feynman to Keating. Retro aesthetic finalized.
From Stubs to Reality: AI-Powered Pedagogical Verification
Moved from deterministic stubs to AI-powered verification: real-time animation generation, realistic teaching simulations, dynamic learner profiles, and a dedicated PAPER section.
Power Move: Migrating to Nitro + Vite
Server stack migrated to Nitro for universal deployment (Node, Bun, edge workers) with Vite integration for a unified build pipeline.
Chat Model Selector Now Reflects the Actual Choice
Fixed the model selector showing a stale gemini placeholder after picking a different model. State now syncs directly to the active agent.
v0.1.3 — Synthetic Provider Support and Mobile UI Polish
Synthetic added as a first-class custom provider. Mobile touch targets and spacing improved across homepage, selector, settings, and install tabs.
v0.1.4 — CLI Fixes, React Migration, and Nitro+Vite Stack
CLI works globally via npm/bun. Web app rewritten in React with Keating browser tools. Server migrated to Nitro + Vite for universal deployment.
Chat Panel Fix & Model Loading Animation
Fixed text disappearing after sending messages by separating the Lit header from the dynamic chat panel. Added a one-time model loading overlay.
Default Cloud Model: Gemini 3.1 Pro Preview
Updated the default cloud model to gemini-3.1-pro-preview for latest Gemini capabilities when WebGPU is unavailable.
Installable PWA with Full Browser Model Integration
Keating is now an installable PWA that works offline with the browser model. WebGPU-powered Gemma 4 E4B streams tokens in real-time.
Robust WebGPU Detection
Async WebGPU detection before rendering prevents showing the browser model option when it won't actually work.
v0.1.2 — Initial Public Release
First public release of Keating. Pi-powered hyperteacher shell with lesson plans, concept maps, animations, verification, benchmarks, policy evolution, and self-improvement proposals.
Local Model Support via WebGPU
Run Gemma 4 E4B entirely in browser using WebGPU — no API keys, progressively loaded, locally cached.
v0.1.0 — Initial Public Release
First public release. Socratic AI tutor built on Pi agent framework with multi-provider support, local persistence, and dark mode.
The Hyperteacher Philosophy
Why Keating is named after John Keating from Dead Poets Society. Education should ignite minds, not fill them.