CTO & co-founder of Ventosa. This is my lab notebook on working with AI — what worked, what broke, what I had to rethink.
Today I learned
2026-06-14#mcp
Connecting and authenticating custom MCPs in Claude Web
Custom MCP servers can be integrated directly into Claude Web as a connector — no Claude Desktop needed. Save the server URL, then authentication runs via OAuth flow in the browser. After connecting, the tools appear deferred and must first be loaded per session before they can be called. Auth errors (e.g., 402/credential errors) come through cleanly and can be traced back to the token/account.
2026-06-11#tooling
Fable 5, first try — a Next app and a Chrome extension
Only worked two hours today. Fable 5 built a Next app and a Chrome extension that talks to the Next API. Didn't get Cloudflare voice agents to work on the second attempt either.
2026-06-10#agents
Cloudflare agents and the “think” loop
Learned about Cloudflare agents and their think-loop implementation. If the realtime voice agents disappoint, LiveKit is next. Still don't really know how to connect voice agents to the DOM.
2026-06-08#claude-code
Stop writing specs, write tests
The spec rots the moment the agent starts coding; tests don't. Writing the test first gives Claude Code a target it can't argue with. Review time dropped by half.
2026-06-05#voice
Voice ↔ DOM is still an unsolved map
Every approach I sketched for wiring a voice agent to the DOM dies in the same place: who owns focus? Notes on three dead ends, kept here so I stop revisiting them.
// raw notes — written for myself, published as-is