---
title: "Ernesto para Claude Code: Compañero de QA"
canonical: https://wavect.io/es/tools/ernesto-claude-code/
language: es
description: "Ernesto te acompaña en Claude Code. Su modo QA opcional muestra resultados de pruebas, cambios posteriores y lo que todavía no se ha verificado."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

Mod de Claude Code · 0.1.0

# Ernesto para Claude Code

Claude dice que ha terminado. Ernesto quiere ver las pruebas.

Ernesto es un pequeño compañero animado para Claude Code. Su modo QA opcional muestra resultados de pruebas compatibles, su alcance registrado y la última comparación del estado del código.

[Instalar Ernesto](#ernesto-install) [Ver código fuente](https://github.com/wavect/ernesto)

![Ernesto, el compañero de programación turquesa de Wavect](/img/ernesto/ernesto-sarcastic_hu_7ee93acc1f09652a.webp)Mod de Claude Code · 0.1.0

Versión pública

## Un resultado puede quedar obsoleto mientras lo lees.

Runtime real de 0.1.0 grabado en el terminal con una prueba aritmética local ficticia. Los bytes del runtime y del ayudante coinciden con la etiqueta publicada. Los estados del navegador son una vista simulada aparte; elegir uno no ejecuta pruebas.

### Transcripción

Grabación de la salida real del terminal CLI de Claude Code 2.1.296 en macOS 26.5.1 con Ernesto 0.1.0, Node 24.3.0 y Vitest 4.1.11. El ejemplo es una prueba aritmética local ficticia. Las celdas del terminal se representan fielmente; el panel y la banda están recortados y las pausas acortadas. El ayudante se ejecutó explícitamente en otro proceso local. No se enviaron prompts ni llamadas al modelo. Las coincidencias corresponden a las entradas revisadas en el momento mostrado, no a servicios externos ni a una ejecución resistente a manipulaciones.

El modo compañero comienza con QA desactivado.

El ayudante local de Vitest, iniciado explícitamente, registra un resultado aprobado para una prueba seleccionada.

Una edición del código deja desactualizado el resultado anterior.

Una nueva ejecución real falla. El anfitrión muestra el fallo.

El chocolate cambia el ánimo del compañero; la evidencia del fallo no cambia.

Explora los estados de QA

Abre un ejemplo para entender el resultado y el siguiente paso. Son ilustraciones y no se ejecutan pruebas en tu navegador.

### Sin evidencias

No se ha registrado ningún resultado compatible. Desconocido no significa aprobado.

### Ver ejemplo

Ejemplo ilustrativo · una comprobación local

**Resultado**
Ninguna ejecución registrada
**Instantánea del código**
No se capturó ninguna instantánea

**Siguiente paso:** Ejecuta explícitamente la comprobación configurada para registrar un resultado.

### Resultado aprobado registrado

Una comprobación configurada pasó para su alcance declarado en el estado registrado del código. Solo describe esa comprobación.

### Ver ejemplo

Ejemplo ilustrativo · una comprobación local

**Resultado**
Una comprobación configurada superada
**Instantánea del código**
Las entradas declaradas coincidían en la última comparación

**Siguiente paso:** Revisa el alcance. Un resultado correcto solo cubre lo que se comprobó.

### Resultado obsoleto

Una entrada registrada cambió después de la comprobación. El resultado anterior sigue siendo evidencia histórica. Ejecuta la comprobación de nuevo.

### Ver ejemplo

Ejemplo ilustrativo · una comprobación local

**Resultado**
Una ejecución anterior fue correcta
**Instantánea del código**
Una entrada capturada cambió después de la ejecución

**Siguiente paso:** Repite la comprobación con las entradas modificadas. El resultado anterior es histórico.

### Comprobación fallida

La comprobación configurada terminó con un fallo. Otras pruebas y criterios de aceptación siguen siendo independientes.

### Ver ejemplo

Ejemplo ilustrativo · una comprobación local

**Resultado**
Una comprobación configurada falló
**Instantánea del código**
Se registró la instantánea de la ejecución fallida

**Siguiente paso:** Inspecciona el fallo, corrige el código y repite la comprobación.

## Un poco de personalidad. Sin configurar el proyecto.

Deja que Ernesto te acompañe mientras desarrollas. Puedes ocultarlo, silenciar sus comentarios o reducir las animaciones cuando necesites más tranquilidad.

## El modo QA se activa por separado.

El modo compañero no necesita integración de pruebas. Para QA, configura el ayudante local y el runner compatible siguiendo la documentación del código publicado. Tú eliges cuándo ejecuta pruebas. El mod observa sus evidencias y no inicia pruebas silenciosamente.

## Comprende qué cubre realmente el resultado.

El modo QA opcional lee un resultado estructurado compatible de un espacio de trabajo. Compara las entradas declaradas y la configuración con el estado capturado. Una coincidencia en la última comparación no demuestra que se haya probado cada archivo, dependencia, servicio externo o requisito del negocio.

## Instalar, actualizar y eliminar

El código de terceros se ejecuta con tus permisos de usuario. Revisa el código, las capacidades y los requisitos antes de instalarlo. Ernesto es un mod independiente de Wavect, sin aval de Anthropic.

La sintaxis combinada de terminal exige Claude Code 2.1.292 o posterior; la de sesión exige 2.1.275 y confirmación del origen. El mod puede requerir un host probado más reciente.

### Terminal del sistema

```
claude plugin install ernesto --marketplace wavect/ernesto
```

Copiar comando

### Dentro de una sesión de Claude Code

```
/plugin install ernesto --marketplace wavect/ernesto
```

Copiar comando

### Alternativa explícita en dos pasos

```
claude plugin marketplace add wavect/ernesto
claude plugin install ernesto@ernesto
```

Copiar comando

### Actualizar

La actualización verificada de rc.1 a 0.1.0 ejecutó primero `claude plugin marketplace update ernesto` y después `claude plugin update ernesto@ernesto --scope user`. Utiliza el ámbito de tu instalación y recarga los plugins o reinicia después. No se han probado transiciones a versiones posteriores.

```
claude plugin update ernesto@ernesto
```

Copiar comando

### Desinstalar

```
claude plugin uninstall ernesto@ernesto
```

Copiar comando

### Eliminar el marketplace (opcional)

```
claude plugin marketplace remove ernesto
```

Copiar comando

La instalación y desinstalación usan el ámbito de usuario por defecto. Utiliza el ámbito elegido al instalar. Recarga los plugins o reinicia la sesión después de los cambios. Las actualizaciones automáticas de marketplaces de terceros están desactivadas por defecto. Eliminar un marketplace también desinstala sus plugins. Revisa por separado las preferencias de Ernesto, la configuración del ayudante QA y las evidencias locales antes de borrar nada; conserva los archivos del proyecto.

[Documentación de instalación de Claude Code](https://code.claude.com/docs/en/plugins/install)

## La compatibilidad necesita pruebas.

La siguiente tabla muestra hosts, sistemas operativos y versiones de runner probados para este lanzamiento. Solo esas combinaciones están admitidas. Las traducciones del sitio no implican una interfaz del mod en cuatro idiomas. El chat normal de Claude y Cowork no muestran la interfaz del mod de Code.

Ernesto for Claude Code 0.1.0

Claude Code: 2.1.296

- CLI terminal · macOS 26.5.1, Apple M3 Pro, arm64 · 2.1.296
- Vitest (Node 24.3.0) · 4.1.11

## Privacidad y límites

El runtime auditado de la versión publicada no añade llamadas al modelo, telemetría ni solicitudes de red externas. Claude y las pruebas que decidas ejecutar mantienen su propio uso de red, tratamiento de datos y costes. El ayudante iniciado explícitamente guarda resúmenes escalares y descriptores de instantáneas; las pruebas del proyecto pueden escribir sus propios archivos. Otros procesos locales pueden modificar la evidencia. Ernesto no es un entorno aislado ni una auditoría independiente. Una terminación forzada puede dejar un archivo escalar incompleto, que el mod rechaza.

## El código y las imágenes tienen términos distintos.

El código fuente utiliza la licencia MIT. Wavect conserva los derechos de las ilustraciones y las marcas: se permite mostrarlas en el plugin, hacer capturas de demostración y redistribuir el plugin con atribución, según los términos separados de ASSET_LICENSE.md. Otros usos requieren permiso de Wavect. El acceso a Claude y tu infraestructura de pruebas pueden tener requisitos y costes propios.

MIT (source code) · Wavect artwork rights retained; plugin display and attributed redistribution permitted; see ASSET_LICENSE.md

## Preguntas antes de instalar

### ¿Qué es Ernesto?

Un mod de Wavect para Claude Code que combina una interfaz divertida con seguimiento opcional de resultados de pruebas compatibles.

### ¿Ernesto ejecuta pruebas automáticamente?

No. Tú eliges cuándo ejecutar la integración local configurada. El mod observa resultados compatibles, sin iniciar pruebas ni instalar herramientas de forma oculta.

### ¿Qué significa que un resultado esté desactualizado?

Las entradas registradas o la configuración ya no coinciden con el último resultado observado. Sigue siendo un registro histórico, no una comprobación actual del trabajo modificado.

### ¿Superar las pruebas significa que el código está listo para producción?

No. El resultado describe una comprobación concreta y su alcance. El comportamiento no probado, el estado externo y la aceptación del negocio siguen siendo cuestiones separadas.

### ¿Dónde funciona Ernesto?

La siguiente tabla muestra hosts, sistemas operativos y versiones de runner probados para este lanzamiento. Solo esas combinaciones están admitidas. Las traducciones del sitio no implican una interfaz del mod en cuatro idiomas. El chat normal de Claude y Cowork no muestran la interfaz del mod de Code.

### ¿Ernesto es gratuito?

El código fuente utiliza la licencia MIT. Wavect conserva los derechos de las ilustraciones y las marcas: se permite mostrarlas en el plugin, hacer capturas de demostración y redistribuir el plugin con atribución, según los términos separados de ASSET_LICENSE.md. Otros usos requieren permiso de Wavect. El acceso a Claude y tu infraestructura de pruebas pueden tener requisitos y costes propios.

### ¿Puedo desinstalarlo?

La instalación y desinstalación usan el ámbito de usuario por defecto. Utiliza el ámbito elegido al instalar. Recarga los plugins o reinicia la sesión después de los cambios. Las actualizaciones automáticas de marketplaces de terceros están desactivadas por defecto. Eliminar un marketplace también desinstala sus plugins. Revisa por separado las preferencias de Ernesto, la configuración del ayudante QA y las evidencias locales antes de borrar nada; conserva los archivos del proyecto.

## ¿Necesitas QA independiente, además de un compañero?

Un resultado visible ayuda a formular mejores preguntas. Una decisión de lanzamiento sigue necesitando pruebas independientes, revisión de código y aceptación humana.

[Explorar QA de software independiente](/es/services/software-quality-assurance/) [Hablar con Wavect](/es/contact/)

## Creado por Wavect · referencias

- [Conocer a Ernesto, la mascota de Wavect](/es/ernesto/)
- [Entender Claude Mods y los function hooks](/es/blog/claude-mods-function-hooks/)
- [Ver código fuente](https://github.com/wavect/ernesto)
- [Notas de lanzamiento](https://github.com/wavect/ernesto/releases/tag/v0.1.0)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/es/tools/ernesto-claude-code/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-10-14",
      "datePublished": "2026-10-14",
      "description": "Ernesto te acompaña en Claude Code. Su modo QA opcional muestra resultados de pruebas, cambios posteriores y lo que todavía no se ha verificado.",
      "inLanguage": "es",
      "mainEntity": {
        "@id": "https://wavect.io/tools/ernesto-claude-code/#software"
      },
      "name": "Ernesto para Claude Code",
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/es/tools/ernesto-claude-code/"
    },
    {
      "@id": "https://wavect.io/tools/ernesto-claude-code/#software",
      "@type": "SoftwareApplication",
      "datePublished": "2026-10-14",
      "description": "Ernesto te acompaña en Claude Code. Su modo QA opcional muestra resultados de pruebas, cambios posteriores y lo que todavía no se ha verificado.",
      "license": {
        "@type": "CreativeWork",
        "name": "MIT (source code)"
      },
      "name": "Ernesto for Claude Code",
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "softwareVersion": "0.1.0",
      "url": "https://wavect.io/tools/ernesto-claude-code/"
    },
    {
      "@id": "https://wavect.io/tools/ernesto-claude-code/#software#source",
      "@type": "SoftwareSourceCode",
      "codeRepository": "https://github.com/wavect/ernesto",
      "license": {
        "@type": "CreativeWork",
        "name": "MIT (source code)"
      },
      "name": "Ernesto for Claude Code",
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "targetProduct": {
        "@id": "https://wavect.io/tools/ernesto-claude-code/#software"
      }
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/",
      "name": "Inicio",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/tools/",
      "name": "Herramientas",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/tools/ernesto-claude-code/",
      "name": "Ernesto para Claude Code",
      "position": 3
    }
  ]
}
```
