本文介绍 Text Tray:一个开源 macOS 小工具,用来给复制出来或传入的一段临时文本提供一个可阅读、可编辑、可清理、可翻译、可保存的工作台。
我开源了 Text Tray。它解决的不是一个宏大的问题,而是每天都会遇到的那种小麻烦:你复制了一段文字,想看清楚一点、改几处、统计一下、清理一下 PDF 断行、翻译一下,或者让 AI 帮你提取待办,但又不想专门打开 Notes、文本编辑器、浏览器 AI 工具或翻译软件。
项目地址在这里:Jingyuan-Zheng/TextTray。
它解决的是哪种小问题
有些文本任务太小,不值得变成一个正式文档;但在原 App 里处理,又很别扭。
比如邮件窗口太窄,复制出来想放大看;PDF 复制出来满是硬换行;表单要求字数限制,你想确认字符数;一段英文说明想快速翻译;一封邮件想提取日期和待办;一小段代码或 Markdown 想临时保存。
Text Tray 的定位就是这个中间地带。它不是笔记软件,也不是剪贴板历史工具。它只是打开一个干净的临时文本窗口,让你把这段文字处理完,然后离开。
临时,就是它的边界
Text Tray 最重要的设计选择,是把正文当作临时内容。
它不会保存剪贴板历史,不会在后台监听剪贴板,不会自动保存窗口里的正文,也不会在关闭时清空系统剪贴板。它会保存语言、字号、行号、自动换行、统计显示和置顶等偏好,但不会保存你正在处理的文本内容。
这让它更像一个临时托盘,而不是一个长期笔记本。你可以把合同条款、邮件草稿、表格片段或聊天内容放进去处理,不用担心自己又制造了一个之后还要清理的持久记录。
阅读、编辑和基本统计
主窗口很朴素:文本编辑区、行号、自动换行、字号调节,以及底部的简短状态信息。
状态信息包括字符数、词数、行数、选中长度、字号和光标位置。这些功能平时看起来不起眼,但当你真的需要提交一段限制长度的文本、检查选区范围或整理多行内容时,它们最好就在旁边,而不是藏在一个更重的编辑器里。
窗口也可以保持置顶。对于一边从网页或 PDF 里复制,一边整理文本的场景,这个小功能很实用。
PDF 复制文本的断行清理
Text Tray 里我很喜欢的一个动作是 合并 PDF 断行。
从 PDF 复制文字时,很多时候复制出来的是视觉排版里的换行,而不是自然段落。Text Tray 会在本地做一次清理:普通段落会被重新合并,同时尽量保护项目符号、编号列表和缩进块这类结构。
它还支持去除首尾空白、删除多余空行、统一换行符、去除每行末尾空格。对于这类一次性处理,Text Tray 只保留“撤销上一次处理”,足够简单,也不把界面做成复杂工作流。
不离开窗口的轻量 AI 动作
Text Tray 也有一个 AI 菜单,用来做一些很具体的结构化处理:提取待办、提取日期、提取金额、提取联系人、总结要求、解释文本、检查风险、草拟回复,以及整理成清单或表格。
在系统支持时,这些动作会调用 Apple 的 Foundation Models 框架。如果 Apple Intelligence 没启用、设备不符合要求或模型还没准备好,应用会给出明确提示。
它不是要替代完整的 AI 聊天工具。它的价值在于少一次来回复制粘贴:文本已经在窗口里了,下一步最好就是一个菜单动作,而不是打开另一个工具、粘贴、写提示词、再复制回来。
系统写作工具和翻译
如果系统支持,Text Tray 的编辑器可以使用 macOS 的系统写作工具。这样它不是一个孤立的文本框,而是能接入原生 AppKit 文本编辑能力的普通 Mac 应用。
翻译部分则使用 Apple 的 Translation 框架。它可以翻译为中文、翻译为英文,也可以生成中英对照版本。
基础应用目标是 macOS 13 或更新版本。Apple Intelligence 和系统翻译相关动作则取决于 Apple 对系统版本和设备的支持;旧系统上仍然可以使用核心的阅读、编辑、清理、统计、复制、保存和打印功能。
临时文本也可能需要保存
大多数临时文本处理完复制走就结束了。但有时一段草稿会变成值得保留的内容。
Text Tray 可以把当前文本保存为 .txt、.md、.json、.csv、.html、.swift、.py、.js,也可以输入自定义后缀。默认文件名会使用 Text_YYYYMMDDHHMMSS.txt 这种时间戳格式,简单,也能避免误覆盖。
它也支持打印。这个功能不一定每天用,但临时文本偶尔确实会需要离开屏幕。
通过快捷指令启动
Text Tray 可以正常打开,但如果配合 macOS 快捷指令,会更像一个系统级文本动作。
最简单的启动方式:
|
|
也可以把快捷指令输入直接通过标准输入传给它:
|
|
项目源码也很直接:Swift、AppKit、SwiftUI,加上 Apple 的 Foundation Models 和 Translation 框架。构建脚本会生成普通 .app bundle,并打包成 TextTray.zip。
它适合放在哪里
Text Tray 不适合长篇写作、项目笔记、知识库管理或剪贴板归档。这些事情已经有更专业的工具。
它适合那些三十秒的小文本任务:看清楚这段文字,数一下字数,清理一下断行,提取日期,草拟回复,翻译一段话,保存一个片段,然后继续做正事。
这个位置很小,但一天会出现很多次。Text Tray 做的就是把这个小位置补上。
相关阅读
- 如果你要处理整份文档翻译,可以看 Translate Document Quick Action:在 Finder 里一键翻译文档,并尽量保留原结构。
- 如果你想在 Apple Silicon 上做本地 AI 翻译,可以看 Mac-Lite-Translator:Apple Silicon 上的本地 AI 翻译小工具。
- 如果你想给 macOS 小工具做安装包,可以看 DMG Maker:自动化创建精美的 macOS 安装包。