OpenStudy Whiteboard Tutor

Source available · runs on your machine

A tutor at a whiteboard, on your own machine.

OpenStudy talks you through any topic while it writes on a zoomable board in handwriting, sketches diagrams, circles what it means, asks you questions and adapts to your answers. You bring the subscriptions and keys. Nothing leaves your computer that you don't send.

  • 1 hard requirement: the claude CLI
  • 0 keys needed for the demo
  • ~$1 an hour with voice + pictures
localhost:3000/lesson/rl101
An OpenStudy lesson on Reinforcement Learning 101: handwritten notes on graph paper with the word Reward circled in red, and the tutor's chat history on the right.
talks✦writes in handwriting✦sketches diagrams✦shows pictures✦asks questions✦adapts✦listens✦remembers the board✦

Live demo · no model needed

Watch the tutor write on the board

The tutor doesn't place pixels. It streams a small line protocol, and the board turns each line into handwriting, sketches and pen marks. Press play, or click any line to jump to it.

tutor stream protocol.ts
    Gradient descent ready
    Press play to start the lesson.

    How it teaches

    A real lesson, not a wall of text

    Every lesson follows the same rhythm a good tutor uses. Click through the steps.

    It asks before it teaches

    Type a topic, attach notes, or point it at a folder of slides. The tutor greets you, puts a title on the board and asks one or two real questions: what you want to be able to do, and what you already know.

    • Attach PDFs and text files, read in the browser
    • Pick Sonnet, Opus or Fable for the live tutor
    • Or try the scripted demo with no model at all
    The OpenStudy start page: a box asking what you want to learn, a model picker, a folder input and a demo lesson link.

    Features

    Everything a whiteboard can do, and a few things it can't

    Tap a card to open it up.

    A handwritten comparison table of imitation and reinforcement learning, with Can beat the expert highlighted.

    Blocks are laid out in columns by the client, never by the model. Pan, pinch or ctrl-scroll to zoom, hold space to drag anywhere. KaTeX renders the maths.

    Handwritten text: The loop. Action, state changes, Reward circled in red, better action next time.

    Annotations are measured from text ranges or picture regions, so the circle lands exactly on what the tutor is talking about, even on pictures and pages of your PDFs.

    A sketched chart: skill against training time, imitation starts strong while RL keeps climbing.

    Charts, flows and geometry come out of the model as plain SVG and get the sketchy treatment on the board. No keys required.

    A pencil sketch of a robot agent, a maze environment with a coin, and a state loop, with the coin circled.

    Gemini 2.5 Flash Image by default, or gpt-image-1, or Flux. The tutor always tells you what to look at in a picture and marks it.

    With a Deepgram key the tutor speaks with Aura-2 and listens with Nova, streamed through your local tutor server so audio starts in a few hundred milliseconds. Without one, the browser's own speech is used. The board keeps step with the voice either way.

    Pages come onto the board as pictures with word boxes from the PDF text layer, or from local OCR (tesseract, no network) for scans and screenshots. The tutor marks on your actual words.

    An interactive reward meter with a slider, embedded on the board.

    A figure library built with the Anatomy skill, shown in sandboxed frames. Animated @motion diagrams for movement, and @build_figure jobs that build a brand new model in the background.

    A pencil sketch of a child on a bicycle with cookies along the path labelled cookies equal reward.

    Boards live in a local SQLite file. Reopen one from the start page and pick up the conversation where you left it, or print it and keep the notes.

    Screenshots

    Take the tour

    Real captures from the scripted demo lesson. Click any image to view it full size.

    Drag the board

    The finished RL 101 board, at full size. Drag, swipe or use the buttons.

    100%
    The finished Reinforcement Learning 101 board laid out in columns: notes, table, sketches, chart, motion diagram and interactive model. ✋ drag me

    Setup

    Build your setup

    Only the claude CLI is required; the tutor and planner bill to the Claude plan you're logged in with. Everything else is optional. Pick what you want and copy your .env.

    Live tutor model
    Pictures on the board
    Voice
    .env
    rough cost per hour of lesson ~$0.95 on top of your Claude plan
      1. 1

        Sign in to Claude

        Install Node 22, pnpm and the claude CLI. Run claude once and sign in.

      2. 2

        Clone and install

        git clone https://github.com/delsqrdpsi/openstudy && cd openstudy && pnpm install
      3. 3

        Add keys and start

        cp .env.example .env && pnpm dev

        Web on localhost:3000, tutor server on :8787.

      Under the hood

      Small pieces, plainly put together

      apps/web

      The board

      Next.js. Blocks, column layout, pan and zoom, handwriting, rough.js sketches, annotations, voice.

      apps/tutor

      The tutor server

      Websocket sessions, the claude CLI headless per turn, the planner, image and voice adapters. Holds your keys.

      packages/shared

      The contract

      Block schema, lesson events, the streaming protocol parser, the board reducer and layout.

      FAQ

      Questions, answered

      Do I need an API key to try it?

      No. The scripted demo lesson on the start page runs with no model at all. For live lessons you need the claude CLI signed in to your Claude plan; the tutor and planner bill there, not to an API key.

      What does it cost to run?

      The Claude plan covers the tutor. A generated picture is about a cent or two, and an hour of Deepgram voice is under a dollar. A small ring at the top of each lesson shows the running cost live.

      Does my data leave my computer?

      Keys stay in .env on your machine. The browser only talks to your local tutor server, which calls the providers you've configured. Boards, generated images and prepared pages are stored locally under ./data.

      Which browsers work?

      Any modern browser for the board. With a Deepgram key, voice works everywhere too. Without one, the microphone falls back to the browser's speech recognition, which needs Chrome or Edge.

      Can it teach from my own course material?

      Yes. Point it at a folder: PDFs, decks (pptx, odp, key, converted with LibreOffice when installed), images and text. Pages land on the board and the tutor annotates your actual words.

      Can I use it commercially?

      OpenStudy is source-available under the PolyForm Noncommercial License 1.0.0: free for personal study, research, hobby projects, teaching, charities, schools and public institutions. For a commercial licence, contact @delsqrdpsi.

      What do you want to learn today?

      Clone it, sign in, ask. The board is waiting.