VOLVER

Almacenamiento Seguro de Secretos en Node.js con cross-keychain

3 min de lectura

Deja de guardar claves API en archivos .env en texto plano. cross-keychain es una librería TypeScript que usa el gestor de credenciales nativo de tu SO para almacenar secretos de forma segura—macOS Keychain, Windows Credential Manager, o Linux Secret Service. Una API, cero archivos de configuración en texto plano.

Nacido de mcp-tool-selector (todavía en progreso), donde necesitaba gestionar claves API para múltiples servidores MCP sin dispersar secretos en archivos .env — o peor, commitearlos en repositorios. Se convirtió en una utilidad multiplataforma sólida, así que la publiqué.

De un vistazo

  • Funciona en macOS, Windows y Linux con soporte nativo de backend
  • Proporciona tanto API programática como CLI para almacenar/recuperar secretos
  • Fallback automático cuando los módulos nativos no están disponibles
  • Cero dependencias en la API pública, TS-first, Node 18+, ESM/CJS

Docs y API: lee el repo de GitHub y la página del paquete npm.

Prueba rápida: almacenar y recuperar secretos

Uso programático:

import { setPassword, getPassword } from "cross-keychain";
// Almacenar un secreto
await setPassword("myapp", "api-token", "sk-1234567890");
// Recuperarlo más tarde
const token = await getPassword("myapp", "api-token");
console.log(token); // "sk-1234567890"
// Eliminar cuando termines
await deletePassword("myapp", "api-token");

Uso CLI:

# Almacenar un secreto
npx cross-keychain set myapp api-token
# Recuperarlo
npx cross-keychain get myapp api-token
# Eliminarlo
npx cross-keychain delete myapp api-token

Por qué importa esto

Almacenar secretos en archivos .env o de configuración en texto plano es común pero arriesgado. Debes recordar hacerles .gitignore, rotarlos cuando se filtran, y gestionarlos entre entornos. Los almacenes de credenciales nativos del SO manejan esto—encriptados en reposo, controlados por acceso, e integrados con tu sistema.

cross-keychain proporciona una API consistente entre plataformas: escribe una vez, deja que el SO maneje el trabajo pesado.

Mi tercer proyecto diseñado por IA (después de mcp-server-giphy y env-interpolation), construido con múltiples agentes de IA. ¿Cansado de gestionar secretos en texto plano? Esto simplifica todo.

Cuándo usar cross-keychain

Esta librería es ideal para:

  • Herramientas CLI que necesitan almacenar tokens API entre sesiones
  • Entornos de desarrollo donde quieres almacenamiento seguro de credenciales
  • Aplicaciones locales que se autentican con servicios externos
  • Cualquier app Node.js que actualmente use archivos .env para secretos

No es adecuada para aplicaciones del lado del servidor en producción—esas deberían usar gestores de secretos dedicados como HashiCorp Vault o soluciones de proveedores cloud.

Conclusión

Si estás construyendo herramientas Node.js que manejan credenciales, deja de depender de archivos en texto plano. cross-keychain te da almacenamiento seguro y nativo con una superficie de API mínima. Los secretos de tus usuarios merecen algo mejor que credentials.json.

Artículos relacionados: