☰
用苹果快捷指令玩转Memos:从零搭建两秒速记自动化流程
2026/10/8 3:02:47 网站建设 项目流程

我大概是两年前开始折腾自托管笔记工具,兜兜转转最后留下的并不是那些大而全的知识库,而是软件仓库里一个特别轻量的小东西:Memos。它给我的感觉很像微博和备忘录的混合体,随手写一句话、贴一张图、丢一个想法,都比开一个正经文档轻太多。但真正让我彻底离不开它的,其实是后来围绕 Shortcuts(苹果快捷指令)搭起来的那套自动化发布流程。这两个工具单独用都算不上惊艳,组合在一起才叫顺手。

这篇内容不是官方文档的翻译,而是我把 Shortcuts 和 Memos 接起来的过程中,真正试过、踩过坑之后沉淀下来的做法。适合已经部署了 Memos、想认真在 iPhone 上高频使用它的玩家,也适合刚知道 Memos、正犹豫要不要花时间折腾的朋友。我会从最基础的文字发布开始,一步步讲到图片、语音、定时自动化和 NFC 触发,顺便把那些网上教程很少提到的版本坑、编码坑、权限坑都翻出来讲清楚。

1. 别把 Memos 当成普通笔记本:它天生就是为“快速捕捉”设计的

1.1 Memos 真正适合记录什么

Memos 是一个开源的、可自托管的迷你笔记服务,长得像一条时间线,你可以在里面发布文字、图片和标签内容。跟 Notion、语雀这类重型知识库不同,Memos 弱化了目录和页面概念,强调的是“此刻想记一笔”的动作。它适合记的是:突然冒出来的灵感、读完一篇文章后的想法、今天完成的几件事、心情波动、购物清单,甚至是某个时间点的状态快照。

我不太建议把长文、项目文档、知识体系这类东西塞进 Memos。它不是不好,而是定位不同。你在 Memos 里写长篇,后期检索和组织都会别扭。Memos 最舒服的用法是把短文本、图片、标签当成“事件流”来积累,让时间线本身成为你的第二大脑背景板。

这里有个关键点:Memos 虽然提供 App 和网页界面,但它同时自带一套友好的 API。这意味着你不一定非要从界面入口去写内容,完全可以通过脚本、快捷指令、外部程序往里面“扔”东西。这个特性让它和 Shortcuts 的配合变得极其自然,也是这篇文章所有玩法的基础。

1.2 官方客户端的短板在哪里

Memos 官方有 iOS 客户端,也能用渐进式 Web 应用(PWA)方式加到主屏幕。但说实话,官方客户端解决的是“能看能写”的基本需求,并没有认真琢磨移动场景下“如何降低记录成本”这件事。你想发一条 memo,正常路径是:点亮手机、找到图标、打开 App、等它加载、点输入框、打字、点发布。这一套动作在通勤路上、超市里、排队时,每一步都在消耗你的耐心。

更难受的是跨 App 场景。比如你正在 Safari 里读到一段触动的文字,想顺手记到 Memos,你先要复制,再切到 Memos,粘贴,发布。如果这时候来了条微信消息,切走再切回来,大概率刚打的字已经没了。这种体验用久了,你会发现 Memos 慢慢变成了“想起来才打开”的冷宫应用,而不是“随手就会用”的记录工具。

所以问题根本不是 Memos 本身不好用,而是缺一个足够短的记录路径。短到从“产生想法”到“完成记录”只需要两秒钟。这正是 Shortcuts 的强项。

1.3 Shortcuts 补上的并不只是“打开速度”

Shortcuts 是苹果系统自带的自动化工具,表面上是个快捷指令编辑器,本质上是一个可视化的事件脚本框架。它能读取剪贴板、接收系统分享面板的内容、发送 HTTP 请求、调用系统能力、按时间或 NFC 触发。把 Shortcuts 接到 Memos 上,相当于在 iOS 系统里给 Memos 安了无数个入口:主屏幕图标、分享菜单、轻点背面、Siri 语音、定时自动化、NFC 标签,全都可以变成“发布 memo 的按钮”。

