1. El problema — EnvRune
Todo proyecto tiene un .env: un archivo en texto plano junto al código que se copia entre máquinas, aparece en capturas de pantalla y registros, y es el primer archivo que lee un agente de IA. EnvRune mantiene el mismo flujo de trabajo —un nombre para cada variable, un valor por entorno— y traslada los valores a una bóveda cifrada que solo los entrega a los procesos que tú inicias.

2. Las restricciones — EnvRune
Una herramienta de seguridad que estorba acaba abandonada: si ejecutar el proyecto resulta más difícil que con el .env, el equipo vuelve al .env. Cada protección debía costar casi nada en el día a día y, aun así, mantener el valor fuera del repositorio, de la terminal, de los registros y del contexto de un agente de IA. El siguiente paso es aún más difícil: compartir secretos con el equipo a través de un servidor sin tener que confiar en él.

3. La decisión — EnvRune
Los valores inyectados que el proceso imprima salen como ****, incluidas sus formas codificadas en URL y en base64. Como un valor puede llegar dividido entre dos bloques de salida, el filtro retiene solo el final que todavía podría ser el comienzo de un secreto; y, en una terminal, el proceso se ejecuta dentro de un pseudoterminal, de modo que los colores, las barras de progreso y los prompts siguen funcionando.

4. La solución — EnvRune
Construí en solitario una CLI en Go, distribuida como un único binario. Los valores viven en una bóveda local cifrada con XChaCha20-Poly1305, con la clave protegida por la contraseña maestra mediante Argon2id; el proyecto solo guarda nombres, en un envrune.yml versionable; y envrune run inyecta las variables directamente en el proceso y enmascara la salida. Para equipos, EnvRune Cloud es opcional y está cifrado de extremo a extremo: el servidor almacena texto cifrado y nombres y, por defecto, no puede leer ningún valor.

5. El aprendizaje — EnvRune
envrune mcp es un servidor MCP para Claude Code, Cursor y Copilot: el agente ejecuta las pruebas o arranca el servidor de desarrollo con los secretos inyectados y recibe la salida enmascarada. Ninguna herramienta devuelve un valor, y solo pueden ejecutarse los comandos con nombre definidos en envrune.yml: los comandos arbitrarios vienen desactivados por defecto.
