在AI能快速实现任何想法的时代,寻找未被满足的需求才是关键——从某知名iMessage命令行工具看用户真实渴望

0 阅读5分钟

a. 内容描述

  • 核心功能定位:该项目是一个运行在macOS上的命令行工具,旨在通过终端与苹果的即时通讯服务(如iMessage和SMS)进行交互。它允许用户在不打开图形界面的情况下,发送消息、读取历史记录以及实时监控新消息,主要面向开发者、自动化爱好者和需要将消息功能集成到脚本或工作流中的高级用户。

  • 关键应用场景

    • 自动化:在持续集成/持续部署(CI/CD)流程中发送构建成功或失败的通知。
    • 智能家居/物联网:通过脚本触发,向用户发送设备状态更新或警报。
    • AI助手:作为大型语言模型(LLM)与用户通信的桥梁,使AI能够接收指令并以短信或iMessage的形式回复。
    • 日志记录与监控:将服务器或应用程序的关键日志通过消息实时推送给管理员。
    • 个人效率工具:创建自定义的提醒、定时发送消息或快速与其他系统(如任务管理应用)集成。

b. 功能特性

  • 消息收发:支持发送文本和文件(如图片)作为iMessage或SMS消息。发送功能通过AppleScript实现,不依赖私有API。
  • 会话管理:可以列出最近的会话列表,并查看特定会话的详细历史记录。
  • 实时监控:提供一个watch命令,可以实时监听新消息的到达,并通过文件系统事件驱动,支持JSON格式输出,便于其他程序解析。
  • 数据筛选:历史记录查询支持按参与者、时间范围进行过滤,并提供JSON输出格式,方便与其他工具集成。
  • 联系人处理:内置电话号E.164格式标准化功能,支持按地区(如美国)进行号码转换,以提高联系人查找的可靠性。
  • 附件信息:可以输出消息附件的元数据,如MIME类型、文件名和存储路径。
  • 权限要求:明确要求终端拥有“完全磁盘访问权限”以读取消息数据库,以及“自动化”权限以控制“某知名即时通讯应用”来发送消息。

d. 使用说明

  1. 构建:通过运行make build命令,会在./bin/目录下生成名为imsg的可执行二进制文件。
  2. 基础命令
    • imsg chats [--limit N] [--json]:列出最近的N个会话。
    • imsg history --chat-id <ID> [--limit N] [--attachments] [--participants ...] [--start ...] [--end ...] [--json]:查看指定会话的历史消息。
    • imsg watch [--chat-id <ID>] [--since-rowid <n>] [--debounce <time>] [--attachments] [--participants …] [--start …] [--end …] [--json]:实时监听新消息。
    • imsg send --to <handle> [--text "message"] [--file /path/file] [--service imessage|sms|auto] [--region US]:发送消息。
  3. 输出格式:支持JSON输出,以便于被其他程序解析。historywatch命令的JSON输出包含消息的详细字段,如ID、文本、发送者、时间、附件和回复关系。
  4. 权限设置
    • 完全磁盘访问:需要在“系统设置 > 隐私与安全性 > 完全磁盘访问权限”中添加终端应用。
    • 自动化:需要在同一位置,允许终端应用控制“某知名即时通讯应用”。
    • 短信转发:若要通过Mac发送SMS,需在iPhone上开启“短信转发”功能,并指向该Mac。
  5. 测试:使用make test命令运行测试套件。

e. 潜在新需求

  • 需求1:希望能够在多SIM卡或多账号场景下,准确识别消息是发送到用户的哪个号码或Apple ID。对于同时管理个人和工作账号的用户,需要根据接收号码的不同,执行不同的自动化响应逻辑。

  • 需求2:希望工具能够读取并输出消息中的完整回复链信息,特别是thread_originator_guid字段。这对于构建需要上下文理解能力的AI助手至关重要,使其能准确知道用户正在回复哪一条历史消息。

  • 需求3:希望能在发送消息时,添加iMessage特有的气泡和全屏动效,如“激光”、“烟花”、“气球”等,使通过命令行发送的消息也能拥有丰富的表现力。

  • 需求4:希望工具能够读取并输出消息中的“点回”(Tapback)反应(如点赞、爱心等),并能够以编程方式发送“点回”。这对于构建更自然的聊天机器人很重要,机器人可以通过简单的“点回”来确认收到消息,而不是每次都发送一条新的文本。

  • 需求5:希望在发送消息时,能够模拟“对方正在输入”的 typing 指示器。这可以使自动化交互看起来更自然、更接近真人聊天,在发送长消息或需要“思考”时间的AI回复前尤其有用。

  • 需求6:希望能够从音频消息中提取文字转录。用户收到的语音消息中,苹果系统会自动生成转录文本,希望工具能直接提取这部分文本内容,便于对消息内容进行文本分析和存档。

  • 需求7:希望watch命令在实时监控时,能够将“点回”反应也作为一个独立的事件流输出,而不仅仅是作为消息的一个附属字段。这样可以实时地捕捉到对方对消息的反馈,实现更丰富的交互体验。FINISHED article id:bc80a461440f2f3255bd3d3b8556a6dd