Saltar al contenido
jungladigital

Variables de entorno y API keys, sin llorar

Tu API key es la llave de tu casa: tus programas saben dónde encontrarla, pero no está pegada en la puerta. Variables de entorno en Mac y Windows, con la prueba en código.

Pantalla de terminal mostrando una clave enmascarada con puntos en verde

Tu programa ya corre. Ahora una pregunta con trampa: cuando uses un servicio de IA, ese servicio te da una llave secreta (una API key) que te identifica… ¿dónde la guardas? Si tu respuesta fue «dentro del código», hoy te salvo de un clásico. La respuesta correcta se llama variable de entorno, y es menos aterradora de lo que suena.

¿Qué es una variable de entorno?

Es un dato con nombre que vive en tu terminal — no en tu código — y que cualquier programa puede leer al correr. Como la llave de tu casa: tus programas saben dónde encontrarla, pero no está pegada en la puerta. Eso resuelve el problema de las API keys: el código dice «usa la llave que esté en MI_CLAVE», y la llave real nunca sale de tu máquina — ni termina publicada por accidente donde no debía.

Este artículo se adapta a tu sistema
Mac
~/mi-jungla
$ export MI_CLAVE="sk-demo-1234"$ echo $MI_CLAVEsk-demo-1234

export la crea y echo la comprueba. Como los alias, dura hasta cerrar la ventana; para hacerla permanente ya conoces el camino — la misma línea, con >>, a tu ~/.zshrc:

~/mi-jungla
$ echo 'export MI_CLAVE="sk-demo-1234"' >> ~/.zshrc$ source ~/.zshrc

Windows

~/mi-jungla
$ $env:MI_CLAVE = "sk-demo-1234"$ echo $env:MI_CLAVEsk-demo-1234

El prefijo $env: es la forma de PowerShell de decir «esto vive en el entorno». Como los alias, dura hasta cerrar la ventana; para hacerla permanente hay un comando más formal — y sí, se ve intimidante, pero se usa una vez y listo:

~/mi-jungla
🖱 Con clics sería…
  1. SetEnvironmentVariable("MI_CLAVE", "sk-demo-1234", "User")
$ [Environment]# abre una ventana nueva y ya estará disponible siempre

Tu programa lee el secreto (sin conocerlo)

La prueba final conecta todo. Guarda esto como secreto.js — fíjate que el código no contiene ninguna llave:

const llave = process.env.MI_CLAVE;
console.log(llave ? "tengo la llave 🔑" : "aquí no hay ninguna llave");
~/mi-jungla
$ node secreto.jstengo la llave 🔑

Ese es el patrón exacto que usan los asistentes de IA: tú guardas la llave en tu entorno una vez, y ellos la leen con process.env (o su equivalente) sin que jamás aparezca en un archivo compartible. Dos reglas de oro para cerrar: la llave nunca va en el código, y nunca se pega en un chat, foro o captura de pantalla — es la llave de tu casa, con tu tarjeta asociada.

En la última parada aprendes a mantener todo este taller aceitado — y con eso, el sendero queda completo.