命令行客户端
给那些根本没有剪贴板的机器准备的。它读标准输入、写标准输出,所以能和你 手上已经在用的一切拼在一起 —— 而且它不是第二份实现,它导入的就是浏览器 在跑的那几个加密和传输文件。
装上它
npx realtimeclipboard D75LV
其实没有什么要装的:npx 把它取下来、跑一遍,然后什么都不留。
如果你更希望它待在 PATH 上:
npm install -g realtimeclipboard
需要 Node 22 或更新的版本,因为它用的是内置的
WebSocket。在更旧的 Node 上,客户端会立刻退出并说明原因,
而不是等到传输到一半才失败。
或者用包管理器
brew install akshaynikhare/tap/realtimeclipboard-cli
注意名字:CLI 的 formula 叫 realtimeclipboard-cli,桌面应用
是 realtimeclipboard cask。它们是两样东西,装了一个不等于
有了另一个 —— 服务器要的是管道,不是菜单栏上的图标。
确认它装好了
npx realtimeclipboard --version
连接时它会往标准错误打一行状态,从不往标准输出打:
realtimeclipboard · room 3f2a91c4…
那是被截断的房间哈希,绝不是密钥。因为它走 stderr,所以
watch > file 写进文件的仍然只有剪贴内容。加上
-q 可以让它完全不出声。
你的第一次同步
- 在浏览器里打开应用,记下那个密钥。
- 在服务器上,往它发点东西:
echo "deploy key" | npx realtimeclipboard send D75LV - 它会出现在浏览器里。现在反着走一遍 —— 在浏览器里复制点东西,
然后在服务器上执行:
npx realtimeclipboard watch D75LV --once > token.txt
四条命令
| 命令 | 作用 |
|---|---|
realtimeclipboard <KEY> | 双向:收到什么就打出来,你输入什么就发出去 |
realtimeclipboard watch <KEY> | 打印收到的剪贴内容 |
realtimeclipboard send <KEY> | 读标准输入到 EOF,然后发出去 |
realtimeclipboard new [--long] | 打印一个新密钥 |
选项:--relay <url>、--pin <pin>、
--once、--json、--timeout <s>、
-q、-h、-v。中继服务器和 PIN 也可以
从 REALTIMECLIPBOARD_RELAY 和
REALTIMECLIPBOARD_PIN 读,传 PIN 就该这么传 —— 写成参数
会留在你的 shell 历史里。
# 结构化输出,每行一个 JSON 对象
npx realtimeclipboard watch D75LV --once --json | jq -r .text
# 在一台你 ssh 上去的机器上
ssh build-01 'cat /var/log/deploy.log' | npx realtimeclipboard send D75LV
# 指向你自己的中继服务器
npx realtimeclipboard --relay wss://clip.example.com D75LV
它不工作的时候
“this needs Node 22 or newer”(需要 Node 22 或更新的版本)
就是字面意思:客户端用 Node 内置的 WebSocket,而不是为它拉一个
依赖进来,而内置的那个是 22 才有的。它在启动时就退出,不会等到传输中途。
它挂在那里,什么都不打印
watch 本来就是等剪贴内容的 —— 另一端不复制东西,这边就什么都
不会来。在脚本里加 --timeout 30,它就不会无限等下去;加
--once,它收到第一条就退出。
手动跑没问题,在 CI 里不行
那里没有 TTY,所以加 -q 然后读标准输出。把密钥放进环境变量,
不要放在命令行上 —— 命令行会进构建日志。
在代理后面连不上
客户端说的协议和浏览器完全一样,可以用 --relay 指向你自己的
中继服务器。自建一个就是一个容器的事。
卸载
npx 什么都没留下,也就没什么可卸的。全局装过的话用
npm uninstall -g realtimeclipboard,或者
brew uninstall realtimeclipboard-cli。
密钥本身就是凭证。只要会话还开着,拿到密钥的人就能读它,所以别让它 进 shell 历史、别进 CI 日志、也别提交进仓库。剪贴内容在这台机器上加密之后 才发出去;中继服务器看到的永远只有房间哈希和密文。