{
  "title": "Control your REAL Chrome with Chrome CDP",
  "excerpt": "When your AI agent launches a web browser to test your site or Chrome extensions, its context is completely empty. Every time you have to start from scratch: re-authenticate on every site, deal with CAPTCHAs because the browser is detected as automated, etc. Result: unusable for your real workflows. Chrome-cdp fixes that in one line: your agent slips into your Chrome, sees what you see, acts where you work.",
  "locale": "en",
  "publishedAt": "2026-03-15T10:29:06.656Z",
  "updatedAt": "2026-03-28T17:25:22.214Z",
  "author": {
    "name": "Cédric TOURNIER",
    "username": "Amorem",
    "url": "https://mysaas.blog/en/@Amorem"
  },
  "tags": [
    "skills",
    "chrome",
    "playwright",
    "mcp"
  ],
  "relatedSaas": [],
  "sources": [
    {
      "title": "Chrome DevTools Protocol",
      "url": "https://chromedevtools.github.io/devtools-protocol/",
      "hostname": "chromedevtools.github.io"
    },
    {
      "title": "Your Browser Has a Remote Control — And Nobody Told You",
      "url": "https://dev.to/timtech4u/your-browser-has-a-remote-control-and-nobody-told-you-5e97",
      "hostname": "dev.to"
    },
    {
      "title": "pasky/chrome-cdp-skill",
      "url": "https://github.com/pasky/chrome-cdp-skill",
      "hostname": "github.com"
    }
  ],
  "urls": {
    "html": "https://mysaas.blog/en/@Amorem/control-your-real-chrome-with-chrome-cdp",
    "markdown": "https://mysaas.blog/en/@Amorem/control-your-real-chrome-with-chrome-cdp/md",
    "json": "https://mysaas.blog/en/@Amorem/control-your-real-chrome-with-chrome-cdp/json"
  },
  "wordCount": 304,
  "images": [
    {
      "url": "https://assets.mysaas.blog/posts/2026-03-21/c206a15c-c8d2-4c35-99de-ee5fd71532f0.jpg",
      "alt": null,
      "title": null,
      "width": null,
      "height": null
    },
    {
      "url": "https://assets.mysaas.blog/posts/2026-03-21/0883c81f-f9f9-4d63-baad-1484c8f04197.png",
      "alt": "Playwright MCP",
      "title": null,
      "width": 1338,
      "height": 390
    },
    {
      "url": "https://assets.mysaas.blog/posts/2026-03-21/ef60c5cd-edca-4dd4-93ef-4b5a256584df.png",
      "alt": "CDP protocol",
      "title": null,
      "width": 330,
      "height": 152
    },
    {
      "url": "https://assets.mysaas.blog/posts/2026-03-15/00262a59-516a-40fa-a069-1c99d106c383.png",
      "alt": "Chrome 146",
      "title": null,
      "width": 2216,
      "height": 1518
    },
    {
      "url": "https://assets.mysaas.blog/posts/2026-03-15/457626de-f536-4f48-9595-213ce4e07b1e.png",
      "alt": "Enable remote debugging in Chrome",
      "title": null,
      "width": 1562,
      "height": 772
    },
    {
      "url": "https://assets.mysaas.blog/posts/2026-03-15/cf59eafb-89a7-44f5-af6f-44f706cf817b.png",
      "alt": "skills.sh",
      "title": null,
      "width": 2614,
      "height": 1674
    },
    {
      "url": "https://assets.mysaas.blog/posts/2026-03-15/e4c715b1-0f18-4e26-ad0d-4580c65ee959.png",
      "alt": "Claude is happy",
      "title": null,
      "width": 2870,
      "height": 1534
    }
  ],
  "content": {
    "markdown": "## The problem\n\nI lost several hours banging my head against Playwright automation. It's become rare to be blocked on a technical issue in the age of AI.\n\nI wanted Claude to access the DOM of the Twitter feed page to identify HTML patterns and test modifications in real time.\n\nSimple in theory.\n\n![Playwright MCP](https://assets.mysaas.blog/posts/2026-03-21/0883c81f-f9f9-4d63-baad-1484c8f04197.png)It quickly turns into a nightmare. From a technical standpoint, Playwright starts from a fresh, isolated browser (in automation mode) on every execution.\n\nSo I have to log back into Twitter, which obviously detects that the browser is in test/automation mode and blocks me.\n\n## The (belated) solution\n\nI was out of ideas and, above all, out of patience when I saw a Twitter post announcing that Chrome had just released **version 146**, and from there a solution that could simplify everything: **chrome-cdp**.\n\nAs we've seen, most browser automation tools launch an isolated, empty browser every time.** **Not chrome-cdp — **it connects directly to your running Chrome**: your open tabs, your logged-in sessions, your current page state. Nothing to reinstall, nothing to reconfigure.\n\nCDP is the native interface that allows you to control Chrome from its lower layers.\n\n![CDP protocol](https://assets.mysaas.blog/posts/2026-03-21/ef60c5cd-edca-4dd4-93ef-4b5a256584df.png)The chrome-cdp skill then uses it to pass simple commands to an agent. Which, incidentally, is much less context-expensive than using an MCP.\n\n**chrome-cdp** maintains a persistent daemon per tab: the modal only appears **once**, and it reliably handles **100+ tabs** where Puppeteer-based tools regularly time out.\n\n## \n\n## Installation in 4 steps\n\n### 1) Update Chrome to version 146\n\n![Chrome 146](https://assets.mysaas.blog/posts/2026-03-15/00262a59-516a-40fa-a069-1c99d106c383.png)\n\n### 2) Enable remote debugging\n\n```\nchrome://inspect/#remote-debugging\n```\n\nEnable the toggle. That's it.\n\n![Enable remote debugging in Chrome](https://assets.mysaas.blog/posts/2026-03-15/457626de-f536-4f48-9595-213ce4e07b1e.png)\n\n### 3) Fetch the skill and install it\n\n```\nnpx skills add https://github.com/pasky/chrome-cdp-skill --skill chrome-cdp\n```\n\n![skills.sh](https://assets.mysaas.blog/posts/2026-03-15/cf59eafb-89a7-44f5-af6f-44f706cf817b.png)\n\n### 4) Enjoy 🎉\n\nYour agent can now list your tabs, take screenshots, read the DOM, click, type text, evaluate JavaScript — all within **your real Chrome**, without leaving your workflow.\n\n![Claude is happy](https://assets.mysaas.blog/posts/2026-03-15/e4c715b1-0f18-4e26-ad0d-4580c65ee959.png)",
    "html": "<h2>The problem</h2><p>I lost several hours banging my head against Playwright automation. It's become rare to be blocked on a technical issue in the age of AI.</p><p>I wanted Claude to access the DOM of the Twitter feed page to identify HTML patterns and test modifications in real time.</p><p>Simple in theory.</p><img src=\"https://assets.mysaas.blog/posts/2026-03-21/0883c81f-f9f9-4d63-baad-1484c8f04197.png\" alt=\"Playwright MCP\" width=\"1338\" height=\"390\" data-image-size=\"medium\" data-media-id=\"cmnagf1jw0000rwvafmk3m77n\" /><p>It quickly turns into a nightmare. From a technical standpoint, Playwright starts from a fresh, isolated browser (in automation mode) on every execution.</p><p>So I have to log back into Twitter, which obviously detects that the browser is in test/automation mode and blocks me.</p><p></p><h2>The (belated) solution</h2><p>I was out of ideas and, above all, out of patience when I saw a Twitter post announcing that Chrome had just released <strong>version 146</strong>, and from there a solution that could simplify everything: <strong>chrome-cdp</strong>.</p><p>As we've seen, most browser automation tools launch an isolated, empty browser every time.<strong> </strong>Not chrome-cdp — <strong>it connects directly to your running Chrome</strong>: your open tabs, your logged-in sessions, your current page state. Nothing to reinstall, nothing to reconfigure.</p><p>CDP is the native interface that allows you to control Chrome from its lower layers.</p><img src=\"https://assets.mysaas.blog/posts/2026-03-21/ef60c5cd-edca-4dd4-93ef-4b5a256584df.png\" alt=\"CDP protocol\" width=\"330\" height=\"152\" data-image-size=\"medium\" data-media-id=\"cmnagf1p30001rwvaicgo0el9\" /><p>The chrome-cdp skill then uses it to pass simple commands to an agent. Which, incidentally, is much less context-expensive than using an MCP.</p><p><strong>chrome-cdp</strong> maintains a persistent daemon per tab: the modal only appears <strong>once</strong>, and it reliably handles <strong>100+ tabs</strong> where Puppeteer-based tools regularly time out.</p><h2></h2><h2>Installation in 4 steps</h2><h3>1) Update Chrome to version 146</h3><img src=\"https://assets.mysaas.blog/posts/2026-03-15/00262a59-516a-40fa-a069-1c99d106c383.png\" alt=\"Chrome 146\" width=\"2216\" height=\"1518\" data-image-size=\"medium\" data-media-id=\"cmnagf1z30002rwvae5g4oymi\" /><h3>2) Enable remote debugging</h3><pre><code>chrome://inspect/#remote-debugging</code></pre><p>Enable the toggle. That's it.</p><img src=\"https://assets.mysaas.blog/posts/2026-03-15/457626de-f536-4f48-9595-213ce4e07b1e.png\" alt=\"Enable remote debugging in Chrome\" width=\"1562\" height=\"772\" data-image-size=\"medium\" data-media-id=\"cmnagf24f0003rwvantcqeotu\" /><h3>3) Fetch the skill and install it</h3><pre><code>npx skills add https://github.com/pasky/chrome-cdp-skill --skill chrome-cdp</code></pre><img src=\"https://assets.mysaas.blog/posts/2026-03-15/cf59eafb-89a7-44f5-af6f-44f706cf817b.png\" alt=\"skills.sh\" width=\"2614\" height=\"1674\" data-image-size=\"medium\" data-media-id=\"cmnagf2az0004rwvanvxeh46p\" /><h3>4) Enjoy 🎉</h3><p>Your agent can now list your tabs, take screenshots, read the DOM, click, type text, evaluate JavaScript — all within <strong>your real Chrome</strong>, without leaving your workflow.</p><img src=\"https://assets.mysaas.blog/posts/2026-03-15/e4c715b1-0f18-4e26-ad0d-4580c65ee959.png\" alt=\"Claude is happy\" width=\"2870\" height=\"1534\" data-image-size=\"medium\" data-media-id=\"cmnagf2iv0005rwva3c40puwn\" /><p></p>",
    "text": "The problem I lost several hours banging my head against Playwright automation. It's become rare to be blocked on a technical issue in the age of AI. I wanted Claude to access the DOM of the Twitter feed page to identify HTML patterns and test modifications in real time. Simple in theory. It quickly turns into a nightmare. From a technical standpoint, Playwright starts from a fresh, isolated browser (in automation mode) on every execution. So I have to log back into Twitter, which obviously detects that the browser is in test/automation mode and blocks me. The (belated) solution I was out of ideas and, above all, out of patience when I saw a Twitter post announcing that Chrome had just released version 146 , and from there a solution that could simplify everything: chrome-cdp . As we've seen, most browser automation tools launch an isolated, empty browser every time. Not chrome-cdp — it connects directly to your running Chrome : your open tabs, your logged-in sessions, your current page state. Nothing to reinstall, nothing to reconfigure. CDP is the native interface that allows you to control Chrome from its lower layers. The chrome-cdp skill then uses it to pass simple commands to an agent. Which, incidentally, is much less context-expensive than using an MCP. chrome-cdp maintains a persistent daemon per tab: the modal only appears once , and it reliably handles 100+ tabs where Puppeteer-based tools regularly time out. Installation in 4 steps 1) Update Chrome to version 146 2) Enable remote debugging chrome://inspect/#remote-debugging Enable the toggle. That's it. 3) Fetch the skill and install it npx skills add https://github.com/pasky/chrome-cdp-skill --skill chrome-cdp 4) Enjoy 🎉 Your agent can now list your tabs, take screenshots, read the DOM, click, type text, evaluate JavaScript — all within your real Chrome , without leaving your workflow."
  }
}