A claude.ai-style study workspace tuned for math, programming, and data science. Powered by your Claude Max/Pro subscription via a local bridge to the claude CLI — no API key required.
- Chat UI that mirrors the calm look of claude.ai (warm paper background, serif headings, sidebar of recent chats).
- KaTeX for inline
$...$and block$$...$$math. - Plotly function/graph plots from
```plotfenced blocks (function expressions or full Plotly specs). - Excalidraw hand-drawn-style diagrams from
```excalidrawblocks (geometry, FSMs, free-body diagrams, trees). - Pyodide in-browser Python from
```python-runblocks — including a step-through visualizer (Step ◀ ▶) showing per-line variable state, with matplotlib output rendered inline. - SQLite-backed persistence of conversations.
- Node 20+
- The Claude Code CLI installed and logged in:
npm i -g @anthropic-ai/claude-code claude /login # OAuth with your Max/Pro subscription claude --version
pnpm install # or npm install
pnpm dev
# open http://localhost:3000
Hit /api/health to verify the bridge sees the CLI.
lib/bridge/claudeProcess.ts spawns one claude -p --output-format stream-json --input-format stream-json subprocess per conversation, pipes user turns in as JSONL and forwards text_delta events out via SSE. Idle subprocesses are evicted after 10 minutes. This is the officially supported headless mode of the CLI, so it uses your subscription credits the same way claude in your terminal does.
- "Explain the chain rule with a worked example."
- "Plot sin(x)/x and cos(x) on the same axes from -10 to 10."
- "Draw a 3-4-5 right triangle with the angles labeled."
- "Write binary search and step me through it on [1,3,5,7,9] looking for 7."
- "Show me numpy broadcasting with a runnable example and a small plot."