Back to Directory/Developer Tools

io.github.dundas/thinkrun

Browser control + session recording MCP for AI coding agents (Claude Code, Cursor) — real Chrome.

Developer ToolsTypeScriptv0.3.8

ThinkRun — Screen Recorder for AI Coding Agents

Stop screenshotting bugs and typing paragraphs to explain them. ThinkRun records any browser session — or lets your agent record what it built — and turns it into structured context your AI coding agent can act on: every click, the console, network requests, your voice narration, and screenshots, all time-synced. Not just a screenshot. Not just a video.

Works with Claude Code, Cursor, Cline, Windsurf, and any MCP client.

Install

npx @thinkrun/mcp

Or install the CLI globally:

npm install -g @thinkrun/cli

The CLI automatically installs the native host binary, which lets AI tools control Chrome.

Add to your MCP config

{
  "mcpServers": {
    "thinkrun": {
      "command": "npx",
      "args": ["@thinkrun/mcp"]
    }
  }
}

Config location:

  • Claude Code: ~/.claude/settings.json
  • Cursor: .cursor/mcp.json
  • Cline: VS Code settings → Cline MCP Servers

Then ask your agent: "navigate to localhost:3000 and screenshot the checkout page" — or record the bug yourself and hand the agent the result.

Why ThinkRun

Other tools give your agent eyes. ThinkRun gives it structured sight — context it can parse in one pass instead of you re-explaining the page.

ThinkRunPlaywright MCP
Records a session into structured, replayable context✅❌ drive-only
Turns a recording into an AI-ready report (clicks, console, network)✅❌
Shareable link, also as LLM-ready Markdown / JSON✅❌
Uses your real Chrome — your cookies & sessions✅❌ headless only
Runs alongside your browser, no profile conflict✅❌ fights for Chrome profile

Agent skills for Claude Code, Cursor, Codex & Gemini CLI

Six portable agent skills ship in this repo, mirrored for every major harness (.claude/skills/, .cursor/skills/, .codex/skills/, .gemini/skills/):

  • prove-it — the prove step of a software-factory workflow: named test targets in, a pass/fail table with a screenshot, console and network capture per target out, posted to the PR; any non-pass row sends the change back to build.
  • before-after — the ship step: two captures at the same viewport, one | Before | After | table for the PR, no public paste host.
  • web-browse — browse the web programmatically: drive a real or cloud browser to navigate, interact, extract, and screenshot.
  • ux-audit — walk through a product UI as a real user, screenshot every step, and produce a structured UX report with a prioritized fix list.
  • thinkbrowse-cli — drive the browser from shell scripts via the thinkrun CLI.
  • thinkbrowse-mcp — drive the browser through the ThinkRun MCP server's tools.

Install without cloning — the repo is served as a live MCP server that auto-updates on every commit:

{ "mcpServers": { "thinkrun-skills": { "url": "https://mcp.skillsovermcp.com/mcp/dundas/thinkrun" } } }

Trigger accuracy is measured, not claimed. Every skill ships a 20-query trigger-eval fixture, and evals/BENCHMARK.md publishes the results: with the six-skill catalog (v4, 2026-09-18), 120/120 on GPT-5.6-terra and Claude Fable 5 and 113/120 on Claude Sonnet 5 (its documented strict-MCP reading, not a crash); the earlier four-skill matrix scored 79–80/80 on 12 of 16 model configurations. Catalog-ablation runs show the browsing skills absorb each other's traffic when installed as a subset, and that prove-it fills a gap rather than duplicating a sibling (before-after folds into prove-it when absent). Reproduce with bun evals/run-eval.ts build.

Manual binary install

If you need to install the native host without the CLI, download the binary for your platform from the latest release and run:

chmod +x thinkbrowse-host-* && ./thinkbrowse-host-* --install

The native host binary keeps the thinkbrowse-host filename for now — it's the same signed binary, unchanged by the rename.

FAQ

How do I give Claude Code (or Cursor) access to my browser?

Add ThinkRun as an MCP server — npx @thinkrun/mcp — and your agent can drive and read a real Chrome session, your cookies and logins included. See "Add to your MCP config" above.

How do I show Cursor a UI bug instead of pasting a screenshot?

Record the bug with ThinkRun. Instead of a flat image, your agent gets a structured artifact — the steps you took, the console errors, the failing network requests, and the DOM state at the moment it broke — so it fixes the actual problem instead of guessing from a picture.

Is there an MCP server that uses my real Chrome cookies and sessions?

Yes. ThinkRun runs against your real Chrome via a native host, so authenticated pages just work — no headless re-login, no separate profile, no fighting your browser for the Chrome profile.

How do I record a browser session for an AI coding agent?

Run npx @thinkrun/mcp (or npm i -g @thinkrun/cli) and record any session — or let the agent record what it built. ThinkRun turns it into an AI-ready report (clicks, console, network, narration, screenshots, all time-synced), available as a shareable link and as LLM-ready Markdown/JSON.

How do I give my AI coding agent context about what went wrong?

Hand it a ThinkRun recording. The structured "what happened" — actions, first bad signal, expected vs actual, and the element state — is exactly the context an agent needs to land a fix on the first try.

More

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @thinkrun/mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-dundas-thinkrun": {
      "command": "npx",
      "args": [
        "-y",
        "@thinkrun/mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@thinkrun/mcpnpm

Compatible MCP Clients

io.github.dundas/thinkrun works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More