我自己的感受是,Shortcuts 带给 Memos 的不只是“快了一点”,而是一种观念上的转变:Memos 不再只是一个需要“打开”的 App,而变成一个随时待命的数据接收器。你在任何场景下捕捉到的内容,都能以近乎零成本的方式流进时间线。想清楚这一点,后面所有配置你都能理解为什么这样做。

2. 基础准备:版本、API 和 Token,这三件事决定后面顺不顺

2.1 部署一个能长期使用的实例

Memos 官方提供 Docker 镜像,部署非常简单。如果你手头有一台云服务器,一条命令就能把服务跑起来:

docker run -d --name memos -p 5230:5230 -v ~/.memos:/var/opt/memos neosmemo/memos:latest

跑起来之后,浏览器访问http://服务器IP:5230就能看到界面。第一次进入会要求注册管理员账号,注册完直接就能用。如果你只是临时体验,官方也有在线 Demo 可以用,但我不建议把重要内容长期放在 Demo 上,毕竟那是别人的服务器,数据终究不在自己手里。

Memos 本身比较轻量,跑在小内存的服务器上也没压力。不过我提醒一句:它记录的是你真实的想法、日常流水、照片,数据敏感度比普通博客高不少,长期使用时建议把服务端加上 HTTPS,并且不要裸奔在公网上。有条件的话配合反向代理加访问控制会更稳妥。这一步不做,后期每次在外面通过手机访问,心里都不太踏实。

2.2 新老版本 API 的差异,坑了很多人

Memos 在 0.22 版本前后经历过一次比较大的接口调整。老版本用 OpenId 方式鉴权,接口路径形如/api/memo?openId=xxx,调用时把 OpenId 直接拼在 URL 里,提交的内容基本就是一段 JSON。新版本则改成了更规范的 RESTful 接口,鉴权方式变成了 Header 里的 Bearer Token,创建 memo 的路径是/api/v1/memo。

为什么这个差异很关键?因为我发现网上大量教程、博客还停留在 OpenId 时代,如果你刚好部署的是新版 Memos,照着老教程填路径,只会反复收到 404 或 401。反过来,如果你还在用旧版本,照着新教程写 Authorization Header,也无法生效。建议在做任何捷径之前,先在浏览器或者 API 调试工具里确认你部署版本的接口格式。

我给一个新版接口的 curl 示例,方便你先验证 Memos 本身是否正常:

curl -X POST https://memos.example.com/api/v1/memo \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"content":"hello memos via curl"}'

如果这条命令能正常发布一条 memo,就说明 API 地址、Token、字段格式都没问题,接下来在 Shortcuts 里做的大多数工作只是把这套请求搬到可视化动作里而已。

2.3 Token 的安全存放方式

Memos 的 Token 在“设置”页面里生成,生成后只显示一次。拿到 Token 后,很多人图省事,直接把 Token 写死在快捷指令的“文本”动作里。这对个人自用问题不大,但如果将来你想把这条捷径分享给别人,Token 就等于裸奔了。

更安全的做法是存进钥匙串。Shortcuts 里有“获取钥匙串项目”这个动作,可以按服务名和账户名读取钥匙串里保存的密码或文本。实际使用时,把 Token 当成钥匙串项目存进去,快捷指令运行到这一步时读取钥匙串内容,再塞进 HTTP 请求的 Header 里。这样即使你把捷径导出分享,别人也看不到你的 Token 原文。

首次调用钥匙串会弹出权限确认,尽量选择“始终允许”,否则以后每次跑捷径都要手动点一下,自动化场景下会很难受。另外提醒一下,钥匙串读取在自动化里偶尔会受系统权限影响,如果某天定时任务突然失败,优先检查是不是钥匙串权限被重置了。

