{
  "schemaVersion": "1.0",
  "item": {
    "slug": "omnifocus",
    "name": "OmniFocus",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/shenzo1/omnifocus",
    "canonicalUrl": "https://clawhub.ai/shenzo1/omnifocus",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/omnifocus",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=omnifocus",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/automation-guide.md",
      "references/jxa-api.md",
      "scripts/add_task.js",
      "scripts/complete_task.js",
      "scripts/get_stats.js"
    ],
    "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-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-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/omnifocus"
    },
    "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/omnifocus",
    "agentPageUrl": "https://openagent3.xyz/skills/omnifocus/agent",
    "manifestUrl": "https://openagent3.xyz/skills/omnifocus/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/omnifocus/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": "OmniFocus Task Management",
        "body": "Automate OmniFocus task management via JavaScript for Automation (JXA) scripts."
      },
      {
        "title": "Quick Start",
        "body": "All scripts are located in the scripts/ directory and use JXA. Run with:\n\nosascript -l JavaScript scripts/<script-name>.js [args]\n\nKey Scripts:\n\nadd_task.js - Add task to inbox\nlist_tasks.js - List tasks with filters\nsearch_tasks.js - Search tasks by keyword\ncomplete_task.js - Complete a task by name\nupdate_task.js - Update task properties\nget_stats.js - Get OmniFocus statistics"
      },
      {
        "title": "Adding Tasks",
        "body": "osascript -l JavaScript scripts/add_task.js \"Task name\" [\"Note\"] [\"YYYY-MM-DD\"]\n\nExamples:\n\nosascript -l JavaScript scripts/add_task.js \"Buy groceries\"\nosascript -l JavaScript scripts/add_task.js \"Review doc\" \"Check sections 1-3\"\nosascript -l JavaScript scripts/add_task.js \"Submit report\" \"Q1\" \"2026-01-31\"\n\nReturns: Task ID"
      },
      {
        "title": "Listing Tasks",
        "body": "osascript -l JavaScript scripts/list_tasks.js [filter] [limit]\n\nFilters:\n\ninbox - Inbox tasks\navailable - Available (unblocked) tasks (default)\nflagged - Flagged tasks\ndue-soon - Due within 3 days\noverdue - Past due\nall - All incomplete tasks\n\nReturns: JSON array with task details (name, id, note, dueDate, flagged, project, tags)"
      },
      {
        "title": "Searching Tasks",
        "body": "osascript -l JavaScript scripts/search_tasks.js \"keyword\" [limit]\n\nSearches task names and notes. Case-insensitive.\n\nReturns: JSON array of matching tasks"
      },
      {
        "title": "Completing Tasks",
        "body": "osascript -l JavaScript scripts/complete_task.js \"Task name\"\n\nSearches inbox first, then all tasks. Completes first match."
      },
      {
        "title": "Updating Tasks",
        "body": "osascript -l JavaScript scripts/update_task.js \"Task name\" [--note \"text\"] [--due \"YYYY-MM-DD\"] [--flag true/false]\n\nExamples:\n\nosascript -l JavaScript scripts/update_task.js \"Review\" --note \"Added notes\"\nosascript -l JavaScript scripts/update_task.js \"Submit\" --due \"2026-02-01\"\nosascript -l JavaScript scripts/update_task.js \"Important\" --flag true"
      },
      {
        "title": "Getting Statistics",
        "body": "osascript -l JavaScript scripts/get_stats.js\n\nReturns: JSON with counts:\n\ntotal, incomplete, inbox\nflagged, overdue, dueSoon\navailable, blocked"
      },
      {
        "title": "When Responding to User Queries",
        "body": "List tasks before acting on them to confirm targets\nParse JSON output for structured processing\nPresent results in user-friendly format (not raw JSON)\nConfirm operations before completing or modifying tasks\nHandle errors gracefully (task not found, etc.)"
      },
      {
        "title": "Common Patterns",
        "body": "Daily Review:\n\n# Statistics overview\nosascript -l JavaScript scripts/get_stats.js\n\n# What needs attention\nosascript -l JavaScript scripts/list_tasks.js overdue\nosascript -l JavaScript scripts/list_tasks.js due-soon\n\nTask Queries:\n\n# \"What's in my inbox?\"\nosascript -l JavaScript scripts/list_tasks.js inbox\n\n# \"What are my next actions?\"\nosascript -l JavaScript scripts/list_tasks.js available 10\n\n# \"Show my flagged tasks\"\nosascript -l JavaScript scripts/list_tasks.js flagged\n\nTask Management:\n\n# \"Add a task to call John\"\nosascript -l JavaScript scripts/add_task.js \"Call John\"\n\n# \"Find tasks about the project\"\nosascript -l JavaScript scripts/search_tasks.js \"project\"\n\n# \"Mark 'Buy milk' as complete\"\nosascript -l JavaScript scripts/complete_task.js \"Buy milk\"\n\n# \"Flag the review task\"\nosascript -l JavaScript scripts/update_task.js \"Review\" --flag true"
      },
      {
        "title": "Output Handling",
        "body": "Scripts return JSON for structured data. When presenting to users:\n\nParse the JSON\nFormat results clearly\nSummarize counts and key information\nHighlight urgent items (overdue, due soon)\n\nExample response format:\n\nFound 3 overdue tasks:\n• Submit Q1 report (due Jan 20)\n• Review contract (due Jan 23)\n• Call vendor (due Jan 24)\n\nAnd 5 tasks due in the next 3 days:\n• [list tasks]\n\nWould you like me to flag or update any of these?"
      },
      {
        "title": "Error Handling",
        "body": "Common errors:\n\nTask not found - Double-check name or search first\nNo tasks - Empty result, report clearly\nInvalid date - Use YYYY-MM-DD format\nOmniFocus not running - Scripts require OmniFocus"
      },
      {
        "title": "Multi-Step Operations",
        "body": "Find then act:\n\n# 1. Search for task\nRESULTS=$(osascript -l JavaScript scripts/search_tasks.js \"meeting\")\n\n# 2. Parse and identify target task name\n\n# 3. Complete the task\nosascript -l JavaScript scripts/complete_task.js \"Team meeting notes\""
      },
      {
        "title": "Technical Reference",
        "body": "For detailed API information and advanced usage, see:\n\nJXA API Reference: references/jxa-api.md - Object model and methods\nAutomation Guide: references/automation-guide.md - Detailed script documentation and workflows\n\nRead these files when:\n\nBuilding complex queries\nUnderstanding OmniFocus data model\nImplementing custom workflows\nDebugging scripts"
      },
      {
        "title": "Requirements",
        "body": "macOS\nOmniFocus installed and running\nScripts have execute permissions (chmod +x)"
      },
      {
        "title": "Notes",
        "body": "Scripts use JXA (JavaScript for Automation), not AppleScript\nTask matching is case-sensitive for exact names, case-insensitive for searches\nDate format: YYYY-MM-DD (ISO 8601)\nAll operations are performed on the default OmniFocus document\nScripts are read-only safe except for add, complete, and update operations"
      }
    ],
    "body": "OmniFocus Task Management\n\nAutomate OmniFocus task management via JavaScript for Automation (JXA) scripts.\n\nQuick Start\n\nAll scripts are located in the scripts/ directory and use JXA. Run with:\n\nosascript -l JavaScript scripts/<script-name>.js [args]\n\n\nKey Scripts:\n\nadd_task.js - Add task to inbox\nlist_tasks.js - List tasks with filters\nsearch_tasks.js - Search tasks by keyword\ncomplete_task.js - Complete a task by name\nupdate_task.js - Update task properties\nget_stats.js - Get OmniFocus statistics\nCore Operations\nAdding Tasks\nosascript -l JavaScript scripts/add_task.js \"Task name\" [\"Note\"] [\"YYYY-MM-DD\"]\n\n\nExamples:\n\nosascript -l JavaScript scripts/add_task.js \"Buy groceries\"\nosascript -l JavaScript scripts/add_task.js \"Review doc\" \"Check sections 1-3\"\nosascript -l JavaScript scripts/add_task.js \"Submit report\" \"Q1\" \"2026-01-31\"\n\n\nReturns: Task ID\n\nListing Tasks\nosascript -l JavaScript scripts/list_tasks.js [filter] [limit]\n\n\nFilters:\n\ninbox - Inbox tasks\navailable - Available (unblocked) tasks (default)\nflagged - Flagged tasks\ndue-soon - Due within 3 days\noverdue - Past due\nall - All incomplete tasks\n\nReturns: JSON array with task details (name, id, note, dueDate, flagged, project, tags)\n\nSearching Tasks\nosascript -l JavaScript scripts/search_tasks.js \"keyword\" [limit]\n\n\nSearches task names and notes. Case-insensitive.\n\nReturns: JSON array of matching tasks\n\nCompleting Tasks\nosascript -l JavaScript scripts/complete_task.js \"Task name\"\n\n\nSearches inbox first, then all tasks. Completes first match.\n\nUpdating Tasks\nosascript -l JavaScript scripts/update_task.js \"Task name\" [--note \"text\"] [--due \"YYYY-MM-DD\"] [--flag true/false]\n\n\nExamples:\n\nosascript -l JavaScript scripts/update_task.js \"Review\" --note \"Added notes\"\nosascript -l JavaScript scripts/update_task.js \"Submit\" --due \"2026-02-01\"\nosascript -l JavaScript scripts/update_task.js \"Important\" --flag true\n\nGetting Statistics\nosascript -l JavaScript scripts/get_stats.js\n\n\nReturns: JSON with counts:\n\ntotal, incomplete, inbox\nflagged, overdue, dueSoon\navailable, blocked\nUsage Guidelines\nWhen Responding to User Queries\nList tasks before acting on them to confirm targets\nParse JSON output for structured processing\nPresent results in user-friendly format (not raw JSON)\nConfirm operations before completing or modifying tasks\nHandle errors gracefully (task not found, etc.)\nCommon Patterns\n\nDaily Review:\n\n# Statistics overview\nosascript -l JavaScript scripts/get_stats.js\n\n# What needs attention\nosascript -l JavaScript scripts/list_tasks.js overdue\nosascript -l JavaScript scripts/list_tasks.js due-soon\n\n\nTask Queries:\n\n# \"What's in my inbox?\"\nosascript -l JavaScript scripts/list_tasks.js inbox\n\n# \"What are my next actions?\"\nosascript -l JavaScript scripts/list_tasks.js available 10\n\n# \"Show my flagged tasks\"\nosascript -l JavaScript scripts/list_tasks.js flagged\n\n\nTask Management:\n\n# \"Add a task to call John\"\nosascript -l JavaScript scripts/add_task.js \"Call John\"\n\n# \"Find tasks about the project\"\nosascript -l JavaScript scripts/search_tasks.js \"project\"\n\n# \"Mark 'Buy milk' as complete\"\nosascript -l JavaScript scripts/complete_task.js \"Buy milk\"\n\n# \"Flag the review task\"\nosascript -l JavaScript scripts/update_task.js \"Review\" --flag true\n\nOutput Handling\n\nScripts return JSON for structured data. When presenting to users:\n\nParse the JSON\nFormat results clearly\nSummarize counts and key information\nHighlight urgent items (overdue, due soon)\n\nExample response format:\n\nFound 3 overdue tasks:\n• Submit Q1 report (due Jan 20)\n• Review contract (due Jan 23)\n• Call vendor (due Jan 24)\n\nAnd 5 tasks due in the next 3 days:\n• [list tasks]\n\nWould you like me to flag or update any of these?\n\nError Handling\n\nCommon errors:\n\nTask not found - Double-check name or search first\nNo tasks - Empty result, report clearly\nInvalid date - Use YYYY-MM-DD format\nOmniFocus not running - Scripts require OmniFocus\nMulti-Step Operations\n\nFind then act:\n\n# 1. Search for task\nRESULTS=$(osascript -l JavaScript scripts/search_tasks.js \"meeting\")\n\n# 2. Parse and identify target task name\n\n# 3. Complete the task\nosascript -l JavaScript scripts/complete_task.js \"Team meeting notes\"\n\nTechnical Reference\n\nFor detailed API information and advanced usage, see:\n\nJXA API Reference: references/jxa-api.md - Object model and methods\nAutomation Guide: references/automation-guide.md - Detailed script documentation and workflows\n\nRead these files when:\n\nBuilding complex queries\nUnderstanding OmniFocus data model\nImplementing custom workflows\nDebugging scripts\nRequirements\nmacOS\nOmniFocus installed and running\nScripts have execute permissions (chmod +x)\nNotes\nScripts use JXA (JavaScript for Automation), not AppleScript\nTask matching is case-sensitive for exact names, case-insensitive for searches\nDate format: YYYY-MM-DD (ISO 8601)\nAll operations are performed on the default OmniFocus document\nScripts are read-only safe except for add, complete, and update operations"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/shenzo1/omnifocus",
    "publisherUrl": "https://clawhub.ai/shenzo1/omnifocus",
    "owner": "shenzo1",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/omnifocus",
    "downloadUrl": "https://openagent3.xyz/downloads/omnifocus",
    "agentUrl": "https://openagent3.xyz/skills/omnifocus/agent",
    "manifestUrl": "https://openagent3.xyz/skills/omnifocus/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/omnifocus/agent.md"
  }
}