智能笔记捕捉器:91 行代码实现 macOS 效率神器
你是否曾遇到这样的情况在网上看到一段有价值的内容想要保存却需要手动复制到笔记软件或者看到一句有趣的话想要记录下当时的思考却因为步骤繁琐而放弃。又或者正在阅读一篇技术文章想要把重点段落保存下来却要找半天笔记软件再粘贴一番操作后早就失去了继续阅读的兴趣。作为一个追求效率的开发者我一直在寻找能够简化日常操作的方法。今天我要分享的「智能笔记捕捉器」——一个仅用26 行 AppleScript 代码实现的效率工具能够一键将选中的文本捕获并保存为 Markdown 笔记。整个过程只需要选中文本、运行脚本、输入备注三步就能自动生成一份结构化的笔记文件。技术栈简介为什么选择 AppleScriptAppleScript 是 macOS 内置的脚本语言可以让用户自动化控制应用程序和操作系统。它的优势在于无需安装- macOS 系统自带无需额外安装任何软件图形界面控制- 可以模拟用户操作如复制、粘贴、点击按钮等应用间通信- 能够获取当前前台应用、访问文件系统、发送通知学习曲线平缓- 语法接近自然英语易于阅读和编写无论是发送邮件、整理文件还是操作 GUI 元素AppleScript 都能帮你完成。对于需要与系统深度集成的场景它是不二之选。Protocol Launcher 的妙用Protocol Launcher 是一个 JavaScript 库提供了类型安全的方式生成各种应用的深度链接Deep Link。通过它你可以从网页直接唤起 macOS 应用并执行预定义的操作。它的核心功能包括一键唤起应用- 通过 URL Scheme 启动本地应用脚本注入- 支持将 AppleScript 代码嵌入 URL方便用户直接执行跨平台调用- 在网页上点击按钮即可触发本地脚本通过 Protocol Launcher我们可以在网页上放置一个按钮用户点击后就能直接运行预设的 AppleScript 脚本实现 Web 与本地应用的桥梁。核心功能详解这个「智能笔记捕捉器」虽然代码精简但功能却一点不马虎智能文本捕获- 通过模拟 CmdC 快捷键获取用户选中的内容无需手动复制上下文自动记录- 自动保存捕获时间、来源应用这些信息对后续回顾非常重要Markdown 格式输出- 将内容结构化保存包含标题、时间、应用来源和笔记正文自动预览- 捕获完成后自动用 Safari 打开生成的笔记文件查看结果剪贴板保护- 操作完成后自动恢复原始剪贴板内容不影响用户后续操作系统通知反馈- 通过通知中心告知用户保存成功完整代码实现TypeScript 调用代码4 行下面的代码展示了如何在 TypeScript 项目中调用 Protocol Launcher 来触发脚本import{addScript}fromprotocol-launcher/apple-scriptconsturladdScript({script:set oldClipboard to the clipboard tell application System Events keystroke c using command down delay 0.3 end tell set selectedText to the clipboard if selectedText is then display dialog No selected text detected buttons {OK} default button 1 return end if set userNote to text returned of (display dialog Enter your note: default answer ) set nowDate to current date set timeStr to (year of nowDate as string) - (month of nowDate as integer) - (day of nowDate as integer) tell application System Events set frontApp to name of first application process whose frontmost is true end tell set mdContent to # Captured Note\n\n**Time:** timeStr \n\n**Source App:** frontApp \n\n## Selected Text\n selectedText \n\n## My Note\n userNote \n set fileName to note_ (do shell script date %s) .md set filePath to (path to desktop folder as text) fileName set posixPath to POSIX path of filePath do shell script echo quoted form of mdContent quoted form of posixPath tell application Safari activate open location file:// POSIX path of filePath end tell set the clipboard to oldClipboard display notification Note saved to Desktop with title Smart Capture,})代码解析让我们逐段解析这段 AppleScript 的实现逻辑第一步保存和恢复剪贴板set oldClipboard to the clipboard -- 脚本执行完毕后恢复 set the clipboard to oldClipboard我们在执行任何操作前先保存原始剪贴板内容确保用户的剪贴板数据不会丢失。第二步模拟复制操作tell application System Events keystroke c using command down delay 0.3 end tell使用 System Events 模拟用户按下 CmdC其中 0.3 秒的延迟是为了确保复制操作完成。第三步检测并获取选中文本set selectedText to the clipboard if selectedText is then display dialog No selected text detected buttons {OK} default button 1 return end if如果剪贴板为空说明用户没有选中任何文本此时显示提示对话框并退出。第四步获取用户备注set userNote to text returned of (display dialog Enter your note: default answer )通过系统对话框让用户输入自己的思考或备注这是整个工具的灵魂所在。第五步收集元数据set nowDate to current date set timeStr to (year of nowDate as string) - (month of nowDate as integer) - (day of nowDate as integer) tell application System Events set frontApp to name of first application process whose frontmost is true end tell获取当前日期时间和来源应用这些信息对于后续回顾非常重要。第六步生成 Markdown 内容set mdContent to # Captured Note\n\n**Time:** timeStr \n\n**Source App:** frontApp \n\n## Selected Text\n selectedText \n\n## My Note\n userNote \n将所有信息拼接成结构化的 Markdown 格式包括标题、时间、来源应用、选中文本和用户笔记。第七步保存到文件set fileName to note_ (do shell script date %s) .md set filePath to (path to desktop folder as text) fileName set posixPath to POSIX path of filePath do shell script echo quoted form of mdContent quoted form of posixPath使用时间戳作为文件名确保唯一性通过 shell 命令将内容写入桌面。第八步预览和通知tell application Safari activate open location file:// POSIX path of filePath end tell display notification Note saved to Desktop with title Smart Capture用 Safari 打开生成的笔记文件并通过系统通知告知用户保存成功。使用方式详解前提条件macOS 系统该脚本仅支持 macOS已安装 Safari 浏览器用于预览生成的笔记启用了辅助功能权限首次运行时会提示授权操作步骤点击触发按钮- 在网页中点击「在 Apple Script Editor 中打开」按钮Script Editor 打开- 系统会自动打开 Script Editor 并显示脚本内容选中目标文本- 在任意应用中选中你想要保存的文本内容运行脚本- 点击 Script Editor 中的运行按钮或按 CmdR输入笔记- 弹出的对话框中输入你的思考或备注查看结果- 脚本会自动保存笔记并在 Safari 中打开预览进阶扩展思路如果你想进一步增强这个工具的功能可以考虑以下方向自定义保存位置- 修改path to desktop folder为其他目录支持更多输出格式- 除了 Markdown还可以输出 JSON、HTML 等格式集成笔记软件- 通过 AppleScript 控制 Notion、Obsidian 等笔记应用添加标签系统- 让用户可以输入标签便于后续分类管理快捷键触发- 配合 Keyboard Maestro 等工具实现全局快捷键启动总结这就是全部代码——不到 40 行含注释却实现了一个完整的 macOS 效率工具。通过 AppleScript 与 Protocol Launcher 的结合我们可以轻松将 Web 应用与本地系统能力连接打造出强大的自动化工作流。这个项目展示了几个重要的编程思想最小可用产品——用最少的代码实现核心功能渐进增强——先完成基础功能再考虑扩展用户体验优先——自动恢复剪贴板、显示通知、提供预览每个细节都考虑周到。如果你对更多类似项目感兴趣欢迎访问 Protocol Launcher 官网 探索更多可能。或许下一个改变你工作效率的工具就来自你的创意。相关链接Protocol Launcherhttps://protocol-launcher.huayi-data.com/AppleScript 官方文档AppleScript Language Guide