SuperAPI AI 工具集

signal-history-search

办公与效率

查看项目

更新于 10-16 01:38

技能介绍

用途:在 macOS 上搜索 Signal Desktop 的本地消息历史,适合需要引用或总结此前 Signal 对话的场景,要求已安装 Signal Desktop,且希望无需导出即可快速检索。

主要能力:从 macOS 钥匙串(Signal Safe Storage)取出加密密钥,经 PBKDF2 解密后以 SQLCipher 直接打开 SQLite 数据库,对 messages 与 conversations 表执行 SQL 查询;搜索在内存中进行,不写入文件。首次运行需缓存 Python 环境路径(约 5-10 秒),后续查询低于 0.5 秒,整库检索数千条消息低于 1 秒。

使用方式:命令包括 list(列出所有会话)、dump(按日期导出消息,须提供 --date,YYYY-MM-DD,可用 --chat 过滤)、search(搜索消息,--query 默认按正则,支持 --chat、--context、--max-count、--case-sensitive、--literal 等标志)。输出中行首带 > 的为匹配行,格式为 [时间戳] 会话名 | 发送者: 消息,上下文行无 > 前缀。

旧版导出式脚本 signal-history-search 仍可用但已弃用,它借助 sigexport 生成临时导出并用 ripgrep 搜索,约 15-30 秒,可在直接访问数据库失败时备用。

限制与注意:数据库密钥取自 macOS 钥匙串,需至少打开过一次 Signal Desktop 并授权钥匙串访问;若报 Signal Desktop not found,需确认 ~/Library/Application Support/Signal 存在;如果没有 nix-shell,需要安装 Nix 包管理器;缓存路径位于 ~/.cache/signal-search/;搜索完全在本地进行,数据不会离开本机。