3. 第一个核心捷径:把“发布文字 memo”压到两秒内

3.1 整条捷径的动作流程拆解

我建议第一个捷径不要做得太复杂,就做一件事:输入一段文字,发布到 Memos,提示成功或失败。这条捷径的完整动作链大概是这样的:

  1. 接收文本输入:可以是分享面板传来的文字、剪贴板内容,也可以是用“要求输入”弹窗手动填写的内容。
  2. 把文本存入变量,比如命名为memoContent。
  3. 构造 HTTP 请求体,最稳妥的方式是用“字典”动作,把content键设为memoContent,这样 Shortcuts 会自动把它转成合法的 JSON,不用自己手写大括号。
  4. 使用“获取 URL 内容”动作,方法选 POST,URL 填https://你的域名/api/v1/memo(老版本请对应调整),请求头加Authorization: Bearer 你的Token和Content-Type: application/json,请求体选“JSON”,塞入刚才的字典。
  5. 获取返回的“响应代码”,判断是否发布成功。
  6. 成功就弹一个横幅通知,失败就显示响应状态码和响应正文,方便排查。

这个捷径做出来后,可以放到主屏幕,也可以放到分享面板。每次想记点什么,点一下、输入、完事。两秒是真能做到的,因为整个流程没有多余步骤。

3.2 URL 编码这一步最容易翻车

很多人第一次做这个捷径,会在中文内容上卡住,表现为发布出去的 memo 出现乱码,或者干脆请求失败。这里其实有个很容易混淆的点:如果你把内容放在 JSON 请求体里,并且正确设置了Content-Type: application/json,中文字符是不需要做 URL 编码的。Shortcuts 的“字典”动作会自动处理好引号和特殊字符,你只需要保证文本变量内容正确即可。

但如果你的用法是把内容拼进 URL 查询参数,比如旧版 OpenId 接口的content=xxx,那就必须先经过一次“URL 编码”动作。URL 编码动作会把中文、空格、& 等特殊字符转换成%20之类的安全形式,否则服务器解析时可能只取到一部分内容。顺带说一句,Shortcuts 里“URL 编码”动作的默认选项是“使用默认编码”,这在绝大多数情况下都够用,没有必要去动“编码后用于查询项目”之类的高级选项。

我自己的经验是:优先用 JSON 请求体。因为不管内容里有没有双引号、换行、斜杠,字典动作都会把它们压缩成合法 JSON,你就不用担心转义问题。手写文本 JSON 时反而容易漏掉转义,比如内容里出现英文双引号,就会导致整个请求体解析失败,这是很多人排查很久才发现的隐性坑。

3.3 用响应代码判断成功还是失败

Shortcuts 的“获取 URL 内容”会输出一个“响应代码”变量,这个数字是判断结果的关键。新版 Memos 创建成功一般返回 200,有些版本也可能返回 201,建议在判断时把 200 和 201 都视为成功。

判断动作很简单:添加“如果”动作,条件设为“响应代码 - 是 - 200”或 201,满足时显示通知“已发布”,否则显示“发布失败:响应代码 xxx”。如果失败,最好把“获取 URL 内容”的响应正文也显示出来,因为 Memos 在报错时会返回具体原因,比如 Token 无效、字段缺失、接口不存在等。看到响应正文,调试效率会大大提高。

这条捷径完成后,你已经具备了一个可以反复调用的基础组件。后面无论做语音记录、图片上传、定时复盘,本质上都是把不同类型的内容整理成文本,再调用这条发布链路。所以把它打磨稳定,后面所有玩法都会变得非常简单。

4. 让捷径长在系统里:分享面板、剪贴板、轻点背面和 URL Scheme

4.1 从任意 App 分享文本到 Memos

