apple-notes
FreeManage Apple Notes via memo CLI: create, search, edit.
The English summary is being prepared. Showing the original description.
手绘 Excalidraw JSON 图表(架构图、流程图、序列图)。
The English summary is being prepared. Showing the original description.
Run score Not tested
See how to installReview the instructions the agent will receive before you install.
本技能从 Octop 移植。使用这些 harness/deepagents 工具:
| 概念 | 工具 |
|---|---|
| Shell | execute |
| 读/写/编辑文件 | read_file, write_file, edit_file |
| 查找文件/搜索内容 | glob, grep |
| 获取 URL | web_fetch |
| 浏览器自动化 | browser_use |
| 子代理工作 | task |
| 记忆 | memory_store, memory_recall, memory_search |
内置技能文件位于 /_builtin_skills/<name>/。用户安装的技能位于 /skills/<name>/。
通过编写标准 Excalidraw 元素 JSON 并保存为 .excalidraw 文件来创建图表。这些文件可以拖放到 excalidraw.com 进行查看和编辑。无需账户、API 密钥或渲染库——只需 JSON。
为架构图、流程图、序列图、概念图等生成 .excalidraw 文件。文件可以在 excalidraw.com 上打开或上传以获取可共享链接。
write_file 创建 .excalidraw 文件execute 使用 scripts/upload.py 获取可共享链接将元素数组包装在标准 .excalidraw 信封中,并使用 write_file 保存:
{
"type": "excalidraw",
"version": 2,
"source": "octop-harness",
"elements": [ ...你的元素数组... ],
"appState": {
"viewBackgroundColor": "#ffffff"
}
}
保存到任意路径,例如 ~/diagrams/my_diagram.excalidraw。
通过 execute 运行上传脚本:
python _builtin_skills/excalidraw/scripts/upload.py diagrams/my_diagram.excalidraw
这会上传到 excalidraw.com(无需账户)并打印可共享 URL。需要 cryptography pip 包(pip install cryptography)。
type, id(唯一字符串), x, y, width, height
strokeColor: "#1e1e1e"backgroundColor: "transparent"fillStyle: "solid"strokeWidth: 2roughness: 1(手绘外观)opacity: 100画布背景为白色。
矩形:
{ "type": "rectangle", "id": "r1", "x": 100, "y": 100, "width": 200, "height": 100 }
roundness: { "type": 3 } 用于圆角backgroundColor: "#a5d8ff", fillStyle: "solid" 用于填充椭圆:
{ "type": "ellipse", "id": "e1", "x": 100, "y": 100, "width": 150, "height": 150 }
菱形:
{ "type": "diamond", "id": "d1", "x": 100, "y": 100, "width": 150, "height": 150 }
带标签的形状(容器绑定)——创建一个绑定到形状的文本元素:
警告: 绝不要在形状上使用
"label": { "text": "..." }。这不是有效的 Excalidraw 属性,会被静默忽略,导致空白形状。你必须** 使用下面的容器绑定方法。
形状需要 boundElements 列出文本,文本需要 containerId 指回:
{ "type": "rectangle", "id": "r1", "x": 100, "y": 100, "width": 200, "height": 80,
"roundness": { "type": 3 }, "backgroundColor": "#a5d8ff", "fillStyle": "solid",
"boundElements": [{ "id": "t_r1", "type": "text" }] },
{ "type": "text", "id": "t_r1", "x": 105, "y": 110, "width": 190, "height": 25,
"text": "Hello", "fontSize": 20, "fontFamily": 1, "strokeColor": "#1e1e1e",
"textAlign": "center", "verticalAlign": "middle",
"containerId": "r1", "originalText": "Hello", "autoResize": true }
containerId 时,文本由 Excalidraw 自动居中x/y/width/height 是近似值——Excalidraw 加载时会重新计算它们originalText 应匹配 textfontFamily: 1(Virgil/手绘字体)带标签的箭头——相同的容器绑定方法:
{ "type": "arrow", "id": "a1", "x": 300, "y": 150, "width": 200, "height": 0,
"points": [[0,0],[200,0]], "endArrowhead": "arrow",
"boundElements": [{ "id": "t_a1", "type": "text" }] },
{ "type": "text", "id": "t_a1", "x": 370, "y": 130, "width": 60, "height": 20,
"text": "connects", "fontSize": 16, "fontFamily": 1, "strokeColor": "#1e1e1e",
"textAlign": "center", "verticalAlign": "middle",
"containerId": "a1", "originalText": "connects", "autoResize": true }
独立文本(仅用于标题和注释——无容器):
{ "type": "text", "id": "t1", "x": 150, "y": 138, "text": "Hello", "fontSize": 20,
"fontFamily": 1, "strokeColor": "#1e1e1e", "originalText": "Hello", "autoResize": true }
x 是左边缘。要在位置 cx 居中:x = cx - (text.length * fontSize * 0.5) / 2textAlign 或 width 进行定位箭头:
{ "type": "arrow", "id": "a1", "x": 300, "y": 150, "width": 200, "height": 0,
"points": [[0,0],[200,0]], "endArrowhead": "arrow" }
points: [dx, dy] 来自元素 x, y 的偏移endArrowhead: null | "arrow" | "bar" | "dot" | "triangle"strokeStyle: "solid"(默认)| "dashed" | "dotted"{
"type": "arrow", "id": "a1", "x": 300, "y": 150, "width": 150, "height": 0,
"points": [[0,0],[150,0]], "endArrowhead": "arrow",
"startBinding": { "elementId": "r1", "fixedPoint": [1, 0.5] },
"endBinding": { "elementId": "r2", "fixedPoint": [0, 0.5] }
}
fixedPoint 坐标:top=[0.5,0], bottom=[0.5,1], left=[0,0.5], right=[1,0.5]
字体大小:
fontSize:16fontSize:20fontSize:14(谨慎使用)fontSize元素大小:
完整颜色表参见 references/colors.md。快速参考:
| 用途 | 填充颜色 | 十六进制 |
|---|---|---|
| 主要/输入 | 浅蓝色 | #a5d8ff |
| 成功/输出 | 浅绿色 | #b2f2bb |
| 警告/外部 | 浅橙色 | #ffd8a8 |
| 处理/特殊 | 浅紫色 | #d0bfff |
| 错误/关键 | 浅红色 | #ffc9c9 |
| 笔记/决策 | 浅黄色 | #fff3bf |
| 存储/数据 | 浅青色 | #c3fae8 |
#757575references/dark-mode.mdreferences/examples.mdNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Manage Apple Notes via memo CLI: create, search, edit.
The English summary is being prepared. Showing the original description.
通过 memo CLI 管理 Apple Notes:创建、搜索、编辑。
The English summary is being prepared. Showing the original description.
通过 remindctl 在 macOS 上管理 Apple Reminders——列出、添加、编辑、完成、 删除同步到 iPhone/iPad 的待办事项。在提及"提醒"、"Reminders app"、 需要手机同步的"提醒我"或添加带截止日期的个人待办事项时触发。macOS only。 当用户需要代理内部提醒(使用 memory_store 或外部 调度)或日历事件时跳过。
The English summary is being prepared. Showing the original description.
Manage Apple Reminders on macOS via remindctl — list, add, edit, complete, delete to-dos that sync to iPhone/iPad. Trigger on "reminder", "Reminders app", "提醒我" with phone sync, or adding personal todos with due dates. macOS only. Skip when the user wants agent-internal alerts (use memory_store or external scheduling) or calendar events.
The English summary is being prepared. Showing the original description.
Dark-themed SVG architecture/cloud/infra diagrams as HTML.
The English summary is being prepared. Showing the original description.
暗色主题的 SVG 架构/云/基础设施图表,输出为 HTML。
The English summary is being prepared. Showing the original description.