
JupyterLite WebMCP
Winning OpenAI WebMCP Challenge entry: a JupyterLab extension giving a browser agent 22 tools over your live notebook, kernel, selection and review threads.
Software engineer building agent systems, developer tools, and languages & runtimes. After hours, I maintain the firmware for my own split keyboards.
OpenAI WebMCP Challenge winner: JupyterLite WebMCP

Your notebook is already in the browser. Now your agent can be too.
A browser agent that works in the notebook you already have open (same unsaved cells, same selection, same kernel), with every change visible and reviewable in place. No server, no API key, no chatbot bolted on.
Recent things I've built and shipped.

Winning OpenAI WebMCP Challenge entry: a JupyterLab extension giving a browser agent 22 tools over your live notebook, kernel, selection and review threads.

Rust coding-agent runtime: chat in the terminal, hand work to background workers as tickets, review and accept it. State is an append-only event log.

A chronological social network you use from the terminal: Ink/React TUI, web PWA peer, E2EE DMs, federation lab, and user-side moderation.

A lean GPU terminal emulator in Rust: wgpu instanced rendering, damage-only redraws, no idle frames, 60 themes, and CRT/glass effects. Built for Claude Code.

PlantUML-compatible diagrams without Java or Graphviz: a Rust compiler with its own layout engine, emitting SVG/PNG/PDF from a CLI, LSP and in-browser WASM.

24-hour Stories for GitHub: rings on avatars via a browser extension, and a gh CLI that draws them (video too) right in your terminal.
Human-in-the-loop, inspectable agent workflows
Terminals, runtimes, CLIs
Typed shells, Markdown-native languages, diagram compilers
Split keyboards, ZMK/QMK firmware, a self-hosted media server
Notes on agents, tools, languages, and whatever I broke this week.



Questions about WebMCP or browser agents, a hackathon team with a free seat, or a tool you wish existed? Email is the fastest way to reach me.