Free and open source · macOS, Windows, Linux

Debug React Native and web apps from one place

Logs, network (including WebSockets), storage, and state from Redux, Zustand, TanStack Query, SWR and React Context, streamed live from your app to a local UI. On React Native 0.85 and later, logs, network and storage need no SDK.

Runs on your computer. No account, no telemetry.

Capybara's Network tab: a list of an app's requests and the JSON response of the selected one.

See what your app is doing

One window for every app on your simulators, phones and browser tabs, updated as things happen.

Find out why a request failed

Browsers only tell your app “Failed to fetch”. Capybara repeats the request's CORS steps from your computer and names the cause: a missing Access-Control-Allow-Origin, a failing preflight, a blocked port.

A failed request explained: blocked by CORS because the response has no Access-Control-Allow-Origin header.

See your app's state, change by change

Redux, Zustand, TanStack Query, SWR and React Context in one tab: every action with what it changed, the current state, and query caches you can refetch or invalidate. Redux Toolkit, zustand's devtools() and Context need no extra code.

The State tab: a Redux store's actions, and what the selected cart/addItem action changed.

Logs that keep their shape

Objects, Maps, Sets, Dates and errors arrive as values you can expand, stack included. Filter by level or regex, and copy one entry or all of them.

The Logs tab of a React Native app, with an expanded error and its stack.

Read and edit storage

localStorage, sessionStorage and cookies on the web. AsyncStorage and MMKV in React Native. Values refresh as the app writes them, and JSON opens as a tree.

The Storage tab showing AsyncStorage keys and a settings value opened as a JSON tree.

Open it on your phone

Start Capybara with --remote-ui and scan the QR code under the device button: the UI opens on a phone, tablet or another computer on your network. Without the flag it only opens on your computer, since it shows everything your apps send.

The device button open over the Network tab: a QR code and the address to open Capybara on another device.
Capybara on a phone, showing a React Native app's logs.

No SDK for React Native

On React Native 0.85 and later, Capybara attaches through Metro. Start your app as usual; nothing to install in it.

Requests and WebSockets

fetch, XHR and axios with headers, bodies and timing. WebSocket messages both ways, with socket.io frames decoded.

Ask your AI assistant

Capybara's MCP server lets Claude Code, Cursor and other MCP clients add Capybara to your app, then read and filter its logs, requests, storage and state, with credentials hidden.

Get started

Pick the kind of app you're working on.

React Native 0.85+

Works today

No SDK and no changes to your app.

  1. Open the desktop app, or run Capybara in a terminal and use it in your browser:
    npx capybara-devtools
  2. Start Metro and run your app on a simulator or phone.
  3. Your app appears, with its logs, network and storage.

Web apps

Coming to npm

Install the SDK and call init() in a file your app imports first, so it runs before your stores load. In Next.js, put it in instrumentation-client.ts. Or let your AI assistant do it.

npm install @capybara-devtools/web
// src/capybara.ts, the first import of main.tsx
import { init } from '@capybara-devtools/web';

if (import.meta.env.DEV) init({ appName: 'My web app' });

AI assistants

Coming to npm

Your assistant can add Capybara to your app, then read what it records while you debug.

  1. Add Capybara's MCP server. In Claude Code:
    claude mcp add capybara -- npx capybara-devtools mcp
    Cursor and other clients run npx capybara-devtools mcp from their MCP settings.
  2. Ask it to set Capybara up. It installs the SDK, calls init() where your app loads it first and connects your state libraries:
    Set up Capybara in this project
  3. Then ask it about your app: its logs, failed requests, storage and state.

Older React Native, editing storage, or state in a React Native app? Add @capybara-devtools/react-native; the README shows how. Until the packages are on npm, run Capybara from source.

How it works

  1. Your app React Native through Metro, or a web page with the SDK
  2. Capybara A small server on your computer, on port 7357
  3. You The desktop app or a browser tab, and your AI assistant over MCP

Everything runs on your computer: no account, no cloud service, no telemetry.

Download Capybara

Free for macOS, Windows and Linux. Latest release on GitHub

macOS

Apple silicon (M1 or later)

First launch

Capybara isn't notarized by Apple yet. If macOS won't open it, go to System Settings › Privacy & Security and click Open Anyway.

Windows

Windows 10 and 11, x64

First launch

The installer needs no admin rights. SmartScreen may warn about an unknown publisher: choose More info, then Run anyway. When Windows Firewall asks, allow private networks so phones on your Wi-Fi can connect.