最实用的入口是系统分享面板。做法是在快捷指令编辑页里,把“接收快捷指令输入”动作放在第一条,并将“输入类型”设定为“文本”和“URL”。这样当你在 Safari 里选中一段文字,或者在其他 App 里点击分享,都能在分享列表里看到这条快捷指令。

核心逻辑是开头做一个“如果”分支:如果收到了分享文本,就把它当作memoContent;如果没收到,就读取剪贴板;如果剪贴板也是空的,再用“要求输入”弹窗让用户手动输入。这个 fallback 设计非常关键,能让同一条捷径同时适应“分享面板调用”和“主屏幕手动调用”两种场景。

我实际用下来,最频繁的操作场景是这样的:刷到一篇长文,里面有句话很触动,选中、分享、选“记到 Memos”,发布完成。整个过程不需要离开当前 App,不需要复制粘贴,上下文和心境都还热着,记录就完成了。这种无缝感才是 Shortcuts 接入 Memos 的最大价值。

4.2 剪贴板快速记录与主屏幕手势

如果你只是偶尔想记点东西,不想让整个流程太复杂,可以做一个“无输入”版本的捷径:第一条动作直接“获取剪贴板”,然后走发布流程。把这个捷径加到主屏幕,图标可以用 Memos 的 Logo,也可以从系统图标里挑一个顺眼的。以后看到有意思的内容,复制,然后点一下主屏幕图标,完事。

更隐蔽的触发方式是利用 iPhone 的“轻点背面”。在“设置 - 辅助功能 - 触控 - 轻点背面”里,把“轻点两下”或“轻点三下”绑定到这条快捷指令。设置好之后,在任意界面,包括锁屏状态,轻点两下手机背面就能唤起发布流程,输入内容即可记录。我第一次设置完,朋友看我对着手机背面敲了两下就开始打字,以为我在用某种神秘手势,其实就是运行快捷指令。

iPhone 15 Pro 及后续机型还有可自定义的“操作按钮”,你也可以把它绑定到发布捷径上。这样连轻点背面都省了,按一下侧边按钮就能记录。移动场景下的记录成本被压到极低之后,Memos 的使用频率会肉眼可见地上升。

4.3 通过 URL Scheme 在自动化里调用

快捷指令支持通过 URL Scheme 被其他捷径调用,格式是:

shortcuts://run-shortcut?name=记到Memos&input=内容

但这里有个细节,捷径名称如果是中文,必须经过 URL 编码,否则系统可能找不到对应捷径。如果你在“自动化”里需要动态拼接文本并调用发布捷径,建议先用“URL 编码”动作处理整个 URL,再交给“打开 URL”动作执行。

这个能力对复杂自动化很有用。比如你可以做一个高级捷径,先让用户回答问题,拼装成结构化文本,最后通过这个 URL Scheme 去调用基础的“记到 Memos”发布捷径。这样做的好处是,发布逻辑只维护一份,其他捷径都通过调用它来复用,不会出现改了一处忘了另一处的情况。

5. 图片与语音:最容易被卡住的多媒体上传链路

5.1 理解 Memos 的资源上传逻辑

文字发布很顺利,但一旦涉及图片,事情就变得复杂了。Memos 的附件机制和我想象的不太一样:它不是“发一条 memo 的同时附带图片文件”,而是需要先把图片上传到资源库,拿到资源 ID 或 UID,再在创建 memo 时引用这个资源。接口设计上,新版通常对应一条上传资源的接口,路径类似/api/v1/resources,请求体里包含文件名、文件类型和 Base64 编码后的文件内容,服务器返回的资源对象里会带一个标识字段。

这个流程本身不复杂,短视频教程也有很多,但实际操作时容易被两个问题卡住:一是不同版本的字段名不一样,有的是resourceId,有的是uid,有的是name;二是图片 Base64 之后体积不小,请求体如果超出某些反代配置的上限,会直接失败。

所以我的建议是:动手之前,先用 curl 或调试工具把资源上传单独测通,确认返回结构里哪个字段代表资源标识,记下来。不要想当然认为教程里的字段名和你部署的版本一致,吃过亏的人都懂。

