ReCue 使用指南
ReCue 的 DMG 附带 Alfred Workflow,App 内置 recuectl 命令行工具。两者都通过 ReCue 的本机接口执行搜索、切换和唤回,不会直接读取项目数据库。
Alfred Workflow
使用要求
- 已安装 ReCue
- Alfred 5
- Alfred Powerpack
安装
- 打开 ReCue DMG,将
ReCue.app拖入“应用程序”。 - 双击 DMG 中的
ReCue-Alfred-<版本>.alfredworkflow。 - 在 Alfred 中确认导入。
搜索与操作
默认关键词是 w:
| 输入 | 作用 |
|---|---|
w | 显示当前项目、其中的窗口与 Tab,以及其他项目 |
w 关键词 | 搜索项目、App、窗口、Tab 和备注 |
w / | 列出可执行命令 |
w /add-window | 将当前窗口保存到当前项目 |
w /add-tab | 将当前 Tab 保存到当前项目 |
在项目上按 Return 只会把它设为当前项目;在窗口或 Tab 上按 Return 会直接唤回该条目。执行保存命令后,结果会通过系统通知显示。
Workflow 设置
在 Alfred 的 Workflows 中选择 ReCue,可以修改:
- Keyword:触发搜索的关键词,默认为
w。 - ReCue.app 路径:ReCue 不在
/Applications时填写实际路径;留空时 Workflow 会尝试自动查找。
如果 Alfred 显示“ReCue not found”,请先确认 App 已安装,或在 Workflow 设置中指定正确路径。
recuectl CLI
运行 CLI
recuectl 位于 ReCue App 内:
bash
RECUECTL="/Applications/ReCue.app/Contents/MacOS/recuectl"
"$RECUECTL" ping --format text成功时会输出:
text
pong如果 ReCue 尚未运行,CLI 会尝试在后台启动它。App 安装在其他位置时,可以直接使用对应 App 内的 Contents/MacOS/recuectl,或通过 RECUE_APP_PATH 指定 App 路径。
命令
| 命令 | 作用 |
|---|---|
ping | 检查 ReCue 本机接口是否可用 |
search [--] [查询] | 搜索项目、窗口、Tab、App 名称和备注;空查询返回面板的默认列表 |
select-project <uuid> | 将项目设为当前项目,不唤回窗口 |
restore-window <uuid> | 唤回一个窗口或 Tab 记录 |
restore-project <uuid> | 唤回项目中当前仍可用的窗口与 Tab |
add-window | 将当前窗口保存到当前项目 |
add-tab | 将当前 Tab 保存到当前项目 |
项目和窗口 UUID 可以从 search 的 JSON 结果中读取:
bash
"$RECUECTL" search --format json -- "Chrome"
PROJECT_ID="..."
WINDOW_ID="..."
"$RECUECTL" select-project "$PROJECT_ID" --format text
"$RECUECTL" restore-window "$WINDOW_ID" --format text
"$RECUECTL" restore-project "$PROJECT_ID" --format text保存当前窗口或 Tab:
bash
"$RECUECTL" add-window --format text
"$RECUECTL" add-tab --format text输出格式
json:默认格式。输出带version、requestID和ok的版本化响应;搜索结果位于items,操作结果位于action,错误位于error。text:适合ping和操作类命令,直接输出结果消息。alfred:仅供search使用,输出 Alfred Script Filter JSON。
--format 可以放在命令参数之后。查询以连字符开头时,在查询前加 --,避免它被当作选项。
退出状态
| 状态码 | 含义 |
|---|---|
0 | 成功 |
2 | 命令、参数或 UUID 无效 |
3 | 无法启动 ReCue,或本机接口通信失败 |
4 | ReCue 收到请求,但操作失败 |
权限与本地通信
保存和唤回仍受 ReCue 的辅助功能及自动化权限约束。recuectl 通过仅限当前用户访问的 Unix Domain Socket 与 ReCue 通信,不会直接或并发打开 SwiftData 数据库。窗口和项目数据不会因为使用 CLI 而上传。