BookinglyTech News
Software

Ledge.sh, el cuaderno Markdown que ejecuta comandos y guarda las notas en un servidor propio

Es un bloc de notas open source bajo Apache-2.0 en el que cada bloque de código se ejecuta con un atajo y la salida aparece debajo, en local o contra una máquina remota por ssh.

3 min de lecturaShow HN0 vistas

Ledge es un cuaderno Markdown pensado para quien vive en una terminal. Escribes una nota, pulsas ⌘↩ sobre un bloque de código y la salida se va escribiendo justo debajo, según se genera. El proyecto es open source bajo Apache-2.0 y se distribuye para macOS sobre Apple Silicon, Linux, Windows 11 a través de WSL, iPhone y iPad, con Android en beta.

El detalle que lo separa de un bloc de notas cualquiera está en cómo ejecuta. Cada nota tiene su propio shell persistente: un cd, una variable exportada o un virtualenv activado siguen ahí en la siguiente ejecución. En el frontmatter, cwd: y env: fijan dónde arrancan esos shells y qué arrastran, y norun sobre un bloque le quita el botón de ejecutar, útil para comandos que solo se citan. Con ⇧⌘↩ el bloque se manda al cajón de terminal de la nota, otro shell en el que se puede seguir escribiendo, y si un proceso pide un sudo o un [y/N] se responde desde el panel de salida.

Las notas viven en un servidor, no en una nube ajena

Ledge se puede apuntar a una máquina por ssh y dejar ahí las notas: el servidor guarda los ficheros y ejecuta los shells, y la aplicación local es solo la ventana. No hay cuenta, ni servicio intermedio, ni puerto que abrir, según la documentación del proyecto. La autenticación es la propia de ssh, con clave o con contraseña guardada en el llavero del sistema, y el cliente fija la host key del servidor y rechaza cualquier otra. Como los shells viven en la máquina remota, cerrar el portátil no mata lo que esté corriendo; la salida espera al volver. El móvil se conecta al mismo servidor —no guarda notas— y se empareja con un código que imprime ledge pair, con una clave creada en el Secure Enclave que no sale de ahí. Hay además un comando de copia de seguridad que sube cada hora una copia cifrada de las notas a un bucket compatible con S3.

Ejecutar en otras máquinas sin llevarse los secretos

Un host: en el frontmatter hace que las ejecuciones de esa nota ocurran por ssh en otra máquina, mientras la nota se queda donde está. Si se declaran varios hosts, Ledge pregunta cuál en cada ejecución y repetir con Enter mantiene la última elección. Los bloques marcados como confirm muestran el código, nombran la máquina y piden confirmación antes de lanzarlos. Las claves, los agentes, el ~/.ssh/config y el 2FA funcionan igual que en una terminal.

Para credenciales hay perfiles: ficheros de variables de entorno guardados fuera de la carpeta de notas. La nota solo lleva el nombre del perfil y las variables entran en sus shells. El cwd y el env de la nota viajan con la ejecución remota; los perfiles y los secretos, no.

El editor también admite vistas divididas y espacios de trabajo que restauran su disposición al arrancar, con pestañas que se pueden arrastrar entre paneles conservando el cursor, el scroll y la salida que sigue llegando.

Queda por ver lo de siempre en un lanzamiento así: no hay cifras de terceros ni comparativas de rendimiento, la instalación del servidor se hace con un script que se descarga y se pasa a sh, y eso es una decisión que cada administrador valora con su propio criterio. El repositorio y la documentación están abiertos para quien quiera mirar antes de adoptarlo.