Ekko Agent Apple Notes Skill 实战:在 macOS 上用 memo CLI 管理备忘录的完整指南
AI 应用人工智能AI Agent本地部署前端后端工作流自动化【免费下载链接】ekko-studioEkko Studio is a local-first AI workspace for multi-agent chat, coding, and visual workflows, available on desktop and the web.项目地址https://gitcode.com/gh_mirrors/he/ekko-studio点击查看免费下载Ekko Agent 内置的apple-notesSkillpackages/ekko-agent/skills/apple-notes/SKILL.md为 Agent 提供了一套通过memo notes命令行操作 Apple Notes备忘录 App的标准流程覆盖查看、搜索、新建、编辑、移动、导出与删除。本文以该 Skill 文档为主体结合 Ekko Agent 的 Skill 发现与路由源码完整讲解其前置依赖、全部命令用法、隐私与安全边界以及它在 Ekko Agent Skill 体系中的定位与运作原理让读者既能直接上手调用也能理解背后如何被 Agent 发现与执行的机制。Skill 概览与定位apple-notes是 Ekko Agent 内置 Skill 目录中的一员packages/ekko-agent/skills/apple-notes/其 SKILL.md 开头通过 YAML frontmatter 声明了核心元信息--- name: apple-notes description: Create, view, search, edit, move, export, or delete Apple Notes on macOS with the memo CLI. metadata: keywords: - apple notes - notes.app - memo notes ---这三个字段在 Ekko Agent 中各有明确用途从源码可以一一印证packages/ekko-agent/src/tools/skills.tsname技能的唯一标识也是模型提示词中注入的技能名之一Agent 通过精确名称调用skill_view加载完整指令见SkillViewTool的execute中对精确名称匹配的要求。description用于skill_list的兜底发现fallback discovery。SkillListTool允许按 query 对技能名、描述与关键词做大小写不敏感的搜索。metadata.keywords用于宿主侧的确定性精确匹配。源码中的resolveSkillRouting与matchSkillsForUserMessage只使用技能名 显式关键词作为路由输入长的描述和 Skill 正文从不参与自动选择。也就是说apple notes、notes.app、memo notes这些关键词决定了当用户提到备忘录/Apple Notes/Notes.app时Agent 能否确定性选中该技能。使用该 Skill 有一个前提条件仅在用户明确希望结果落入 Notes.app 时使用when the user wants the result in Notes.app且该 Skill 是macOS-only。前置依赖与权限准备Skill 文档明确要求先做两项环境检查command -v memo memo notes --helpmemoCLI 来自开源项目 memo。如果系统中不存在该命令正确做法是向用户解释这一外部依赖并让用户自行决定是否安装绝不能静默安装——这一点与 Ekko 的技能设计原则一致skill-creator 中同样要求执行新脚本前先检查依赖不得静默安装。除了 CLI 本身Notes.app 必须可访问macOS 还可能会弹出自动化Automation权限请求路径为系统设置System Settings 隐私与安全性Privacy Security 自动化Automation只有授予该权限后memo才能代表用户读写备忘录库。这是 macOS 的应用沙箱与 TCCTransparency, Consent, and Control机制的体现Agent 应将此提示如实转达给用户。读取与搜索用最窄的查询范围保护隐私读取操作是四项能力中最安全的Skill 文档给出了三种命令形态memo notes # 列出所有备忘录 memo notes -f Folder Name # 按文件夹过滤 memo notes -s query # 按关键字搜索其中-ffolder与-ssearch可以组合使用核心原则是始终选用尽可能窄的文件夹或搜索词避免把与请求无关的私人笔记暴露在响应中。这条约束直接呼应了 Skill 文档反复强调的隐私边界——备忘录是高度私密的数据Agent 返回内容时应只呈现完成任务所必需的最小集合。新建备忘录注意交互式编辑器的行为差异创建命令同样有两种形态memo notes -a # 交互式创建可能打开编辑器 memo notes -a Note Title # 直接指定标题创建Skill 文档特别提示了一个实操坑创建过程可能打开交互式编辑器。因此若环境提供持久化的交互式终端应优先使用它否则请用户在本机完成标题/正文的输入而不是试图在一次性的 one-shot 命令中强行驱动编辑器。这一点对 Agent 调用方很重要——memo的交互式提示需要终端访问能力这在一次性 CLI 调用中不一定可用该限制在文档末尾的 Limitations 一节也有明确说明。编辑、移动、导出与删除以交互选择为基础的四类变更memo notes -e # 编辑interactive note selection memo notes -m # 移动interactive note selection memo notes -ex # 导出interactive note selection memo notes -d # 删除interactive note selection这四个命令都基于交互式笔记选择因此 Skill 文档给出了一条关键纪律在执行编辑、移动、删除之前必须先确认精确的笔记对象与所在文件夹identify the exact note and folder。更重要的是变更语义的分类创建、编辑、移动、删除都属于对用户笔记库的变更操作mutations文档明确规定——只在用户明确请求时才执行。对于删除如果目标笔记在用户指令中已经无歧义可直接执行否则必须在删除前向用户做一次即时确认Confirm immediately before deletion if the target was not already unambiguous。这条变更需授权、删除需确认的安全模式与 Ekko Agent 的 Skill 管理实现是同构的在 packages/ekko-agent/src/tools/skills.ts 的SkillManageTool中delete动作要求confirmedtrue且删除采用归档而非擦除的策略移动到.ekko-archive隐藏目录内置技能则完全禁止删除。可见无论是对笔记库还是对技能库Ekko 都坚持变更前读取、删除前确认、可恢复优先的一致安全哲学。已知限制如实告知能力边界Skill 文档末尾列出的三条限制是 Agent 在调用失败或用户预期过高时必须诚实沟通的内容限制影响与应对memo无法编辑包含图片或附件的笔记遇到此类笔记应明确告知用户能力边界而不是假装成功交互式提示依赖终端访问在 one-shot 命令中可能失效优先使用持久化交互终端或请用户本地完成导出的文件可能包含私人笔记内容只能写入用户指定的位置避免暴露无关内容最后一条尤其值得重视-ex导出功能会把笔记原文写入磁盘文件Agent 必须严格遵守只写到用户要求的位置这是防数据泄漏的硬性约束。从源码理解这个 Skill 是如何被发现、加载与执行的要真正用好apple-notes有必要理解 Ekko Agent 处理 Skill 的完整调用链。相关实现集中在 packages/ekko-agent/src/tools/skills.ts 与 packages/ekko-agent/src/skills/manager.ts。1. 发现DiscoverySkillListToolskills.ts L114-L175扫描配置的技能目录含外部技能目录路径解析逻辑见 packages/ekko-agent/src/skills/external-directories.ts返回每个技能的名称、描述、关键词、分类、启用状态与校验状态。apple-notes作为内置技能天然出现在该目录扫描结果中。2. 加载ViewSkillViewToolskills.ts L177-L256要求传入精确的技能名找到后返回完整的 SKILL.md 正文并附上sha256摘要与baseDirectory。这正是 Agent 在识别到用户想要在 Notes.app 中操作备忘录后拿到memo notes全套指令的途径。3. 执行ExecutionSKILL.md 的正文本质上是指令文本真正的执行动作由 Agent 的终端工具terminal 类工具发起memo notes ...命令完成。SKILL.md 在这里扮演操作手册的角色告诉模型何时用哪个参数、要遵守哪些隐私与确认纪律。4. 只读边界apple-notes作为一个使用外部 CLI 操作 macOS 应用的技能SKILL.md 中不含skill_manage可管理的支持文件其目录下仅有一个 SKILL.md。若需要为它补充参考资料或脚本按 skill-creator 的规定应放入references/、templates/、scripts/、assets/之一且路径必须受控源码中resolveSupportFile会强制校验目录白名单并拒绝..逃逸。与 Apple Reminders 技能的协作边界仓库中与apple-notes并列的还有 apple-reminders 技能二者都属 macOS-only 的系统应用操作类技能但职责划分清晰apple-notes用memo notes处理备忘录Notesapple-reminders用remindctl处理提醒事项Reminders且文档明确要求当remind me可能同时指向 Apple Reminders 或宿主应用内通知时必须先询问用户去向不得擅自断言该技能会调度聊天消息或 Agent 任务。这种同类技能之间的歧义裁决实践与apple-notes中只在用户想要 Notes.app 结果时使用的定位约束相辅相成共同构成了 Ekko Agent 处理 macOS 系统应用请求时的语义边界。总结apple-notes是一个小而完整的 macOS 专属 Skill 范例它用一份精炼的 SKILL.md 定义了memo notes全部操作形态-f/-s读取搜索、-a创建、-e/-m/-ex/-d变更导出并通过 frontmatter 的name/description/metadata.keywords接入 Ekko Agent 的确定性技能路由体系。对使用者而言掌握它的关键是三条纪律提前确认memoCLI 与自动化权限、始终用最窄查询保护隐私、把创建/编辑/移动/删除视为需显式授权删除需确认的变更操作——这正是 Agent 在用户私人数据上保持可信赖的底线。赞分享AI 应用人工智能AI Agent本地部署前端后端工作流自动化【免费下载链接】ekko-studioEkko Studio is a local-first AI workspace for multi-agent chat, coding, and visual workflows, available on desktop and the web.项目地址https://gitcode.com/gh_mirrors/he/ekko-studio点击查看免费下载相关推荐OpenClaw Apple Notes 技能实战使用 memo CLI 在 macOS 上全流程管理 Apple 备忘录OpenClaw Apple Notes 技能实战使用 memo CLI 在 macOS 上全流程管理 Apple 备忘录 在 OpenClaw 中技能SAI 应用AI Agent交互助手后端即时通讯网关Ekko Agent GitHub Skill 使用指南用 gh CLI 完成仓库、PR、Issue、CI 与 API 全流程操作Ekko Agent GitHub Skill 使用指南用 gh CLI 完成仓库、PR、Issue、CI 与 API 全流程操作 本指南围绕 Ekko AgAI 应用人工智能AI Agent本地部署前端后端工作流自动化用 Think Agent Skill 自动化生成 Release Notes以 release-notes 技能为例的完整实战用 Think Agent Skill 自动化生成 Release Notes以 release notes 技能为例的完整实战 本文基于 CloudflarAI AgentAgent 框架后端云原生MCP 服务实时通信创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

BesTV R3300-L刷机全攻略:S905L平台线刷避坑指南

BesTV R3300-L刷机全攻略:S905L平台线刷避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 14:03:34 阅读更多 →
【Dv3Admin】视图下全部权限按钮批量生成

【Dv3Admin】视图下全部权限按钮批量生成

在现代 Web 应用开发中,权限管理是确保系统安全性和功能灵活性的核心部分。每个功能模块通常会根据不同的角色需求,提供不同的权限操作按钮,如:查看、编辑、删除等。而在实际开发中,当功能模块数量庞大时,手动为每个功能模块创建权限项是一项重复且繁琐的工作。 本文将介…

2026/9/24 14:03:34 阅读更多 →
乐观帧(Optimistic Lockstep):服务器按节拍走,到底好在哪、坏在哪

乐观帧(Optimistic Lockstep):服务器按节拍走,到底好在哪、坏在哪

一句话定位 严格锁步:服务器等所有人的输入到齐 → 才推进一帧 乐观帧 :★ 服务器按固定节拍推进 → 谁没到,用预测填"乐观"二字的含义是:我乐观地假设你的输入马上就到;没到我也不等,先按我猜的…

2026/9/24 14:03:34 阅读更多 →

最新新闻

低空空域智能管控怎么做?物理AI+数字孪生完整技术架构解析

低空空域智能管控怎么做?物理AI+数字孪生完整技术架构解析

低空空域智能管控的最优物理AI方案,不应只是“无人机监控大屏”,而应该是一套能够完成空域数字化、实时感知、航线规划、仿真推演、风险预测、智能调度和应急处置的闭环系统。按照城市级数字孪生能力、空域数据融合、飞行器实时感知、仿真预测、多机协同…

2026/9/24 14:48:01 阅读更多 →
G6 径向布局(Radial Layout)实战指南:同心圆分层、节点防重叠与聚类排序

G6 径向布局(Radial Layout)实战指南:同心圆分层、节点防重叠与聚类排序

G6 径向布局(Radial Layout)实战指南:同心圆分层、节点防重叠与聚类排序 【免费下载链接】G6 ♾ A Graph Visualization Framework in JavaScript. 项目地址: https://gitcode.com/gh_mirrors/g6/G6 径向布局(Radial Layou…

2026/9/24 14:48:01 阅读更多 →
webnovel-writer 冲突设计实战:从一句核心冲突到整卷危机链的完整工作流

webnovel-writer 冲突设计实战:从一句核心冲突到整卷危机链的完整工作流

webnovel-writer 冲突设计实战:从一句核心冲突到整卷危机链的完整工作流 【免费下载链接】webnovel-writer 基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200 万字量级 连载创作。 项目地址: htt…

2026/9/24 14:48:01 阅读更多 →
工业 AI 项目Sim‑to‑Real鸿沟,公共产业载体可以补齐哪些中间环节

工业 AI 项目Sim‑to‑Real鸿沟,公共产业载体可以补齐哪些中间环节

Sim‑to‑Real(仿真到现实鸿沟)是工业 AI、具身智能赛道老生常谈的技术难题。模型在仿真环境指标表现优秀,部署到真实工厂、真实硬件之后,受光照、摩擦、噪声、设备公差影响,效果出现明显跳水。对于中小 AI 团队、硬件…

2026/9/24 14:48:01 阅读更多 →
C语言动态内存管理详解:从malloc到柔性数组

C语言动态内存管理详解:从malloc到柔性数组

1. 引言在C语言的学习过程中,内存管理始终是一个绕不开的核心话题。很多初学者在编写程序时,往往只关注逻辑是否正确,却忽略了内存的分配与释放。实际上,动态内存管理是C语言中极为重要的一环,它直接关系到程序的稳定性…

2026/9/24 14:48:01 阅读更多 →
伺服系统抖动归因:电气、机械与控制三维度诊断框架

伺服系统抖动归因:电气、机械与控制三维度诊断框架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 14:47:00 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →