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
- Abre la aplicación en un navegador y apunta la clave.
- En el servidor, mándale algo:
echo "deploy key" | npx realtimeclipboard send D75LV - 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
| Comando | Qué 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.