Hamu:棕色水獭从青绿底左下角探出,捧着一颗河石。

一个池子。多种摄入。同一种 Item。

History 里的条目和你写下来的片段是同一种东西。Hamu 不发明第二套内容模型。Collection 只是命名过的分组,用来把 transient 升级成 resident。

Capture
剪贴板是零成本摄入口。

Copy 本身就是信号。Hamu 监听系统剪贴板,把文本、图片、文件引用收成 Item,并记下当时的前台应用。需要屏幕上的一块字,用 ⌘⇧2 框选——那是主动捕获,不是后台窥屏。

Board
⌘⇧V 打开底部时间线。

横向卡片,暗示剪贴板有时间维度。输入即搜,搜索框始终挂着,中文输入法不会丢掉正在组合的字。选中一条,Hamu 写回剪贴板,并帮你对刚才的应用按下 ⌘V。

Collection
Move,不是 Pin。

一条 Item 最多属于一个 Collection。移进去,就离开 History,也不再被历史上限清掉。这是 resident 的升级,不是再复制一份。

Category
规则在前,模型在后。

图片和文件看类型;微信 / QQ / 企业微信 / 钉钉 / 飞书等即时通讯看来源,记为 chat;整段是 URL 记为 link;其余才交给本地 ONNX,在 code、article、other 里选。链接和聊天不会被模型误分。

OCR
每张图只认一次字。

识别结果可搜,不当正文展示。nil 是还在认,空字符串是认过但没有字。关了 OCR 也不会抹掉已经认过的文本。

权限
辅助功能、屏幕录制,可选完整磁盘。

辅助功能用来代按 ⌘V。屏幕录制只为选区截图。完整磁盘访问是为了预览 QQ、微信等应用私有目录里的图片,重启后生效。

超越中间层,而不是给 Paste 加功能。

Paste 优化的是 copy 和 paste 之间的缓存。Hamu 的下一步是质疑这两个动作本身:摄入可以不只等 Cmd+C,输出可以按上下文出现,粒度可以从整块变成实体。

摄入

窥屏是被动管道。难点不是识别,是噪音。先用手动框选当信号,再谈自动。

粒度

大爆炸式拆解:电话、日期、地址、金额从 blob 里出来。检索变成找那个号码,而不是找那段话。

输出

当前应用 × 实体类型,一层浅规则就够覆盖很多推荐。从 pull 变成 push。