5.2 在 Shortcuts 里传图,我实际采用的方案

Shortcuts 并没有原生提供“multipart 文件上传”这种简单直观的动作,但可以通过 Base64 方式实现一套全自动传图流程。大概步骤是:

  1. 从相册选择一张照片,或者直接用“拍照”动作现场拍摄。
  2. 用“转换图像”动作压缩图片,比如把宽度限制在 1600 像素以内,质量调到 0.8。这样既能保证清晰度,又能显著减小请求体体积。
  3. 用“获取文件名称”拿到图片文件名,再用“Base64 编码”动作把图片转成 Base64 字符串。
  4. 用“字典”动作构造上传参数,键名根据你部署版本的 API 来填,一般包括文件名、类型、Base64 内容。
  5. 用“获取 URL 内容”POST 到资源上传接口,从返回内容里用“从输入中获取字典值”提取资源标识。
  6. 最后把资源标识拼进 memo 的 content 里,以 Markdown 图片语法引用,再走创建 memo 的接口发布。

这套方案我实测过,可行性和稳定性都和 Memos 版本强相关。如果你的版本字段对不上,不要死磕,我给你的兜底方案是:在 Shortcuts 里把图片压缩好后存入“文件”App,或者直接复制到剪贴板,然后切到 Memos 手动粘贴发布。听起来不够自动化,但胜在稳定。自动化再好,数据传丢了或者传成损坏文件,反而更麻烦。

5.3 语音记录优先转成文字,而不是直接扔文件

很多人喜欢用语音记录灵感和备忘,这个习惯很好。但我不建议把语音文件直接传到 Memos,因为 Memos 本质上更适合文本流,语音文件后期检索基本靠猜,你不可能一个个点开听。更合理的思路是:用 Shortcuts 的“听写文本”动作把语音实时转成文字,再把文字发布到 Memos。

做法很简单,创建一个新捷径,第一条动作接一个“听写文本”,语言选中文,然后直接把听写结果当成memoContent走文字发布流程。你可以给这个捷径设置一个 Siri 短语,比如“记一下”,之后直接对着手机说“记一下,我下午要记得去取快递”,它就会自动听写并发布到 Memos。我把这条捷径锁在锁屏上,走在路上想到什么,直接抬手说一句,几秒后内容已经出现在自己的 Memos 时间线里了。

转成文字的好处很多:正文可搜索、可以加标签、后续复制引用都很方便。Memos 的全文搜索能力虽然不能跟专业搜索引擎比,但日常找自己写过的一句话、一个任务,完全够用了。语音文件虽然原始信息更多,但用处反而低。

6. 定时自动化和 NFC 触发:让 Memos 在合适的时间自己开口

6.1 定时互动问答:把复盘模板搬进每日习惯

Shortcuts 的“自动化”功能里有一种是“定时”,它可以每天在固定时间运行一条捷径。我做得最多的是“每日复盘”捷径:每天早上 9 点弹窗问三个问题:“今天最重要的三件事是什么”“昨天有没有未完成事项”“现在心情如何”,把所有回答拼接成一条有结构的 memo 发布。

实现思路是,在捷径里连续放几个“要求输入”动作,每个动作弹一个输入框,把三次结果用“文本”动作拼接成一段带 Markdown 小标题的内容,最后调用发布链路。定时自动化触发时,系统会依次弹出输入框,你只需要顺手填完,一天的状态就被记录在案了。

这里有个坑:定时自动化默认开启“运行前询问”,也就是说到点之后,它不会直接跑,而是先弹一个“运行”确认框。想让它真正全自动,需要在自动化编辑页把“运行前询问”关掉。不过要注意,如果捷径里包含了需要交互的输入框,系统依然会弹窗,这是正常的,因为没人替你打字。

