Once: el CLI que evita aprobar con tu huella cada lectura de secretos

Once: Cache CLI Commands

Once ejecuta un comando en tu directorio, imprime su salida y la guarda en memoria en un pequeño daemon por usuario. Las llamadas repetidas con el mismo comando, directorio y tenant key se responden desde la memoria hasta que la entrada expira. El daemon se detiene solo cuando expira su última entrada. El caso típico: leer secretos de 1Password sin aprobar cada lectura con tu huella. Solo se cachea stdout; los comandos que fallan nunca se guardan.

El daemon se detiene por sí solo una vez que su última entrada ha expirado.
  1. aktau

    Este tipo de herramientas son muy útiles. Yo tengo la mía propia llamada memo (que no es más que un shell script: https://github.com/aktau/dotfiles/blob/master/bin/memo).

    Se habló de ella en https://news.ycombinator.com/item?id=45670052 y otros aportaron las suyas (como bkt(1) y up(1)).

    Las principales diferencias que veo:

    - memo no necesita compilarse (es un shell script)

    - once mantiene la caché de salida en un daemon en ejecución. En cambio, memo almacena el contenido bajo /tmp con la mejor compresión disponible (prefiere zstd). Hay ventajas y desventajas en eso. Más óptimo de Pareto desde el punto de vista de la seguridad podría ser tener una especie de clave de sesión y comprimir y luego cifrar los archivos en disco.

  2. __MatrixMan__

    Sueño con aplicaciones que expongan suficientes metadatos sobre sus salidas como para que el sistema operativo pueda saber si es necesario volver a ejecutarlas sin que yo tenga que especificarlo.

    Nixos hace esto para las compilaciones, pero no lo he visto generalizado a procesos arbitrarios.

  3. xuhu

    Ojalá esto funcionara sin tener que prefijar los comandos con "once". Sobre todo si ejecuté un comando con salida verbosa y después decidí que quería hacer un grep de algo. Las terminales tienen la salida en su búfer de scrollback y quizá solo sea cuestión de escribir un comando "output" que me permita ejecutar:

    $ cmake ..

    $ output | grep "libssl version"

  4. deadbunny

    Siempre he querido lidiar con la invalidación de caché en mi terminal.

  5. giancarlostoro

    > El caso de uso típico: leer secretos de 1Password sin aprobar cada lectura con tu huella.

    Eh, no sé yo sobre esa, jefe.

Más de este día

2026-10-09