Skip to content

YAML lint

Validador YAML

Descubre qué está mal en tu YAML — y dónde.

YAML

Pega tu YAML aquí o suelta un archivo en la página

JSON

JSON aparece aquí mientras escribes

Gratis e ilimitado · Sin registro · Cada error lleva la línea y columna exactas, una explicación clara y una solución sugerida.

Qué se comprueba

Sintaxis

Indentación, tabuladores, corchetes y comillas sin cerrar, y mapas y secuencias mal formados.

Estructura

Claves duplicadas, que YAML rechaza y que en JSON se colapsarían en silencio.

Referencias

Alias que apuntan a anclas que no existen, y anclas declaradas sin nombre.

Seguridad

Expansión descontrolada de alias — la forma «billion laughs» — antes de que pueda colgar la página.

Portabilidad

Valores que cambian de significado entre YAML 1.1 y YAML 1.2, marcados con lo que produce cada versión.

Etiquetas

Etiquetas personalizadas como !Ref o !GetAtt que no tienen significado estándar fuera de su herramienta.

YAML válido no siempre es YAML correcto

Un documento puede analizarse perfectamente y aun así significar algo que no pretendías. El caso clásico es country: no, válido en ambas versiones de YAML pero que produce la cadena "no" en una y el booleano false en la otra.

Por eso este validador informa de dos cosas distintas. Los errores significan que el documento no se puede analizar en absoluto. Las advertencias significan que se analiza, pero otra herramienta leería algún valor de forma diferente — conviene saberlo antes de que un manifiesto de Kubernetes llegue a un clúster.

Si quieres entender el error antes de corregirlo, la guía Errores comunes de YAML y cómo corregirlos repasa los seis fallos detrás de casi todos los análisis fallidos — tabuladores, dos puntos sin comillas, corchetes sin cerrar, claves duplicadas, anclas ausentes e indentación desigual — con un antes y después de cada uno.

Preguntas frecuentes

¿Qué comprueba este validador de YAML?

Primero la sintaxis: sangría, tabuladores, corchetes y comillas sin cerrar, y mapeos y secuencias mal formados. Después la estructura: claves duplicadas, alias que apuntan a anclas nunca declaradas y expansiones de alias descontroladas. Por último la portabilidad: etiquetas propias como !Ref, que no significan nada fuera de su herramienta, y cada valor sin comillas que YAML 1.1 y YAML 1.2 leen de forma distinta. Cada problema llega con línea y columna, una explicación en lenguaje claro, una corrección sugerida y una marca en el editor.

¿Por qué mi YAML valida pero se comporta mal?

Porque válido no es lo mismo que correcto. country: no se analiza sin errores en ambas versiones de YAML, pero es la cadena "no" en YAML 1.2 y el booleano false en YAML 1.1; así es como un país desaparece de una lista sin que nada falle. Lo mismo ocurre con 022, 12:30 y 1e3. Este validador los reporta como advertencias, no como errores: el documento se analiza, pero otra herramienta leería un valor de otra manera. Pon el valor entre comillas para eliminar la ambigüedad.

¿Qué significa «mapping values are not allowed in this context»?

El analizador encontró dos puntos seguidos de un espacio en un lugar donde ya estaba leyendo un valor. La causa habitual es un valor sin comillas que contiene a su vez dos puntos, como title: Deploy: production o una URL escrita sin comillas. Pon el valor entre comillas. La otra causa es una clave con una sangría distinta a la de las claves que la rodean, de modo que el analizador la lee como parte del valor anterior.

¿Qué significa «found character that cannot start any token»?

Casi siempre un tabulador usado como sangría, algo que YAML prohíbe. Los editores que convierten tabuladores en espacios ocultan el problema hasta que el archivo se edita en otro sitio. Sustituye el tabulador por espacios y mantén cada clave hermana con la misma anchura; el validador señala la línea exacta. El mismo mensaje aparece por un carácter de control perdido o por una @ o una comilla invertida al inicio de un valor.

¿Qué significa «did not find expected key»?

El analizador estaba leyendo un mapeo y esperaba que la siguiente línea fuera otra clave con la misma sangría, pero encontró otra cosa. Mira la línea anterior a la que se indica: un valor con un espacio más de sangría que sus hermanos, un guion que abre una lista donde se esperaba una clave o un valor que debería ir entre comillas. El validador recupera la causa real en corchetes y comillas sin cerrar, que la mayoría de los analizadores reportan mal bajo este mensaje.

¿Valida contra un esquema, como Kubernetes u OpenAPI?

No. Comprueba que el documento sea YAML bien formado y que signifique lo mismo para cualquier analizador; no sabe qué claves admite un Deployment o un documento OpenAPI. Para Kubernetes, kubectl apply --dry-run=client -f archivo.yaml comprueba un manifiesto contra el esquema del clúster. Para OpenAPI, GitHub Actions o JSON Schema, pasa el archivo por el validador de esquema de ese formato después de que supere esta comprobación.

¿Se sube mi YAML al validarlo?

No. La validación se ejecuta en tu navegador; no existe ningún endpoint al que enviar el documento y la página sigue funcionando después de desconectarte. Los archivos de configuración son justo el tipo de cosa que contiene nombres de host, rutas internas y algún que otro secreto, y por eso la herramienta se construyó así.

¿Cómo valido YAML desde la línea de comandos?

yamllint archivo.yaml reporta errores de sintaxis y problemas de estilo, y es la opción habitual en CI. yq . archivo.yaml imprime el documento o falla con un error de análisis. En Python, python -c "import sys, yaml; yaml.safe_load(sys.stdin)" < archivo.yaml falla con YAML no válido, aunque PyYAML lee YAML 1.1 y por tanto también tratará no como false. Ninguno explica el error como lo hace el validador de arriba: úsalos para que falle un pipeline y esta página para saber por qué.