惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
C
Check Point Blog
博客园 - Franky
月光博客
月光博客
T
Tenable Blog
博客园 - 聂微东
Cyberwarzone
Cyberwarzone
The GitHub Blog
The GitHub Blog
C
CERT Recently Published Vulnerability Notes
Scott Helme
Scott Helme
IT之家
IT之家
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CXSECURITY Database RSS Feed - CXSecurity.com
F
Full Disclosure
博客园 - 司徒正美
Project Zero
Project Zero
Y
Y Combinator Blog
A
Arctic Wolf
美团技术团队
博客园 - 叶小钗
S
Securelist
F
Fortinet All Blogs
T
Threatpost
T
Threat Research - Cisco Blogs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
酷 壳 – CoolShell
酷 壳 – CoolShell
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
Recorded Future
Recorded Future
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Schneier on Security
Apple Machine Learning Research
Apple Machine Learning Research
L
LangChain Blog
P
Privacy International News Feed
博客园_首页
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
P
Proofpoint News Feed
Cisco Talos Blog
Cisco Talos Blog
AWS News Blog
AWS News Blog
阮一峰的网络日志
阮一峰的网络日志
G
Google Developers Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
雷峰网
雷峰网
P
Proofpoint News Feed
Latest news
Latest news
G
GRAHAM CLULEY

developer.chrome.com: Blog

A developer toolkit to make your website agent-ready  |  Blog  |  Chrome for Developers What's New in WebGPU (Chrome 149-150)  |  Blog  |  Chrome for Developers Join the WebMCP origin trial  |  Blog  |  Chrome for Developers Seamless PWA origin migration: Change domains without losing users  |  Blog  |  Chrome for Developers Chrome 150 beta  |  Blog  |  Chrome for Developers New in Chrome 149  |  Blog  |  Chrome for Developers What's new in DevTools (Chrome 149)  |  Blog  |  Chrome for Developers Build new features using built-in AI in Chrome  |  Blog  |  Chrome for Developers What's new in web extensions: I/O 2026 recap  |  Blog  |  Chrome for Developers
Unlock runtime insights: Introducing third-party developer tools for Chrome DevTools for agents  |  Blog  |  Chrome for Developers
2026-06-18 · via developer.chrome.com: Blog
Skip to main content

Unlock runtime insights: Introducing third-party developer tools for Chrome DevTools for agents

Wolfgang Beyer

Published: June 18, 2026

To debug a modern web application effectively, an AI agent needs more than just your source code; it needs to understand how the application behaves at runtime.

We are excited to introduce third-party developer tools for Chrome DevTools for agents. Now, your apps and frameworks can give AI agents a direct look at their internal state. This helps agents connect the dots between what's happening on the screen and the logic running behind the scenes.

The goal: Beyond static analysis

Modern web development is built on abstractions—frameworks like Angular, React, or Vue; CMS platforms like WordPress or Shopify; and libraries for CSS, 3D graphics, or animations. While DevTools has direct access to the final rendered DOM, the "truth" of an application often lives inside the framework's internal state: component hierarchies, JavaScript signals, or backend state.

Our goal with third-party developer tools is to provide a path for any library to share this rich, actionable context with AI agents. By doing so, this lets agents debug issues that were previously "invisible" to them, for example:

  • Component hierarchies: Map a DOM element on the page directly to its corresponding framework component and internal state.
  • Internal state inspection: Access server-side state or database content directly within the debugging session.

How it works: The Discovery API

Third-party developer tools use an event-based JavaScript API. The Chrome DevTools MCP server discovers these tools by dispatching a devtoolstooldiscovery event on the global window object. The devtoolstooldiscovery event is automatically dispatched on every page navigation, or if the selected page is changed, and can be dispatched explicitly using the list_3p_developer_tools MCP tool.

Implement your own tools

To expose tools from your library or application, you need to listen for this discovery event and respond with a ToolGroup.

window.addEventListener('devtoolstooldiscovery', (event) => {
  event.respondWith({
    name: "My Library Tools",
    description: "Tools for inspecting internal library state",
    tools: [
      {
        name: "getInternalState",
        description: "Returns the current internal state of the framework.",
        inputSchema: {
          type: "object",
          properties: {
            componentId: { type: "string" }
          }
        },
        execute: async (input) => {
          // Access your framework's internal registry
          return myFramework.getState(input.componentId);
        }
      }
    ]
  });
});

Implementation is as follows:

  1. Define the schema: Use JSON Schema to define the input your tool expects.
  2. Handle the logic: Implement an execute function that runs in the page's context and returns serializable data.
  3. DOM elements: Non-serializable objects cannot be sent between the page and DevTools for agents. DOM elements are an exception. When your tools return DOM elements, DevTools for agents automatically maps them to the same UIDs used by the take_snapshot tool. This lets your agent interact with all page elements (whether they come from a framework or from a page snapshot) in the same way.

Once you register your tools, your coding agent can interact with them through DevTools for agents. The list_3p_developer_tools MCP tool returns descriptions of the third-party tools available on the page. Additionally, when the selected page changes (for example, after navigation), DevTools appends a list of available tools to the MCP tool response.

To use these tools, your agent calls execute_3p_developer_tool. DevTools automatically validates input parameters to ensure they match the tool's definition.

You can also invoke tools using the evaluate_script MCP tool. Your agent provides a JavaScript snippet that DevTools executes on the page. This snippet can call third-party developer tools and immediately use their output for further calculations.

Using evaluate_script is effective for complex debugging because it lets agents:

  • Compose operations: Combine multiple steps into a single execution.
  • Handle non-serializable values: Process framework-specific objects or signals directly in the page context.
  • Optimize performance: Minimize serialization overhead and avoid multiple round trips between the agent and the browser.

Early success: Angular integration

We've been collaborating with the Angular team, who implemented two third-party developer tools:

  1. Signal Graph tool: Gives agents the ability to visualize relationships between the state and the view, helping them identify dependencies that cause infinite loops or failed updates.
  2. Dependency Injection (DI) Graph tool: Exposes the element injectors, which lets agents see exactly where a service is provided or where it is missing. Because Angular's DI graph is a runtime-only construct, static analysis alone cannot debug provider errors.
A screencast showing an AI agent using the Angular Signal Graph tool to debug a reactive loop.

The React team has also started experimenting with third-party developer tools.

Build the future of agentic debugging with us

This experimental feature is available in Chrome DevTools for agents starting with version 0.25.0. To enable it, use the --categoryExperimentalThirdParty command-line flag.

If you maintain a framework, library, or tool and want to improve the debugging experience for coding agents, we'd love to collaborate:

Join us in building the future of agentic web development together!

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026-06-18 UTC.

[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-06-18 UTC."],[],[]]