Six turns changed what the product was for.
As each chapter crosses the center line, the recorded browser at left changes with it. On smaller screens, it stays pinned above the narrative.
A browser wakes up.
The first chapter was infrastructure: a frontend, API surface, browser service, sessions, and a first merged implementation.
frontend ready on :5173
browser-service session provisioned
✓ PR #1 merged
Automation gets a window.
Video, artifacts, before-and-after frames, live plans, and resilient task execution made invisible work inspectable.
The run becomes replayable.
Extension recording and Loom-style public shares turned “I saw a bug” into a link another person—or another agent—could inspect.
Video stops being the whole story.
Embed, upload, MCP, evidence-first feedback, and local-control receipts made one recording readable in several forms.
→ video human replay
→ markdown agent context
→ json structured evidence
→ oembed portable playback
The verb outgrew the noun.
By June, it did more than browse: record, replay, share, diagnose, and hand work back to an agent. ThinkBrowse became ThinkRun.
From memory to agency.
Agent-facing CLI/MCP parity, remote-control grants, connector work, and safer local sessions created a controlled path from evidence to action.
LOCAL · READYthinkrun.aiGRANTED · SCOPEDRECORDINGFirst, make the browser move.
The story begins as a browser automation platform: React and Vite in front, Cloudflare and a browser service behind it, sessions holding the thread together. The first merged PR was simply called complete implementation. Ambitious, optimistic, and—as the next 571 merged PRs would prove—very early.
Then, make the work visible.
Sessions gained a video player, artifact APIs, before-and-after screenshots, analytics, and live task-plan updates. Retry logic and continue-on-failure changed the emotional texture of the product: an agent run was no longer an opaque request. It had state, evidence, and a way back from failure.
A run becomes something you can send.
The Chrome extension, CLI-free automation, public share pages, and Loom-style session sharing moved the product beyond observability. A browser run could now leave the machine as a replayable artifact. The week of March 16 became the recorded high-water mark: 155 commits.
The artifact learns to travel.
oEmbed made replays portable. R2-backed uploads made recordings durable. MCP parity made them agent-readable. Evidence-first feedback bound comments to the moment that caused them. The key realization was quiet but foundational: a recording is not merely video. It is a structured account of what happened.
The product finds its real name.
Recording, upload, replay, continuity, action, and agent handoff had outgrown “browse.” On June 12, an internal-first migration moved packages, binaries, UI, and runtime markers to ThinkRun while deliberately freezing the native-host ID, extension identity, and legacy paths that existing users depended on.
The witness becomes a bridge.
CLI and MCP parity, screenshots, remote browser-control grants, connector work, and onboarding diagnostics moved the story toward its current shape: a human records or attaches the real browser; an agent receives structured context; policy and review keep the human in control.