Browser control + dev-server logs on one correlated timeline — so a browser console error and the backend stack trace from the same moment sit side by side. For AI agents and humans.

claude mcp add devloop --scope user -- npx -y devloop-mcpThen, in any project: “dev_start and repro a navigate to /projects.” It starts your dev server, drives the browser, and returns a correlated slice of both sides. Need one instance shared across agents? devloop-mcp daemon. MCP blocked by an enterprise sandbox? Drive the tools as shell commands — see the mcporter guide.
Drop this in your CLAUDE.md (or any agent's rules file) so it drives features through Devloop and verifies them live — instead of guessing from the code:
For browser or Expo / React Native feature work, use **devloop**:
- dev_start, then browser_navigate (or native_open for iOS/Android).
- After a change, reproduce it with `repro` and read the result —
never claim a fix works without exercising it in the running app.
- browser_snapshot for clickable element refs; `diagnose` +
get_logs_around to line up a console error with the matching
server stack trace from the same moment.
- Done = verified live in devloop: no console/page errors, the
expected network calls succeeded, the UI reflects the change.
- Setup stays yours: devloop names the missing toolchain + the fix
command — it diagnoses, never installs. Run it, then rebuild.The full copy-paste block is in the README.
A desktop app: tabbed browser panes (and Expo iOS/Android targets) beside a unified, filterable timeline, a repro builder, an element picker, and pop-out browser windows. Grab your platform:
Server stdout/stderr and browser console/network/page-errors share one clock — correlate cause and effect across the stack.
Drive a browser, or an Expo/React Native app on the iOS simulator or an Android emulator — live device in the pane, native logs + RN network on the same timeline, snapshot/tap via idb/adb.
Run an action sequence (navigate / click / type / eval), wait for network idle, and get everything that happened on both sides.
Run several projects at once; query logs by app name, not just the active pane. Each project gets isolated browser storage.
Run one devloop-mcp daemon and many agents/sessions share it over HTTP/SSE — one browser, one dev server, one timeline.
Headless stdio for Claude Code, MCP-over-HTTP for the cockpit + daemon, or call the tools as plain shell commands via mcporter when MCP is sandboxed.
Three transports expose one shared, transport- & substrate-agnostic core, which drives a browser — or a native device. Everything lands on one timeline.
Devloop timestamps your dev server's stdout/stderr and the browser's console, network, and page errors into one buffer, so a console error and the backend stack trace from the same moment line up on a single correlated timeline.
Yes. Devloop is an MCP server. Add it with 'claude mcp add devloop --scope user -- npx -y devloop-mcp' and Claude Code can drive your browser and dev server and read both sides of the timeline.
Yes — it controls an Expo / React Native app on the iOS simulator or an Android emulator, with native logs and RN network on the same timeline and snapshot/tap via idb/adb.
Those show only the browser side. Devloop correlates the browser with your dev-server logs (and native logs) on one clock, and exposes it to AI agents over MCP — so you debug cause and effect across the whole stack, not just the front end.
Drive the same tools as plain shell commands via mcporter — see the mcporter guide in the GitHub README.
Run 'devloop-mcp daemon' and many agents or sessions share it over HTTP/SSE — one browser, one dev server, one timeline.