chrome-devtools-axi · git:20260413.6cc8062 · 2026-04-13 · sha256 de8b6aeaa7ee6a79

chrome-devtools-axi git:20260413.6cc8062A

Immutable. This exact content never changes and is served at /api/v1/blob/de8b6aeaa7ee6a79.

---
name: chrome-devtools-axi
description: Use when browser work should prefer chrome-devtools-axi for navigation, screenshots, form interaction, console or network inspection, DevTools debugging, or shell-native browser automation with TOON output and contextual hints.
allowed-tools: Bash(npx -y chrome-devtools-axi:*), Bash(chrome-devtools-axi:*)
---

# Browser Automation with chrome-devtools-axi

`chrome-devtools-axi` wraps `chrome-devtools-mcp` with an AXI-style CLI.
Its strengths are TOON-friendly output, contextual `help[N]` hints, a no-args home view, and DevTools-oriented debugging flows that stay shell-native.

Use this skill first for general browser work when shell execution is acceptable and DevTools visibility matters.
Prefer it over `agent-browser` or `browser-use` when the task benefits from accessibility snapshots, console or network inspection, Lighthouse, or performance tracing from the same CLI.

## Bootstrap

Start with the `npx` entrypoint unless the CLI is already installed:

```bash
npx -y chrome-devtools-axi --help
npx -y chrome-devtools-axi
npx -y chrome-devtools-axi open https://example.com
```

- Once the package is installed or cached locally, `chrome-devtools-axi ...` is fine.
- On Windows PowerShell, quote ref arguments such as `"@1"` or `"@1_3"` so the shell does not mangle them.
- If `npx` is blocked by network policy, request permission or install the package once before continuing.

## First-Run Side Effects

On supported agents, the upstream CLI may auto-install session hooks unless `CHROME_DEVTOOLS_AXI_DISABLE_HOOKS=1` is set before the first run.
Expect possible updates to:

- `~/.claude/settings.json`
- `~/.codex/hooks.json`
- `~/.codex/config.toml`

If the user wants zero global config changes, set the environment variable before the first run:

```powershell
$env:CHROME_DEVTOOLS_AXI_DISABLE_HOOKS='1'
```

```bash
export CHROME_DEVTOOLS_AXI_DISABLE_HOOKS=1
```

## Core Workflow

1. Open a page with `open <url>`.
2. Read `page`, `snapshot`, and any emitted `help[N]` hints before improvising.
3. Reuse the emitted refs with `click`, `fill`, `type`, `press`, `hover`, `drag`, `dialog`, or `upload`.
4. Re-run `snapshot` after navigation or major DOM changes.
5. Switch to DevTools diagnostics with `console`, `network`, `lighthouse`, `perf-start`, `perf-stop`, `perf-insight`, or `heap` when the problem is broader than a single click path.

## Essential Commands

```bash
# Home view / current browser state
npx -y chrome-devtools-axi

# Navigation and page state
npx -y chrome-devtools-axi open https://example.com
npx -y chrome-devtools-axi snapshot
npx -y chrome-devtools-axi screenshot page.png --full-page
npx -y chrome-devtools-axi back
npx -y chrome-devtools-axi wait 2000
npx -y chrome-devtools-axi wait "Example Domain"

# Interaction
npx -y chrome-devtools-axi click "@1"
npx -y chrome-devtools-axi fill "@2" "user@example.com"
npx -y chrome-devtools-axi type "hello"
npx -y chrome-devtools-axi press Enter
npx -y chrome-devtools-axi hover "@3"
npx -y chrome-devtools-axi drag "@4" "@5"

# Page and tab management
npx -y chrome-devtools-axi pages
npx -y chrome-devtools-axi newpage https://example.com
npx -y chrome-devtools-axi selectpage 2
npx -y chrome-devtools-axi closepage 2
npx -y chrome-devtools-axi resize 1440 900

# DevTools diagnostics
npx -y chrome-devtools-axi console
npx -y chrome-devtools-axi network
npx -y chrome-devtools-axi lighthouse
npx -y chrome-devtools-axi perf-start
npx -y chrome-devtools-axi perf-stop
npx -y chrome-devtools-axi heap heap.heapsnapshot

# Scripted / advanced
npx -y chrome-devtools-axi eval "document.title"
npx -y chrome-devtools-axi run < script.txt
```

Use `--full` when the default output truncates useful details.

## Preferred Usage Patterns

- Use the no-args command to inspect current browser state before guessing the next step.
- Follow emitted `help[N]` suggestions when the tool already tells you the likely next action.
- Use `open` plus a follow-up `snapshot` when you need a fresh, explicit page state after navigation.
- Use `console` and `network` for debugging instead of trying to infer everything from DOM state alone.
- Use `lighthouse` and the `perf-*` commands when the task is about UX regressions, rendering, or runtime performance.

## When To Prefer This Skill

- The user wants browser automation from the shell rather than an MCP browser tool.
- The task mixes interaction and diagnostics.
- Compact output and next-step hints are more valuable than a large generic command surface.
- A persistent bridge across commands is useful so Chrome and the MCP session stay warm.

## When Not To Prefer It

- The environment already exposes direct Playwright browser tools and those are faster for the exact task.
- The user explicitly asked for `agent-browser`, `browser-use`, or another browser stack.
- The task is pure DOM automation with no need for DevTools data, AXI-style hints, or the home view.

## Operational Notes

- The bridge state lives under `~/.chrome-devtools-axi/`.
- The default bridge port is `9224`; override with `CHROME_DEVTOOLS_AXI_PORT`.
- Running with no command shows the home view instead of generic help.
- The tool is designed to keep stdout structured and agent-readable; treat stderr as diagnostics only.