{
  "schemaVersion": "1.0",
  "item": {
    "slug": "macos",
    "name": "macOS",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/macos",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/macos",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/macos",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=macos",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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",
      "slug": "macos",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-12T06:59:26.668Z",
      "expiresAt": "2026-05-19T06:59:26.668Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=macos",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=macos",
        "contentDisposition": "attachment; filename=\"macos-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "macos"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/macos"
    },
    "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",
    "agentPageUrl": "https://openagent3.xyz/skills/macos/agent",
    "manifestUrl": "https://openagent3.xyz/skills/macos/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/macos/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": "BSD vs GNU Commands",
        "body": "sed -i requires extension argument: sed -i '' 's/a/b/' file — empty string for no backup, Linux doesn't need it\nfind doesn't support -printf — use -exec stat or xargs with stat -f instead\ndate uses different format flags: date -j -f '%Y-%m-%d' '2024-01-15' '+%s' — -j prevents setting time\ngrep -P (Perl regex) doesn't exist — use grep -E (extended) or install ggrep via Homebrew\nxargs defaults to /usr/bin/echo not the command — always specify the command explicitly\nreadlink -f doesn't exist — use realpath or python3 -c \"import os; print(os.path.realpath('path'))\""
      },
      {
        "title": "Homebrew Paths",
        "body": "Apple Silicon: /opt/homebrew/bin, /opt/homebrew/lib\nIntel: /usr/local/bin, /usr/local/lib\nCheck architecture: uname -m returns arm64 or x86_64\nHomebrew doesn't add to PATH automatically — check ~/.zprofile for eval line\nRunning x86 binaries: arch -x86_64 /bin/bash then install/run Intel-only tools"
      },
      {
        "title": "Keychain (Secrets)",
        "body": "Store: security add-generic-password -a \"$USER\" -s \"service_name\" -w \"secret_value\" -U\nRetrieve: security find-generic-password -a \"$USER\" -s \"service_name\" -w\n-U flag updates if exists — without it, duplicate entries error\nKeychain prompts for access on first use — authorize permanently for automation\nDelete: security delete-generic-password -a \"$USER\" -s \"service_name\""
      },
      {
        "title": "launchd (Services)",
        "body": "User agents: ~/Library/LaunchAgents/ — runs as user when logged in\nSystem daemons: /Library/LaunchDaemons/ — runs at boot as root\nLoad: launchctl load -w ~/Library/LaunchAgents/com.example.plist\nUnload before editing: launchctl unload — edits to loaded plists are ignored\nCheck errors: launchctl list | grep service_name then launchctl error <exit_code>\nLogs: log show --predicate 'subsystem == \"com.example\"' --last 1h"
      },
      {
        "title": "Privacy Permissions (TCC)",
        "body": "Automation scripts fail silently without Full Disk Access or Automation permissions\nGrant in System Settings → Privacy & Security → corresponding category\nTerminal and iTerm need separate permissions — granting to one doesn't grant to other\ntccutil reset clears permissions: tccutil reset AppleEvents for Automation\nCheck granted permissions: sqlite3 ~/Library/Application\\ Support/com.apple.TCC/TCC.db \"SELECT * FROM access\""
      },
      {
        "title": "defaults (Preferences)",
        "body": "Read: defaults read com.apple.finder AppleShowAllFiles\nWrite: defaults write com.apple.finder AppleShowAllFiles -bool true\nDelete: defaults delete com.apple.finder AppleShowAllFiles\nRestart app after changing: killall Finder\nFind app bundle ID: osascript -e 'id of app \"App Name\"'\nExport all: defaults export com.apple.finder - outputs XML"
      },
      {
        "title": "File Operations",
        "body": "ditto preserves resource forks and metadata — use instead of cp for app bundles\nCreate DMG: hdiutil create -volname \"Name\" -srcfolder ./folder -format UDZO output.dmg\nMount DMG: hdiutil attach image.dmg — returns mount point path\nUnmount: hdiutil detach /Volumes/Name\nExtended attributes: xattr -l file to list, xattr -c file to clear all\nQuarantine removal: xattr -d com.apple.quarantine app.app"
      },
      {
        "title": "Clipboard",
        "body": "Copy to clipboard: echo \"text\" | pbcopy\nPaste from clipboard: pbpaste\nCopy file contents: pbcopy < file.txt\nPreserve RTF: pbpaste -Prefer rtf\nClipboard works in SSH sessions to local machine — useful for remote file copying"
      },
      {
        "title": "Screenshots and Screen",
        "body": "Screenshot region to file: screencapture -i output.png\nScreenshot window: screencapture -w output.png\nScreenshot to clipboard: screencapture -c\nHeadless (no UI): screencapture -x — suppresses sound and cursor\nScreen recording requires Screen Recording permission in Privacy settings"
      },
      {
        "title": "Process Management",
        "body": "Prevent sleep: caffeinate -i command — keeps system awake while command runs\nPrevent sleep with timeout: caffeinate -t 3600 — 1 hour\nCheck why not sleeping: pmset -g assertions\nPower settings: pmset -g to view, sudo pmset -a sleep 0 to disable sleep\nCurrent app in focus: osascript -e 'tell application \"System Events\" to get name of first process whose frontmost is true'"
      },
      {
        "title": "Network",
        "body": "List interfaces: networksetup -listallhardwareports\nGet IP: ipconfig getifaddr en0 (Wi-Fi usually en0 on laptops)\nDNS servers: scutil --dns | grep nameserver\nFlush DNS: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder\nProxy settings: networksetup -getwebproxy \"Wi-Fi\""
      },
      {
        "title": "System Integrity Protection",
        "body": "Check status: csrutil status\nDisable (Recovery Mode only): csrutil disable — not recommended for production\nProtected paths: /System, /usr (except /usr/local), /sbin, /bin\nCan't modify these even as root — design your automations around this"
      },
      {
        "title": "Logs",
        "body": "Stream live: log stream --predicate 'process == \"processname\"'\nSearch recent: log show --last 1h --predicate 'eventMessage contains \"error\"'\nSubsystem filter: log show --predicate 'subsystem == \"com.apple.example\"'\nSave to file: log collect --output ./logs.logarchive — opens in Console.app"
      },
      {
        "title": "Automation Tips",
        "body": "Open URL: open \"https://example.com\" — uses default browser\nOpen app: open -a \"Safari\" — by name, not path\nOpen file with specific app: open -a \"TextEdit\" file.txt\nRun AppleScript: osascript -e 'tell application \"Finder\" to get name of home'\nSpotlight search: mdfind \"kMDItemDisplayName == 'filename.txt'\" — faster than find for indexed files"
      }
    ],
    "body": "BSD vs GNU Commands\nsed -i requires extension argument: sed -i '' 's/a/b/' file — empty string for no backup, Linux doesn't need it\nfind doesn't support -printf — use -exec stat or xargs with stat -f instead\ndate uses different format flags: date -j -f '%Y-%m-%d' '2024-01-15' '+%s' — -j prevents setting time\ngrep -P (Perl regex) doesn't exist — use grep -E (extended) or install ggrep via Homebrew\nxargs defaults to /usr/bin/echo not the command — always specify the command explicitly\nreadlink -f doesn't exist — use realpath or python3 -c \"import os; print(os.path.realpath('path'))\"\nHomebrew Paths\nApple Silicon: /opt/homebrew/bin, /opt/homebrew/lib\nIntel: /usr/local/bin, /usr/local/lib\nCheck architecture: uname -m returns arm64 or x86_64\nHomebrew doesn't add to PATH automatically — check ~/.zprofile for eval line\nRunning x86 binaries: arch -x86_64 /bin/bash then install/run Intel-only tools\nKeychain (Secrets)\nStore: security add-generic-password -a \"$USER\" -s \"service_name\" -w \"secret_value\" -U\nRetrieve: security find-generic-password -a \"$USER\" -s \"service_name\" -w\n-U flag updates if exists — without it, duplicate entries error\nKeychain prompts for access on first use — authorize permanently for automation\nDelete: security delete-generic-password -a \"$USER\" -s \"service_name\"\nlaunchd (Services)\nUser agents: ~/Library/LaunchAgents/ — runs as user when logged in\nSystem daemons: /Library/LaunchDaemons/ — runs at boot as root\nLoad: launchctl load -w ~/Library/LaunchAgents/com.example.plist\nUnload before editing: launchctl unload — edits to loaded plists are ignored\nCheck errors: launchctl list | grep service_name then launchctl error <exit_code>\nLogs: log show --predicate 'subsystem == \"com.example\"' --last 1h\nPrivacy Permissions (TCC)\nAutomation scripts fail silently without Full Disk Access or Automation permissions\nGrant in System Settings → Privacy & Security → corresponding category\nTerminal and iTerm need separate permissions — granting to one doesn't grant to other\ntccutil reset clears permissions: tccutil reset AppleEvents for Automation\nCheck granted permissions: sqlite3 ~/Library/Application\\ Support/com.apple.TCC/TCC.db \"SELECT * FROM access\"\ndefaults (Preferences)\nRead: defaults read com.apple.finder AppleShowAllFiles\nWrite: defaults write com.apple.finder AppleShowAllFiles -bool true\nDelete: defaults delete com.apple.finder AppleShowAllFiles\nRestart app after changing: killall Finder\nFind app bundle ID: osascript -e 'id of app \"App Name\"'\nExport all: defaults export com.apple.finder - outputs XML\nFile Operations\nditto preserves resource forks and metadata — use instead of cp for app bundles\nCreate DMG: hdiutil create -volname \"Name\" -srcfolder ./folder -format UDZO output.dmg\nMount DMG: hdiutil attach image.dmg — returns mount point path\nUnmount: hdiutil detach /Volumes/Name\nExtended attributes: xattr -l file to list, xattr -c file to clear all\nQuarantine removal: xattr -d com.apple.quarantine app.app\nClipboard\nCopy to clipboard: echo \"text\" | pbcopy\nPaste from clipboard: pbpaste\nCopy file contents: pbcopy < file.txt\nPreserve RTF: pbpaste -Prefer rtf\nClipboard works in SSH sessions to local machine — useful for remote file copying\nScreenshots and Screen\nScreenshot region to file: screencapture -i output.png\nScreenshot window: screencapture -w output.png\nScreenshot to clipboard: screencapture -c\nHeadless (no UI): screencapture -x — suppresses sound and cursor\nScreen recording requires Screen Recording permission in Privacy settings\nProcess Management\nPrevent sleep: caffeinate -i command — keeps system awake while command runs\nPrevent sleep with timeout: caffeinate -t 3600 — 1 hour\nCheck why not sleeping: pmset -g assertions\nPower settings: pmset -g to view, sudo pmset -a sleep 0 to disable sleep\nCurrent app in focus: osascript -e 'tell application \"System Events\" to get name of first process whose frontmost is true'\nNetwork\nList interfaces: networksetup -listallhardwareports\nGet IP: ipconfig getifaddr en0 (Wi-Fi usually en0 on laptops)\nDNS servers: scutil --dns | grep nameserver\nFlush DNS: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder\nProxy settings: networksetup -getwebproxy \"Wi-Fi\"\nSystem Integrity Protection\nCheck status: csrutil status\nDisable (Recovery Mode only): csrutil disable — not recommended for production\nProtected paths: /System, /usr (except /usr/local), /sbin, /bin\nCan't modify these even as root — design your automations around this\nLogs\nStream live: log stream --predicate 'process == \"processname\"'\nSearch recent: log show --last 1h --predicate 'eventMessage contains \"error\"'\nSubsystem filter: log show --predicate 'subsystem == \"com.apple.example\"'\nSave to file: log collect --output ./logs.logarchive — opens in Console.app\nAutomation Tips\nOpen URL: open \"https://example.com\" — uses default browser\nOpen app: open -a \"Safari\" — by name, not path\nOpen file with specific app: open -a \"TextEdit\" file.txt\nRun AppleScript: osascript -e 'tell application \"Finder\" to get name of home'\nSpotlight search: mdfind \"kMDItemDisplayName == 'filename.txt'\" — faster than find for indexed files"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/macos",
    "publisherUrl": "https://clawhub.ai/ivangdavila/macos",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/macos",
    "downloadUrl": "https://openagent3.xyz/downloads/macos",
    "agentUrl": "https://openagent3.xyz/skills/macos/agent",
    "manifestUrl": "https://openagent3.xyz/skills/macos/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/macos/agent.md"
  }
}