Analizar un archivo dotenv en pares clave-valor
Los archivos dotenv parecen sencillos hasta que los valores contienen espacios, signos de comentario, asignaciones vacías o texto escapado.
Ejecutar — gratis
Este analizador convierte el contenido completo de un archivo .env en un objeto limpio de pares clave-valor mediante reglas sintácticas claras y previsibles. Ignora líneas vacías y comentarios, conserva el contenido entre comillas, reconoce comentarios en línea tras valores sin comillas e indica la línea exacta cuando una asignación no es válida. El resultado sirve para previsualizar configuraciones, migrarlas, validarlas y crear utilidades de desarrollo sin cargar variables en el entorno del proceso.
Proporcione el texto dotenv completo
Pegue o envíe el contenido del archivo .env en el campo text. Cada línea significativa debe contener una clave, un signo igual y un valor. Las claves comienzan con una letra ASCII o un guion bajo y pueden continuar con letras, dígitos o guiones bajos. Se aceptan líneas vacías, y toda línea cuyo primer carácter no blanco sea una almohadilla se considera un comentario. Las asignaciones vacías, como CACHE_PREFIX=, son válidas y producen una cadena vacía. El analizador devuelve un objeto values con los pares procesados y un recuento de claves únicas. Si una clave aparece varias veces, la última asignación sustituye a la anterior, como suele ocurrir al combinar fragmentos de configuración. La herramienta nunca escribe en el entorno de la máquina, expande variables, lee archivos ni contacta con servicios. Solo procesa el texto enviado, por lo que su comportamiento es seguro para previsualizaciones y reproducible en scripts de compilación, extensiones de editor, comprobadores y procesos de migración.
Comprenda las comillas, los escapes y los comentarios
En los valores sin comillas se elimina el espacio exterior. Una almohadilla inicia un comentario en línea únicamente cuando está precedida inmediatamente por un espacio, de modo que los fragmentos de URL y tokens como color=#fff permanecen intactos. Las comillas simples conservan literalmente el texto interior, incluidas las almohadillas y los espacios. Las comillas dobles también los conservan, pero interpretan escapes habituales de barra inversa para salto de línea, retorno de carro, tabulación, comillas dobles y barra inversa. Tras cerrar las comillas solo se permiten espacios o un comentario. Estas reglas eliminan ambigüedades sin evaluar instrucciones de shell. El analizador no interpola referencias como ${HOST}, no ejecuta sustituciones de comandos ni convierte cadenas como true y 8080 en booleanos o números. Todos los valores siguen siendo cadenas, porque los datos dotenv son textuales y cada aplicación debe decidir su propia conversión. Así no se pierden ceros iniciales, diferencias entre mayúsculas o valores intencionadamente vacíos.
Trate las entradas no válidas de forma explícita
Use la herramienta web para comprobaciones individuales y la API cuando necesite integrar la misma capacidad en un flujo automatizado.
Qué puede hacer con ella
Validar la configuración antes del despliegue
Rechace pronto el contenido dotenv mal formado e indique a la persona responsable la línea exacta que debe corregir.
Previsualizar una migración de configuración
Convierta texto .env heredado en un objeto estructurado antes de asignar sus claves a otro sistema de configuración.
Crear una herramienta para desarrollo
Use una salida clave-valor previsible en extensiones de editor, asistentes de instalación, utilidades de compilación o comparadores.
Preguntas frecuentes
¿Cuánto cuesta una solicitud?
Una solicitud mediante la API cuesta $0.002. El ejecutor del navegador puede analizar localmente el mismo contenido.
¿Los valores se convierten en números o booleanos?
No. Todos permanecen como cadenas, incluidos 8080, true, false y las asignaciones vacías.
¿Cómo se tratan las claves duplicadas?
Prevalece la última asignación, y count indica el número de claves únicas del resultado final.
¿Puede un valor entre comillas contener una almohadilla?
Sí. Las almohadillas dentro de comillas simples o dobles forman parte del valor y no inician un comentario.
¿El analizador expande referencias a variables?
No. Referencias como ${HOST} se devuelven literalmente; no se evalúan expresiones de shell ni del entorno.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev2/env-file-parse \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="}'const res = await fetch("https://api.kit.forhosting.com/dev2/env-file-parse", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/env-file-parse",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/env-file-parse", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"APP_NAME=\\"Example service\\"\\nDEBUG=true\\nPORT=8080\\n# Optional local override\\nEMPTY="}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/env-file-parse", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.env_file_parse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |