
我大概是两年前开始折腾自托管笔记工具兜兜转转最后留下的并不是那些大而全的知识库而是软件仓库里一个特别轻量的小东西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?openIdxxx调用时把 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提示成功或失败。这条捷径的完整动作链大概是这样的接收文本输入可以是分享面板传来的文字、剪贴板内容也可以是用“要求输入”弹窗手动填写的内容。把文本存入变量比如命名为memoContent。构造 HTTP 请求体最稳妥的方式是用“字典”动作把content键设为memoContent这样 Shortcuts 会自动把它转成合法的 JSON不用自己手写大括号。使用“获取 URL 内容”动作方法选 POSTURL 填https://你的域名/api/v1/memo老版本请对应调整请求头加Authorization: Bearer 你的Token和Content-Type: application/json请求体选“JSON”塞入刚才的字典。获取返回的“响应代码”判断是否发布成功。成功就弹一个横幅通知失败就显示响应状态码和响应正文方便排查。这个捷径做出来后可以放到主屏幕也可以放到分享面板。每次想记点什么点一下、输入、完事。两秒是真能做到的因为整个流程没有多余步骤。3.2 URL 编码这一步最容易翻车很多人第一次做这个捷径会在中文内容上卡住表现为发布出去的 memo 出现乱码或者干脆请求失败。这里其实有个很容易混淆的点如果你把内容放在 JSON 请求体里并且正确设置了Content-Type: application/json中文字符是不需要做 URL 编码的。Shortcuts 的“字典”动作会自动处理好引号和特殊字符你只需要保证文本变量内容正确即可。但如果你的用法是把内容拼进 URL 查询参数比如旧版 OpenId 接口的contentxxx那就必须先经过一次“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 Scheme4.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记到Memosinput内容但这里有个细节捷径名称如果是中文必须经过 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 方式实现一套全自动传图流程。大概步骤是从相册选择一张照片或者直接用“拍照”动作现场拍摄。用“转换图像”动作压缩图片比如把宽度限制在 1600 像素以内质量调到 0.8。这样既能保证清晰度又能显著减小请求体体积。用“获取文件名称”拿到图片文件名再用“Base64 编码”动作把图片转成 Base64 字符串。用“字典”动作构造上传参数键名根据你部署版本的 API 来填一般包括文件名、类型、Base64 内容。用“获取 URL 内容”POST 到资源上传接口从返回内容里用“从输入中获取字典值”提取资源标识。最后把资源标识拼进 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 里记几条已经变成了像刷牙一样自然的动作。如果你也经常有“刚才那个想法明明很重要转头就忘”的困扰我真心建议抽出半小时照着上面的思路搭一条最短的记录链路。等你习惯了两秒内完成记录的节奏再回头看那些躺在收藏夹里吃灰的笔记工具你会明白工具从来不在乎你收藏了多少只在乎你真的用了多少。