# DevTools

Source: https://inspectorlab.dev/

> For the complete documentation index, see [llms.txt](https://inspectorlab.dev/llms.txt).

# Inspector Lab DevTools

Inspector Lab is a movable, resizable in-page inspector built as a Manifest V3 Chrome extension. It brings full DevTools capabilities directly to your page—Elements inspection with live styles and DOM editing, console capture and evaluation, network monitoring, and storage editing—running on desktop Chrome, Chromium browsers, and iPadOS through [Orion by Kagi](https://help.kagi.com/orion/browser-extensions/ios-ipados-extensions.html). Released under the MIT license.

<Frame caption="Inspector Lab - DevTools">
  <a href="https://github.com/luangjokaj/inspector-lab">
    <img src="/panel-elements.png" alt="Inspector Lab DevTools window" style={{ borderRadius: "0" }} />
  </a>
</Frame>

## Why Inspector Lab exists

Modern development increasingly means supervising agents and remote systems rather than typing code directly. When your work happens on a remote machine and you verify it from a tablet, the DevTools you rely on disappear—iPadOS has no F12, and desktop Chrome's inspector cannot run there at all.

Inspector Lab solves this by embedding a full inspection window directly into the page as a browser extension. Because it uses only content scripts and standard extension APIs—no debugger protocol—it runs anywhere a browser can load an extension: desktop Chrome, Chromium variants, and Orion on iPad and iPhone.

## What you get

- **Elements Panel**: Pick and highlight elements, edit attributes and text in place, apply validated inline CSS, view computed styles with a box-model diagram, and force element states.
- **Console**: Capture page output, evaluate expressions in the page context, view values colored by type with `file:line` source links.
- **Network**: Record live requests with headers, timing, and fetch/XHR body inspection; DevTools-style details pane for each request.
- **Sources**: Browse page sources in a collapsible tree with syntax highlighting; external files fetch on demand.
- **Cookies & Storage**: Edit cookies, local storage, and session storage in place.
- **UI**: Floats or docks to any viewport edge, resizable, themed light and dark, persists across reloads until closed.

The extension launches from the popup on your demand, using only temporary `activeTab` permission—no standing access to every site you visit.

<Frame caption="Inspector Lab in action on iPad">
  <video controls style={{ aspectRatio: "2421 / 1668", width: "100%" }} src="https://files.riangle.com/inspector-lab/ipad-demo.mp4" />
</Frame>

## Getting started

Install Inspector Lab in one click from the Chrome Web Store — this works on desktop Chrome, Chromium browsers, and Orion on iPad and iPhone, and updates automatically:

<Button href="https://chromewebstore.google.com/detail/inspector-lab-devtools/jhpgckgieinonbibmjdgejephdmdogle" icon="download">Install from the Chrome Web Store</Button>

### Building from source

Prefer to run a local build for development? Requires Node 20+ and pnpm 9+.

<Steps>
  <Step title="Clone the repository">
    ```bash
    git clone git@github.com:luangjokaj/inspector-lab.git
    cd inspector-lab
    ```
  </Step>
  <Step title="Install dependencies">
    ```bash
    pnpm install
    ```
  </Step>
  <Step title="Start development">
    ```bash
    pnpm dev
    ```
  </Step>
  <Step title="Load into Chrome">
    Open `chrome://extensions`, enable **Developer mode**, click **Load unpacked**, and select `apps/extension/build/chrome-mv3-dev`. The build reloads as you edit.
  </Step>
</Steps>

<Callout type="success">
Inspector Lab works on iPad via [Orion by Kagi](https://orionbrowser.com/), a free browser for iOS and iPadOS. All panels—Elements, Console, Sources, Cookies, and Storage—work fully. The Network panel captures live fetch and XHR traffic; where iOS limits the extension API surface, panels fall back gracefully and indicate what is unavailable.
</Callout>

### iPad installation

On iPad and iPhone, enable Chrome extensions once in Orion (**⋯ → Extensions → Chrome extensions**), then open the [Chrome Web Store listing](https://chromewebstore.google.com/detail/inspector-lab-devtools/jhpgckgieinonbibmjdgejephdmdogle) and tap install — no Files app, no sideloading. The installation guide covers this plus the manual sideloading flow for local builds.

<Button href="/installation" icon="rocket">Installation & Setup</Button>

<Columns cols={2}>
  <Card title="Features & Capabilities" icon="zap" href="/features">Full tour of every panel, keyboard shortcuts, device support, and known limitations.</Card>
  <Card title="Installation & Setup" icon="rocket" href="/installation">Detailed steps for desktop and iPad, development build setup, and troubleshooting.</Card>
  <Card title="Known Limitations" icon="alert-circle" href="/limitations">Honest boundaries: what Inspector Lab can and cannot do, and why.</Card>
  <Card title="Development" icon="wrench" href="/development">Set up a dev environment, run the build, and contribute to the project.</Card>
</Columns>

## Explore the panels

<Columns cols={2}>
  <Card title="Elements Panel" icon="layers" href="/panels-elements">DOM tree, live styles, attribute editing, forced states, and computed values with box model.</Card>
  <Card title="Console Panel" icon="terminal" href="/panels-console">Page output capture, expression evaluation, and source link navigation.</Card>
  <Card title="Network Panel" icon="activity" href="/panels-network">Live request recording, headers, timing, and response body inspection for fetch and XHR.</Card>
  <Card title="Sources Panel" icon="code-2" href="/panels-sources">Collapsible source tree with syntax highlighting and on-demand file fetching.</Card>
  <Card title="Cookies Panel" icon="cookie" href="/panels-cookies">View, edit, add, and delete cookies with full access to all attributes.</Card>
  <Card title="Storage Panel" icon="database" href="/panels-storage">In-place editing of local storage and session storage.</Card>
</Columns>

## Under the hood

<Columns cols={2}>
  <Card title="Architecture Overview" icon="cpu" href="/architecture">Component structure, page bridge, injection, React rendering, and Shadow DOM isolation.</Card>
  <Card title="Message Protocol" icon="send" href="/messaging">Content script, background, and popup communication; request-response patterns.</Card>
  <Card title="Page Bridge & Injection" icon="link-2" href="/page-bridge">Safe DOM access, data serialization, and lifecycle management from content scripts.</Card>
  <Card title="Theming & Styling" icon="palette" href="/theming">Light and dark themes, Cherry UI integration, and custom CSS with DevTools fallback mode.</Card>
</Columns>

## Advanced topics

<Columns cols={2}>
  <Card title="XML & SVG Document Support" icon="image" href="/xml-svg-support">Inspect non-HTML documents and SVG with full tree editing support.</Card>
  <Card title="Settings & Persistent State" icon="settings" href="/settings-storage">Theme preferences and per-tab inspector state stored locally.</Card>
  <Card title="Privacy & Data Handling" icon="shield" href="/privacy">What Inspector Lab collects (nothing), stores (only preferences), and transmits (never).</Card>
</Columns>

## Open source

Inspector Lab is built with [Plasmo](https://www.plasmo.com/) and released under the [MIT license](https://github.com/luangjokaj/inspector-lab/blob/main/LICENSE). The code is on [GitHub](https://github.com/luangjokaj/inspector-lab)—issues and pull requests are welcome. If you are planning a larger change, open an issue first to discuss it.

**[View the changelog →](/changelog)**