6.2 NFC 标签一碰即记,适合特定位置场景

NFC 是目前我觉得最适合 Memos 的物理触发方式。你可以买一包空白 NFC 标签,成本很低,然后用“自动化 - 创建个人自动化 - NFC - 扫描”功能,把标签和某条捷径绑定。写好之后,把标签贴在冰箱上、书桌前、玄关柜上,对应不同的记录场景。

比如我在书桌上贴了一个 NFC 标签,一旦碰到就运行“记灵感”捷径,弹出一个输入框问你“现在脑子里在想什么”。在冰箱上贴一个,碰到就运行“记购物清单”,记录要买的东西。这相当于物理世界给 Memos 埋了一组按钮,场景和记录意图天然绑定,不需要再想“这个内容该记到哪个 App”。

配置 NFC 自动化时有一个容易忽略的点:设备解锁状态下扫描才最稳定,锁屏状态偶尔也能触发,但会先弹出通知。如果你常常觉得“一碰没反应”,先看看手机是不是处于支付拦截或者某些安全模式。另外同一个标签可以被多个 iPhone 绑定,但如果导入别人的捷径,记得检查里面的 URL 和 Token 是否替换成了自己的。

6.3 自动化场景里的常见故障:以我踩过的坑为例

自动化跑多了,你会遇到一些奇怪的问题。最常见的是钥匙串权限弹窗:定时任务跑到读取 Token 这一步,系统突然弹出“允许访问钥匙串项目”,你人不在手机旁边,整个自动化就卡在那里。解决办法是先在手动运行模式下把钥匙串权限设为“始终允许”,再测试自动触发,一般能解决。

第二个坑是网络环境。快捷指令请求公网 API 时,如果服务器证书异常、域名解析失败,或者请求超时,错误提示往往很模糊。我在排查这类问题时,习惯先把 URL 放到 Safari 里直接打开,确认域名能正常访问,再用 curl 手动跑一遍同样的 API。如果 curl 正常,Shortcuts 不正常,十有八九是请求头或请求体格式没对上。

第三个坑是捷径名称问题。通过 URL Scheme 调用捷径时,中文名称没编码会让系统找不到捷径。如果自动化里明明调用了,却没有反应,先检查一下 URL 是不是被编码成了合法的格式。多一次“URL 编码”动作,通常就能解决。

7. 我实际在用的组合与两个值得复制的参数

折腾了这么一大圈,最后跟大家分享一下我现在真正高频使用的方案。我没有把 Shortcuts 做出花里胡哨的多层菜单,只保留了三条核心捷径:第一条叫“记一笔”,接收分享面板文本和剪贴板;第二条叫“语音速记”,用 Siri 短语触发,语音转文字后发布;第三条是“每日复盘”,每天早上定时弹窗问答,生成结构化 memo。三条加起来,基本覆盖了我 90% 的移动记录需求。

过程中有两个参数值得你直接抄作业。第一个是图片压缩参数:宽度 1600 像素、JPEG 质量 0.8。这个组合在手机屏幕和大多数网页浏览场景下绰绰有余,同时能把请求体控制在比较安全的体积范围内。第二个是发布可见性:如果你不想让每条 memo 都公开,可以在创建 memo 的请求体里把visibility字段固定为PRIVATE,等有空了再回 Memos 手动把愿意公开的内容改成公开。这样既可以保证隐私,又不会错过有价值的分享内容。

坦白说,我现在已经不记得当初为什么非要折腾这套组合了,但每天不自觉地往 Memos 里记几条,已经变成了像刷牙一样自然的动作。如果你也经常有“刚才那个想法明明很重要,转头就忘”的困扰,我真心建议抽出半小时,照着上面的思路搭一条最短的记录链路。等你习惯了两秒内完成记录的节奏,再回头看那些躺在收藏夹里吃灰的笔记工具,你会明白,工具从来不在乎你收藏了多少,只在乎你真的用了多少。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询