Saltar al contenido

Env Example Checker · Configuración

Detecta las variables de entorno ausentes de tu .env.example.

Pega tu código y tu .env.example para encontrar las variables de entorno que tu código lee pero que faltan en el ejemplo —además de las claves que nada lee— por completo en tu navegador.

Se ejecuta en tu navegador Sin registro Gratis y abierto Actualizado el 22 jul 2026

Entorno de pruebas del Env Example Checker

Processed entirely in your browser — contents are never uploaded.

your-code
.env.example

Tip: press Esc to release focus.

Drift Report

No share links on this tool — inputs may be secrets.

Load an example or paste your own code and .env.example, then check to see which variables drifted.

La brecha

El .env.example siempre se desvía.

Una nueva variable aterriza en el código y en tu .env local, y el .env.example, el archivo que de verdad se confirma en el repositorio y que copia cada compañero de equipo, queda atrás en silencio. El .env está ignorado por git, así que nada te avisa. Esa desviación de variables de entorno entre el código y la configuración permanece invisible hasta que alguien clona el proyecto y la aplicación falla por una clave ausente, o hasta que variables de entorno ausentes rompen una canalización de CI porque nunca se documentó una variable obligatoria.

Comprobarlo a ojo en una base de código extensa es exactamente el tipo de comparación mecánica que una herramienta debería hacer. Este verificador lee ambas direcciones a la vez: lista las variables que tu código usa pero que el ejemplo no tiene —las que rompen una descarga recién hecha— y las claves que el ejemplo aún declara pero que nada lee, para que puedas eliminar las obsoletas con confianza.

¿Quieres verlo antes? Salta a las dos entradas o prueba el entorno de pruebas en vivo de arriba.

La canalización

Cómo funciona.

Cinco pasos deterministas comparan tu código con tu ejemplo, todos dentro de la pestaña de tu navegador, cada vez.

  1. Examina el código.

    Se recorre tu código fuente en busca de cada lectura de variable de entorno: process.env, os.environ, $NAME y las demás.

  2. Analiza el ejemplo.

    Tu .env.example se lee como líneas KEY=value, omitiendo comentarios y líneas en blanco, en un conjunto de claves.

  3. Compara los dos conjuntos.

    Los nombres usados en el código se confrontan con las claves declaradas en el ejemplo, en ambas direcciones a la vez.

  4. Saca a la luz las brechas.

    Las variables usadas pero no declaradas se señalan como ausentes; las claves declaradas pero no leídas se señalan como sin usar.

  5. Corrige y vuelve a comprobar.

    Añade las claves ausentes a tu ejemplo, elimina las obsoletas y vuelve a ejecutar hasta que el informe esté limpio.

Las entradas

Dos entradas, ambas familiares.

El verificador lee exactamente dos cosas: el código de tu aplicación y tu .env.example. Si alguna vez has escrito alguno de los dos, estos te resultarán de lo más conocidos.

El código

Cualquier código fuente que lea variables de entorno. El escáner reconoce process.env.NAME e import.meta.env.NAME en Node / Vite, os.environ["NAME"] / os.getenv("NAME") en Python, os.Getenv("NAME") en Go, y el simple $NAME en shell.

server.ts
// server.ts
const port = process.env.PORT ?? '3000';
const dbUrl = process.env.DATABASE_URL;
const apiKey = process.env["STRIPE_SECRET_KEY"];

if (!dbUrl) {
  throw new Error('DATABASE_URL is required');
}

El .env.example

Líneas dotenv estándar: KEY=value por línea, con comentarios # y líneas en blanco ignoradas. Para la comparación solo importan los nombres de las claves, así que los valores de marcador no son problema. Este es el archivo que tus compañeros de equipo copian a un .env real.

.env.example
# .env.example
PORT=3000
DATABASE_URL=postgres://localhost:5432/app

# STRIPE_SECRET_KEY is used in server.ts but
# was never added here — the checker flags it.

# Declared below but nothing reads it — flagged as unused.
LEGACY_FEATURE_FLAG=false

Próximamente

Haz que la compilación falle ante una desviación.

El verificador del navegador es el primer paso. Una CLI lista para usar ejecutará la comparación idéntica sobre tu repositorio en CI, de modo que una entrada olvidada del .env.example haga fallar la compilación en lugar de romper el primer git clone de un compañero de equipo.

Junto a ella está prevista una Action propia de GitHub que envuelve la CLI. Ambas llegan próximamente; el verificador en el navegador de arriba funciona hoy.

ci.sh
# Coming soon — the same check in CI
$ envcheck ./src --example .env.example

  ✗ Missing from .env.example (1)
      STRIPE_SECRET_KEY   used in src/server.ts

  ! Unused in .env.example (1)
      LEGACY_FEATURE_FLAG

  1 missing, 1 unused

Una nota sobre el alcance

