Skills Agentes

Memory Leak Debugging

Diagnostica y resuelve fugas de memoria en aplicaciones JavaScript/Node.js capturando, comparando e inspeccionando heap snapshots.

Estrellas
49.7k

en todo el repo

Actividad
65

0–100, la ruta de este skill

Actualizado
ayer

último commit aquí

Commits
5

últimos 90 días

Contexto
1k tok

55 tok en reposo

Paquete
2 archivos

6 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add ChromeDevTools/chrome-devtools-mcp --skill memory-leak-debugging --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Captura heap snapshots en distintos estados (baseline, tras interacciones, tras revertirlas) con las herramientas MCP en vez de leer .heapsnapshot en crudo
  • Compara snapshots para detectar crecimiento sospechoso por clase, y examina retainers, dominadores y cadenas de retención
  • Filtra por causas comunes: nodos DOM desconectados, event listeners no eliminados, closures y contextos, retención por consola
  • Cierra los snapshots cargados al terminar para liberar memoria del servidor MCP

Úsalo cuando

  • El usuario reporta uso alto de memoria, errores OOM, o quiere capturar/comparar/inspeccionar heap snapshots

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Mi app de Node se está quedando sin memoria, ayúdame a encontrar la fuga
    • Compara estos dos heap snapshots y dime qué está creciendo

    SKILL.md

    En inglés

    Memory Leak Debugging

    This skill provides expert guidance and workflows for finding, diagnosing, and fixing memory leaks in JavaScript and Node.js applications using Chrome DevTools MCP tools.

    Core Principles

    • Prefer MCP memory tools: Do NOT attempt to read raw .heapsnapshot files directly, as they are extremely large and will consume too many tokens. Use the Chrome DevTools MCP heap snapshot tools to summarize, compare, and inspect snapshots.
    • Isolate the Leak: Determine if the leak is in the browser (client-side) or Node.js (server-side).
    • Common Culprits: Look for detached DOM nodes, unhandled closures, global variables, event listeners not being removed, and caches growing unbounded. Note: Detached DOM nodes are sometimes intentional caches; always ask the user before nulling them.
    • Close Loaded Snapshots: Heap snapshots can be large. After completing an investigation, use close_heapsnapshot for each loaded snapshot to release memory held by the MCP server.

    Workflows

    1. Capturing Snapshots

    When investigating a frontend web application memory leak, utilize the chrome-devtools-mcp tools to interact with the application and take snapshots.

    • Use page-scoped tools like click, navigate_page, fill, etc. (specifying pageId) to manipulate the page into the desired state.
    • Revert the page back to the original state after interactions to see if memory is released.
    • Repeat the same user interactions 10 times to amplify the leak.
    • Use take_heapsnapshot (with pageId) to save .heapsnapshot files to disk at baseline, target (after actions), and final (after reverting actions) states.

    2. Comparing Snapshots

    Once you have generated .heapsnapshot files using take_heapsnapshot, compare them with Chrome DevTools MCP memory tools.

    • Start with get_heapsnapshot_summary for each snapshot to confirm that the files load and to compare high-level totals.
    • Use compare_heapsnapshots to compare baseline and target snapshots. Start without classIndex for the summary diff, then request detailed class diffs only for suspicious growth by specifying classIndex.
    • Use the summary output from compare_heapsnapshots before drilling into specific node IDs.

    3. Inspecting Retainers and Dominator Chains

    When a class or object type grows unexpectedly, inspect the retaining chain and dominators with the MCP tools before changing code.

    • Use get_heapsnapshot_class_nodes to list instances of the suspicious class.
    • Use get_heapsnapshot_retainers, get_heapsnapshot_retaining_paths, get_heapsnapshot_dominators, and get_heapsnapshot_edges to understand why representative nodes are still reachable.
    • Use get_heapsnapshot_object_details with a specific nodeId to retrieve detailed object metadata (size, type, distance, and DOM detachedness).
    • Use get_heapsnapshot_duplicate_strings when string growth dominates the diff.
    • Read references/common-leaks.md for examples of common memory leaks and how to fix them after the retaining path points at application code.

    4. Advanced Analysis and Categorized Filters

    Use built-in MCP memory tools and filters to pinpoint specific leak categories directly without external tools.

    • Use get_heapsnapshot_details or get_heapsnapshot_class_nodes with filterName to target common leak causes:
      • objectsRetainedByDetachedDomNodes: Identifies detached DOM elements retained in memory.
      • objectsRetainedByEventHandlers: Identifies objects kept alive by unremoved event listeners.
      • objectsRetainedByContexts: Identifies objects trapped in closures or execution contexts.
      • objectsRetainedByConsole: Identifies objects retained by console logging.

    Reproducido de ChromeDevTools/chrome-devtools-mcp bajo licencia Apache-2.0. Leer esta página en markdown.

    Archivos

    2 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere las herramientas de heap snapshot de Chrome DevTools MCP; no se deben leer los archivos .heapsnapshot en crudo.

    Detalles

    Licencia
    Apache-2.0
    Recursos incluidos
    referencias
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de ChromeDevTools/chrome-devtools-mcp

    Este repo incluye 6 skills. Si instalas uno, normalmente ya tienes los demás.

    Usa Chrome DevTools vía MCP para depuración eficiente, resolución de problemas y automatización del navegador. No aplica al modo --slim de configuración MCP.

    Costo de contexto al activarse
    1k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    ayer
    herramientas desarrollo

    Usa este skill para escribir scripts de shell o correr comandos de shell que automaticen el navegador u otras tareas de Chrome DevTools por CLI.

    Costo de contexto al activarse
    2.9k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    ayer
    herramientas desarrollo

    Usa Chrome DevTools MCP y su documentación para solucionar problemas de conexión y de target cuando fallan list_pages, new_page o navigate_page.

    Costo de contexto al activarse
    1.8k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    ayer
    herramientas desarrollo

    Usa Chrome DevTools por MCP para depuración y auditoría de accesibilidad (a11y) siguiendo las guías de web.dev. Úsalo al probar HTML semántico, ARIA, foco, teclado, tap targets y contraste.

    Costo de contexto al activarse
    1.5k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    ayer
    testing qa

    Guía la depuración y optimización del Largest Contentful Paint (LCP) usando las herramientas de Chrome DevTools MCP.

    Costo de contexto al activarse
    1.7k tok
    Tamaño del paquete
    5 archivos
    Última actualización
    ayer
    herramientas desarrollo

    Skills relacionados

    Usa Chrome DevTools vía MCP para depuración eficiente, resolución de problemas y automatización del navegador. No aplica al modo --slim de configuración MCP.

    Costo de contexto al activarse
    1k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    ayer
    herramientas desarrollo

    Usa este skill para escribir scripts de shell o correr comandos de shell que automaticen el navegador u otras tareas de Chrome DevTools por CLI.

    Costo de contexto al activarse
    2.9k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    ayer
    herramientas desarrollo

    Guía la depuración y optimización del Largest Contentful Paint (LCP) usando las herramientas de Chrome DevTools MCP.

    Costo de contexto al activarse
    1.7k tok
    Tamaño del paquete
    5 archivos
    Última actualización
    ayer
    herramientas desarrollo