El cliente de línea de comandos

Para las máquinas que no tienen portapapeles en absoluto. Lee la entrada estándar y escribe en la salida estándar, así que encaja con todo lo demás que ya usas — y no es una segunda implementación: importa exactamente los mismos archivos de cifrado y transporte que ejecuta el navegador.

Instálalo

npx realtimeclipboard D75LV

No hay nada que instalar: npx lo descarga, lo ejecuta y no deja nada detrás. Si prefieres tenerlo en tu PATH:

npm install -g realtimeclipboard

Hace falta Node 22 o superior, por el WebSocket integrado. En un Node más antiguo el cliente sale de inmediato y lo dice, en lugar de fallar a mitad de una transferencia.

O desde un gestor de paquetes

brew install akshaynikhare/tap/realtimeclipboard-cli

Fíjate en el nombre: la formula del CLI es realtimeclipboard-cli y la aplicación de escritorio es el cask realtimeclipboard. Son cosas distintas, e instalar una no te da la otra — un servidor quiere la tubería, no un icono en la barra de menús.

Comprueba que funcionó

npx realtimeclipboard --version

Al conectar imprime una línea de estado en el error estándar, nunca en la salida estándar:

realtimeclipboard · room 3f2a91c4…

Ese es el hash de la sala, truncado — nunca la clave. Como va a stderr, watch > file sigue escribiendo solo el contenido. Pasa -q para silenciarlo del todo.

Tu primera sincronización

  1. Abre la aplicación en un navegador y apunta la clave.
  2. En el servidor, mándale algo:
    echo "deploy key" | npx realtimeclipboard send D75LV
  3. Aparece en el navegador. Ahora al revés — copia algo en el navegador y, en el servidor, ejecuta:
    npx realtimeclipboard watch D75LV --once > token.txt

Los cuatro comandos

ComandoQué hace
realtimeclipboard <KEY>Doble sentido: imprime lo que llega, envía lo que escribes
realtimeclipboard watch <KEY>Imprime el contenido entrante
realtimeclipboard send <KEY>Lee la entrada estándar hasta EOF y la envía
realtimeclipboard new [--long]Imprime una clave nueva

Opciones: --relay <url>, --pin <pin>, --once, --json, --timeout <s>, -q, -h, -v. El servidor de retransmisión y el PIN también se leen de REALTIMECLIPBOARD_RELAY y REALTIMECLIPBOARD_PIN, que es la forma correcta de pasar un PIN — como argumento acaba en el historial de tu shell.

# salida estructurada, un objeto JSON por línea
npx realtimeclipboard watch D75LV --once --json | jq -r .text

# desde una máquina en la que has entrado por ssh
ssh build-01 'cat /var/log/deploy.log' | npx realtimeclipboard send D75LV

# contra tu propio servidor de retransmisión
npx realtimeclipboard --relay wss://clip.example.com D75LV

Cuando no funciona

«this needs Node 22 or newer» (hace falta Node 22 o superior)

Justo lo que dice: el cliente usa el WebSocket integrado de Node en lugar de arrastrar una dependencia, y eso llegó en la 22. Sale al arrancar, no a mitad de transferencia.

Se queda colgado y no imprime nada

watch espera contenido por diseño — no llega nada hasta que alguien copia algo al otro lado. Usa --timeout 30 en un script para que no espere eternamente, y --once para que salga tras el primer contenido.

Funciona a mano pero no en CI

Allí no hay TTY, así que pasa -q y lee la salida estándar. Pon la clave en una variable de entorno y no en la línea de comandos, donde acabaría en los registros de compilación.

Detrás de un proxy no conecta nada

El cliente habla el mismo protocolo que el navegador y se puede apuntar a tu propio servidor de retransmisión con --relay. Montar uno es un contenedor.

Desinstalar

npx no deja nada que desinstalar. Usa npm uninstall -g realtimeclipboard si lo instalaste de forma global, o brew uninstall realtimeclipboard-cli.

La clave es una credencial al portador. Cualquiera que la tenga puede leer la sesión mientras esté abierta, así que mantenla fuera del historial del shell, fuera de los registros de CI y fuera de los archivos versionados. El contenido se cifra en esta máquina antes de enviarse; el servidor de retransmisión solo ve un hash de sala y texto cifrado.

Todas las demás plataformas: la guía de instalación. ¿Algo mal o desactualizado aquí? Abre una incidencia.