{
  "schemaVersion": "1.0",
  "item": {
    "slug": "macos-notes",
    "name": "macOS Notes",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/lucaperret/macos-notes",
    "canonicalUrl": "https://clawhub.ai/lucaperret/macos-notes",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/macos-notes",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=macos-notes",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/notes.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/macos-notes"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/macos-notes",
    "agentPageUrl": "https://openagent3.xyz/skills/macos-notes/agent",
    "manifestUrl": "https://openagent3.xyz/skills/macos-notes/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/macos-notes/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "macOS Notes",
        "body": "Manage Apple Notes via $SKILL_DIR/scripts/notes.sh. Notes content is stored as HTML internally; the script accepts plain text or HTML body and returns plaintext when reading."
      },
      {
        "title": "List folders",
        "body": "Always list folders first to discover accounts and folder names:\n\n\"$SKILL_DIR/scripts/notes.sh\" list-folders\n\nOutput format: account → folder (one per line)."
      },
      {
        "title": "Create a note",
        "body": "echo '<json>' | \"$SKILL_DIR/scripts/notes.sh\" create-note\n\nJSON fields:\n\nFieldRequiredDefaultDescriptiontitleyes-Note title (becomes the first line / heading)bodyno\"\"Note content (plain text — converted to HTML automatically)htmlno\"\"Raw HTML body (overrides body if both provided)foldernodefault folderFolder name (from list-folders)accountnodefault accountAccount name (from list-folders)"
      },
      {
        "title": "Read a note",
        "body": "echo '<json>' | \"$SKILL_DIR/scripts/notes.sh\" read-note\n\nJSON fields:\n\nFieldRequiredDefaultDescriptionnameyes-Note title (exact match)foldernoall foldersFolder to search inaccountnodefault accountAccount to search in"
      },
      {
        "title": "List notes",
        "body": "echo '<json>' | \"$SKILL_DIR/scripts/notes.sh\" list-notes\n\nJSON fields:\n\nFieldRequiredDefaultDescriptionfoldernodefault folderFolder nameaccountnodefault accountAccount namelimitno20Max notes to return"
      },
      {
        "title": "Search notes",
        "body": "echo '<json>' | \"$SKILL_DIR/scripts/notes.sh\" search-notes\n\nJSON fields:\n\nFieldRequiredDefaultDescriptionqueryyes-Text to search for in note titlesaccountnodefault accountAccount to search inlimitno10Max results to return"
      },
      {
        "title": "Interpreting natural language",
        "body": "Map user requests to commands:\n\nUser saysCommandKey fields\"Note this down: ...\"create-notetitle, body\"Save meeting notes\"create-notetitle: \"Meeting notes — <date>\", body\"What did I write about X?\"search-notesquery: \"X\"\"Show my notes\"list-notes(defaults)\"Read my note about X\"read-notename: \"X\"\"Save this in my work notes\"create-noteMatch closest account/folder from list-folders"
      },
      {
        "title": "Example prompts",
        "body": "\"Note down the API key format: prefix_xxxx\"\n\necho '{\"title\":\"API key format\",\"body\":\"Format: prefix_xxxx\"}' | \"$SKILL_DIR/scripts/notes.sh\" create-note\n\n\"Show my recent notes\"\n\necho '{}' | \"$SKILL_DIR/scripts/notes.sh\" list-notes\n\n\"What did I write about passwords?\"\n\necho '{\"query\":\"password\"}' | \"$SKILL_DIR/scripts/notes.sh\" search-notes\n\n\"Read my note about Hinge\"\n\necho '{\"name\":\"Hinge\"}' | \"$SKILL_DIR/scripts/notes.sh\" read-note\n\n\"Create a meeting summary in my iCloud notes\"\n\n\"$SKILL_DIR/scripts/notes.sh\" list-folders\n\nThen:\n\necho '{\"title\":\"Meeting summary — 2026-02-17\",\"body\":\"Discussed roadmap.\\n- Q1: launch MVP\\n- Q2: iterate\",\"account\":\"iCloud\",\"folder\":\"Notes\"}' | \"$SKILL_DIR/scripts/notes.sh\" create-note"
      },
      {
        "title": "Critical rules",
        "body": "Always list folders first if the user hasn't specified an account/folder — folder names are reused across accounts\nSpecify both account and folder when targeting a specific location — folder: \"Notes\" alone is ambiguous\nPassword-protected notes are skipped — the script cannot read or modify them\nPass JSON via stdin — never as a CLI argument (avoids leaking data in process list)\nAll fields are validated by the script (type coercion, range checks) — invalid input is rejected with an error\nAll actions are logged to logs/notes.log with timestamp, command, and note title\nBody uses plain text — newlines in body are converted to <br> automatically; use html for rich formatting\nNote title = first line — Notes.app treats the first line of the body as the note name"
      }
    ],
    "body": "macOS Notes\n\nManage Apple Notes via $SKILL_DIR/scripts/notes.sh. Notes content is stored as HTML internally; the script accepts plain text or HTML body and returns plaintext when reading.\n\nQuick start\nList folders\n\nAlways list folders first to discover accounts and folder names:\n\n\"$SKILL_DIR/scripts/notes.sh\" list-folders\n\n\nOutput format: account → folder (one per line).\n\nCreate a note\necho '<json>' | \"$SKILL_DIR/scripts/notes.sh\" create-note\n\n\nJSON fields:\n\nField\tRequired\tDefault\tDescription\ntitle\tyes\t-\tNote title (becomes the first line / heading)\nbody\tno\t\"\"\tNote content (plain text — converted to HTML automatically)\nhtml\tno\t\"\"\tRaw HTML body (overrides body if both provided)\nfolder\tno\tdefault folder\tFolder name (from list-folders)\naccount\tno\tdefault account\tAccount name (from list-folders)\nRead a note\necho '<json>' | \"$SKILL_DIR/scripts/notes.sh\" read-note\n\n\nJSON fields:\n\nField\tRequired\tDefault\tDescription\nname\tyes\t-\tNote title (exact match)\nfolder\tno\tall folders\tFolder to search in\naccount\tno\tdefault account\tAccount to search in\nList notes\necho '<json>' | \"$SKILL_DIR/scripts/notes.sh\" list-notes\n\n\nJSON fields:\n\nField\tRequired\tDefault\tDescription\nfolder\tno\tdefault folder\tFolder name\naccount\tno\tdefault account\tAccount name\nlimit\tno\t20\tMax notes to return\nSearch notes\necho '<json>' | \"$SKILL_DIR/scripts/notes.sh\" search-notes\n\n\nJSON fields:\n\nField\tRequired\tDefault\tDescription\nquery\tyes\t-\tText to search for in note titles\naccount\tno\tdefault account\tAccount to search in\nlimit\tno\t10\tMax results to return\nInterpreting natural language\n\nMap user requests to commands:\n\nUser says\tCommand\tKey fields\n\"Note this down: ...\"\tcreate-note\ttitle, body\n\"Save meeting notes\"\tcreate-note\ttitle: \"Meeting notes — <date>\", body\n\"What did I write about X?\"\tsearch-notes\tquery: \"X\"\n\"Show my notes\"\tlist-notes\t(defaults)\n\"Read my note about X\"\tread-note\tname: \"X\"\n\"Save this in my work notes\"\tcreate-note\tMatch closest account/folder from list-folders\nExample prompts\n\n\"Note down the API key format: prefix_xxxx\"\n\necho '{\"title\":\"API key format\",\"body\":\"Format: prefix_xxxx\"}' | \"$SKILL_DIR/scripts/notes.sh\" create-note\n\n\n\"Show my recent notes\"\n\necho '{}' | \"$SKILL_DIR/scripts/notes.sh\" list-notes\n\n\n\"What did I write about passwords?\"\n\necho '{\"query\":\"password\"}' | \"$SKILL_DIR/scripts/notes.sh\" search-notes\n\n\n\"Read my note about Hinge\"\n\necho '{\"name\":\"Hinge\"}' | \"$SKILL_DIR/scripts/notes.sh\" read-note\n\n\n\"Create a meeting summary in my iCloud notes\"\n\n\"$SKILL_DIR/scripts/notes.sh\" list-folders\n\n\nThen:\n\necho '{\"title\":\"Meeting summary — 2026-02-17\",\"body\":\"Discussed roadmap.\\n- Q1: launch MVP\\n- Q2: iterate\",\"account\":\"iCloud\",\"folder\":\"Notes\"}' | \"$SKILL_DIR/scripts/notes.sh\" create-note\n\nCritical rules\nAlways list folders first if the user hasn't specified an account/folder — folder names are reused across accounts\nSpecify both account and folder when targeting a specific location — folder: \"Notes\" alone is ambiguous\nPassword-protected notes are skipped — the script cannot read or modify them\nPass JSON via stdin — never as a CLI argument (avoids leaking data in process list)\nAll fields are validated by the script (type coercion, range checks) — invalid input is rejected with an error\nAll actions are logged to logs/notes.log with timestamp, command, and note title\nBody uses plain text — newlines in body are converted to <br> automatically; use html for rich formatting\nNote title = first line — Notes.app treats the first line of the body as the note name"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/lucaperret/macos-notes",
    "publisherUrl": "https://clawhub.ai/lucaperret/macos-notes",
    "owner": "lucaperret",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/macos-notes",
    "downloadUrl": "https://openagent3.xyz/downloads/macos-notes",
    "agentUrl": "https://openagent3.xyz/skills/macos-notes/agent",
    "manifestUrl": "https://openagent3.xyz/skills/macos-notes/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/macos-notes/agent.md"
  }
}