UniClipboard
CLI

快速上手

从终端创建或加入空间、发送内容并查看历史。

在 GitHub 上编辑

uniclip 是 UniClipboard 的终端客户端。它与桌面应用连接同一个后台服务, 因此 CLI 和 GUI 可以使用同一个 profile 与空间。需要后台服务的命令发现它尚未 运行时,会自动启动同版本的 uniclipd。

如果 uniclip --version 还不能运行,请先阅读 安装 CLI。

全局参数

这些参数可用于所有公开命令:

参数作用
--json返回便于脚本处理的 JSON。
-v, --verbose在终端显示更多诊断信息。
--profile <NAME>使用隔离的数据、安全存储条目和网络身份。

桌面应用已经打开时,不需要为 CLI 单独设置 profile。只有在确实要运行一个完全独立的 实例时才使用 --profile,例如在一台电脑上模拟两台测试设备。

创建或加入空间

先创建空间,再为另一台设备生成邀请:

uniclip space init
uniclip space invite

两个命令都会引导你输入所需信息。邀请码是短期秘密,只能使用一次。

在新设备上运行加入命令,然后按提示粘贴邀请码:

uniclip space join

非交互调用需要显式传入邀请码:

uniclip space join --code <INVITATION_CODE>

命令还会要求输入空间口令,并等待最终结果。成功后查看成员列表:

uniclip member list

脚本只想等到加入请求被接受、不想等待最终结果时,可以加 --no-wait,之后再 查看或取消请求:

uniclip space join status
uniclip space join cancel

Ctrl-C 只会停止本地等待,不会取消加入请求。

发送和读取内容

# 把文本发送给在线的已配对设备
uniclip send "hello from the CLI"

# 发送现有普通文件(自动识别)
uniclip send ./report.pdf

# 强制把现有文件名作为文字发送
uniclip send --text report.pdf

# 从标准输入读取文本
printf 'hello from a pipe' | uniclip send

# 打印本机已经同步的最新文本或链接
uniclip get

# 等待下一条同步内容,输出后退出
uniclip get --wait

# 等待下一条内容,通过当前终端复制后退出
uniclip get --copy --wait

# 只列出最近条目,不下载内容
uniclip get --list -n 20

# 搜索历史
uniclip search "报告"

get 默认读取已经进入本机历史的内容并立即返回。get --wait 只处理命令订阅建立后 到达的下一条匹配内容并退出,可与 --type 或 --id 组合。交互终端会为已匹配的文件 显示真实接收进度;进度只写入 stderr,因此 stdout 仍可安全用于管道和 JSON。 watch 会持续等待并打印之后收到的内容,直到按下 Ctrl-C:

uniclip watch

watch 只负责观察,不会把内容写入系统剪贴板。

发送或接收文件

# 显式强制文件模式
uniclip send --file ./report.pdf

# 从 stdin 逐行读取完整文件路径
printf '%s\n' ./report.pdf './images/cover art.png' | uniclip send --file

# 等待下一条内容;文件保存到 ./inbox
uniclip get --wait --out ./inbox

现有普通文件会被自动识别。文件传输由后台服务负责,所有相关目标进入终态后命令会 自动退出。-f / --file 没有位置路径时,stdin 表示文件路径列表,而不是文件内容; 空行会被忽略,所有路径会在发送前完成校验,重复路径只发送一次。可以重复使用 --peer 限制目标,按 Ctrl-C 可取消等待。

管理后台服务

大多数命令会在需要时自动启动服务。需要明确控制生命周期时,可以使用:

命令作用
uniclip start在后台启动 uniclipd。
uniclip start --foreground让服务留在终端中运行并显示日志。
uniclip start --server启动无头节点,不读写系统剪贴板。
uniclip stop停止当前 profile 的后台服务。
uniclip space status查看服务、空间、网络和信任状态。

桌面应用和 CLI 使用同一个 profile 时会复用同一个后台服务。不要直接启动 uniclipd。

在脚本中使用

需要让其他程序读取结果时,加上 --json:

uniclip --json space status
uniclip --json member list
uniclip --json search "报告" --limit 10

为了保持标准输出干净,部分命令会把面向人的状态提示写到标准错误。脚本应读取 JSON 和退出状态,不要匹配终端提示文字。

切换或重建空间

切换到另一个空间时,可读的本机历史会迁移到新空间:

uniclip space join --switch --code <NEW_INVITATION_CODE>

命令会先要求确认。只应在受控的非交互流程中添加 --yes。如果有本机记录无法 读取,命令默认停止;使用 --preserve-unreadable-history 可以保留这些记录, 避免在切换时丢弃。

要把当前设备重建为只包含本机的新空间:

uniclip space reset --yes

这会永久废弃旧的配对、信任和同步关系,但保留本机历史、已完成文件、设置、 设备身份和解锁能力。所有设备都需要重新配对。这不是恢复出厂设置。

所有公开命令和参数见 CLI 参考。

本页目录