Keating Blog

Release notes, engineering essays, and field notes from Keating's teaching system.

46 posts

▤ 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.