Cómo funciona la detección: el verificador identifica las lecturas de variables de entorno por sus patrones de acceso comunes y literales —process.env.NAME, os.environ["NAME"], $NAME y similares—. Los nombres construidos dinámicamente en tiempo de ejecución (por ejemplo, process.env[someVariable]) no pueden resolverse de forma estática, así que no aparecerán en el conjunto de usadas. Trata un informe limpio como una sólida confianza de que tu configuración documentada coincide con tu código, y aun así revisa por encima a mano cualquier búsqueda calculada.

FAQ

Tus preguntas, respondidas.

Toca una pregunta para desplegar la respuesta.

Compara las variables de entorno que tu código lee realmente con las claves declaradas en tu .env.example. Pega ambos, pulsa Comprobar y te informa de dos brechas: variables usadas en el código pero ausentes del ejemplo (las que perjudican a un nuevo desarrollador o a un despliegue recién hecho) y claves declaradas en el ejemplo que nada lee (entradas obsoletas que conviene eliminar). Todo se calcula en tu navegador.

No. El verificador se ejecuta 100 % en el cliente. Tu código fuente y tu archivo de ejemplo se analizan y comparan en la pestaña de tu navegador: no se sube nada a un servidor y no hay cuenta ni registro. Es seguro pegar código interno y claves de configuración.

Reconoce las formas habituales en que el código lee variables de entorno en los ecosistemas más populares: process.env.NAME y process.env["NAME"] en Node y TypeScript, import.meta.env.NAME en Vite, Deno.env.get("NAME") en Deno, os.environ["NAME"] / os.getenv("NAME") en Python, ENV["NAME"] / ENV.fetch("NAME") en Ruby, os.Getenv("NAME") en Go, System.getenv("NAME") en Java, y getenv / $_ENV["NAME"] en PHP. El lado del .env.example se analiza como líneas estándar KEY=value, ignorando comentarios y líneas en blanco.

Se añade una nueva variable al código y al .env local, pero el .env.example —que es el archivo que se confirma en el repositorio y el que copian los compañeros de equipo— se olvida. La desviación es invisible hasta que alguien clona el proyecto, copia el ejemplo y la aplicación falla por una clave ausente, o hasta que un despliegue falla porque nunca se documentó una variable obligatoria. Esta herramienta saca a la luz esa desviación antes de que llegue a producción.

Informa de cada variable que el código lee y que el ejemplo no declara; si una variable dada es estrictamente obligatoria es una decisión que solo tu código puede tomar (un valor por defecto puede hacerla opcional). Trata la lista de ausentes como el conjunto que debes revisar y documentar: añade cada una al .env.example con un valor de marcador seguro o un comentario que indique que es opcional.

Pega tu código fuente en el panel de código y tu .env.example en el panel de plantilla, luego pulsa Comprobar. El verificador examina el código en busca de todas las referencias a variables de entorno —process.env.X, os.getenv("X"), import.meta.env.X y patrones similares— y compara ese conjunto con las claves de tu .env.example, listando cada variable que el código lee y que el archivo de ejemplo no declara.

El verificador ejecuta la comparación en ambas direcciones a la vez. Junto al informe de claves ausentes, también lista cada clave que tu .env.example declara y que no aparece en el código pegado, de modo que puedas eliminar con seguridad variables obsoletas o sobrantes y mantener la plantilla concisa y precisa.

Ejecuta este verificador antes de confirmar, para detectar pronto cualquier variable que tu código lea y que el ejemplo omita. Mantener el .env.example sincronizado con el código ofrece a las canalizaciones de CI y a los compañeros de equipo una plantilla completa, lo que significa que la aplicación falla rápido en el momento de la configuración en lugar de fallar en tiempo de ejecución con un error de variable indefinida. Está prevista una versión de CLI para comprobaciones automatizadas en CI.

Comparar .env con .env.example confronta dos archivos de configuración entre sí: solo sabe qué claves declara cada archivo. Este verificador, en cambio, lee el código fuente real para saber qué variables se usan de verdad, de modo que detecta variables que el código necesita y que están ausentes de todos los archivos de configuración, y señala las claves del ejemplo que el código nunca usa. Esa distinción es lo que lo hace útil para detectar la desviación de variables de entorno entre el código y la configuración, no solo entre dos archivos de configuración.

No. Es una utilidad independiente y comunitaria, y no está afiliada ni respaldada por ningún framework, runtime o biblioteca dotenv. Modela la convención .env / .env.example, ampliamente utilizada, y los patrones habituales de acceso a entorno solo para describir lo que comprueba.

More free, private DevOps tools.

El Env Example Checker es una herramienta más de OpsCanopy: una creciente cúpula de validadores, convertidores y verificadores basados en el navegador que nunca tocan un servidor.

¿Empiezas con Docker?  Lee la guía de Docker →

29 herramientas gratuitas, todas pueden funcionar sin conexión — opscanopy.com funciona sin registro y sin subir nada.

¿Validando configuración y canalizaciones? Combínalo con el GitHub Actions Validator para detectar problemas de flujos de trabajo antes del push, o explora el directorio completo de herramientas.

No está afiliado ni respaldado por ningún framework, runtime o biblioteca dotenv. La convención .env / .env.example y los patrones de acceso a entorno se mencionan solo para describir lo que esta herramienta comprueba.