Omnifocus4

Security checks across malware telemetry and agentic risk

Overview

This OmniFocus integration is mostly purpose-aligned, but it asks the agent to run unsandboxed local commands through a missing wrapper while having authority to read, change, and delete your tasks.

Install only if you trust the publisher and are comfortable granting local OmniFocus automation. Before use, verify what .claude/skills/omnifocus4/scripts/of actually points to, keep write approval in once or every mode, avoid yolo mode, and remember that task notes returned by the skill may appear in your agent conversation.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

#
ASI02: Tool Misuse and Exploitation
Medium
What this means

If the command path or script is wrong, changed, or misused, the agent could run local automation with fewer containment protections.

Why it was flagged

The skill explicitly asks the agent to bypass the local Bash sandbox for each invocation. That may be needed for AppleScript automation, but it materially broadens local execution authority.

Skill content
Pass `dangerouslyDisableSandbox: true` on every Bash call.
Recommendation

Only use this on a trusted Mac, verify the exact executable being run, and avoid disabling the sandbox unless there is no safer scoped alternative.

#
ASI02: Tool Misuse and Exploitation
Low
What this means

A mistaken or over-authorized command could alter, complete, move, or permanently delete OmniFocus items.

Why it was flagged

The documented command set includes destructive OmniFocus operations. This is purpose-aligned for a task-management integration, but users should know it can change or delete real tasks.

Skill content
| `delete` | `<taskId>` | Permanently delete |
Recommendation

Keep write authorization in a cautious mode and review destructive commands, especially delete, before allowing them.

#
ASI04: Agentic Supply Chain Vulnerabilities
Medium
What this means

The skill may fail, or a different local file named scripts/of could become the command the agent runs, which is especially risky when sandboxing is disabled.

Why it was flagged

The instructions invoke a scripts/of executable, but the provided file manifest lists scripts/omnifocus.py and does not include scripts/of. The actual instructed entrypoint is therefore missing from the reviewed artifacts.

Skill content
.claude/skills/omnifocus4/scripts/of <command> [args...]
Recommendation

The publisher should include the reviewed wrapper or update SKILL.md to call the reviewed Python file directly. Users should inspect the installed path before use.

#
ASI04: Agentic Supply Chain Vulnerabilities
Low
What this means

It is harder to verify that the package identity and publisher identity are consistent.

Why it was flagged

The embedded _meta.json ownerId differs from the registry metadata owner ID shown for the package, creating a provenance inconsistency.

Skill content
"ownerId": "kn7f68annfvbzmccfpr8mgmxtx7zxjtj"
Recommendation

Confirm the publisher and package provenance before installing; the registry metadata and packaged metadata should be reconciled.

#
ASI06: Memory and Context Poisoning
Low
What this means

Personal or work task details, including notes, can be shown to the agent and potentially included in chat history.

Why it was flagged

The skill reads OmniFocus task names and notes and returns them as JSON to the agent context. This is expected for the integration but may expose private task content in the conversation.

Skill content
| `search` | `<query>` | Search tasks by name or note |
Recommendation

Avoid querying sensitive OmniFocus notes unless you are comfortable sharing that content with the agent session.

#
ASI10: Rogue Agents
Low
What this means

Approvals can persist across sessions, and yolo mode could allow future write commands without per-action prompts.

Why it was flagged

The code persists authorization preferences in the user's home directory and supports a mode that skips write authorization checks.

Skill content
PREFS_DIR  = pathlib.Path.home() / ".omnifocus4" ... _DEFAULT_PREFS = {"mode": "once", "approved": []} ... if mode == "yolo": return
Recommendation

Use the default or per-command authorization mode, periodically inspect ~/.omnifocus4/prefs.json, and avoid yolo mode unless you intentionally want no write prompts.